annotate Discovery/Src/tMenuEditCvOption.c @ 1046:1d7c7a36df15 GasConsumption

Bugfix OSTC5 BT and enabling fast mode: The OSTC5 BT was operating at default speed of 115200. To enable the faster communication some init steps have been added to set speed to 460800. Having the UART enabled while the module was shut down caused problems during initialisation. To avoid these the BT UART is now initialized after the the module is powered on and deinitialized while the module is switched off.
author Ideenmodellierer
date Fri, 14 Nov 2025 18:54:20 +0100
parents 195bfbdf961d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
3 ///
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
4 /// \file Discovery/Src/tMenuEditCvOption.c
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
5 /// \brief Menu for configuration depended items
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
6 /// \author heinrichs weikamp gmbh
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
7 /// \date 24-Apr-2025
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
8 ///
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
9 /// \details
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
10 ///
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
11 /// $Id$
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
12 ///////////////////////////////////////////////////////////////////////////////
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
13 /// \par Copyright (c) 2014-2025 Heinrichs Weikamp gmbh
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
14 ///
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
15 /// This program is free software: you can redistribute it and/or modify
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
16 /// it under the terms of the GNU General Public License as published by
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
17 /// the Free Software Foundation, either version 3 of the License, or
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
18 /// (at your option) any later version.
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
19 ///
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
20 /// This program is distributed in the hope that it will be useful,
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
23 /// GNU General Public License for more details.
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
24 ///
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
25 /// You should have received a copy of the GNU General Public License
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
27 //////////////////////////////////////////////////////////////////////////////
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
28
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
29 /* Includes ------------------------------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
30 #include "tMenuEditCvOption.h"
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
31 #include "tMenuEdit.h"
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
32
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
33 #include "gfx_fonts.h"
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
34 #include "ostc.h"
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
35 #include "tMenuEdit.h"
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
36 #include "tHome.h"
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
37
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
38 #include "cv_heartbeat.h"
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
39
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
40 /* Private function prototypes -----------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
41 static void openEdit_Timer(void);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
42 void openEdit_Compass(void);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
43
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
44 /* Announced function prototypes -----------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
45 uint8_t OnAction_Compass (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
46 static uint8_t OnAction_CompassDeclination(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
47 uint8_t OnAction_Bearing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
48 uint8_t OnAction_BearingClear (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
49 uint8_t OnAction_InertiaLevel (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
50 static uint8_t OnAction_Timer(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
51
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
52 /* Exported functions --------------------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
53
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
54 void openEdit_CvOption(uint8_t line)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
55 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
56 set_globalState_Menu_Line(line);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
57
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
58 switch(line)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
59 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
60 case 1:
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
61 default: resetMenuEdit(CLUT_MenuPageHardware);
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
62 openEdit_Compass();
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
63 break;
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
64 case 2: openEdit_Timer();
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
65 break;
1034
195bfbdf961d Pulse measurement integration:
Ideenmodellierer
parents: 1032
diff changeset
66 #ifdef ENABLE_PULSE_SENSOR_BT
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
67 case 3: openEdit_Heartbeat();
1034
195bfbdf961d Pulse measurement integration:
Ideenmodellierer
parents: 1032
diff changeset
68 #endif
1032
33b91584d827 New CV Pulse:
Ideenmodellierer
parents: 1014
diff changeset
69 break;
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
70 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
71 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
72
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
73 /* Private functions ---------------------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
74
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
75 static uint8_t OnAction_CompassDeclination(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
76 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
77 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
78 uint8_t digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
79 switch (action) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
80 case ACTION_BUTTON_ENTER:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
81
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
82 return digitContent;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
83 case ACTION_BUTTON_ENTER_FINAL:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
84 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
85 int32_t compassDeclinationDeg;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
86 evaluateNewString(editId, (uint32_t *)&compassDeclinationDeg, NULL, NULL, NULL);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
87
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
88 if (compassDeclinationDeg > 99) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
89 compassDeclinationDeg = 99;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
90 } else if (compassDeclinationDeg < -99) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
91 compassDeclinationDeg = -99;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
92 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
93
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
94 settings->compassDeclinationDeg = compassDeclinationDeg;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
95
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
96 tMenuEdit_newInput(editId, ((input_u)compassDeclinationDeg).uint32, 0, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
97 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
98
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
99 break;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
100 case ACTION_BUTTON_NEXT:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
101 if (digitNumber == 0) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
102 digitContentNew = togglePlusMinus(digitContent);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
103 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
104 digitContentNew = digitContent + 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
105 if (digitContentNew > '9') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
106 digitContentNew = '0';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
107 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
108 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
109
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
110 return digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
111 case ACTION_BUTTON_BACK:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
112 if (digitNumber == 0) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
113 digitContentNew = togglePlusMinus(digitContent);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
114 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
115 digitContentNew = digitContent - 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
116 if (digitContentNew < '0') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
117 digitContentNew = '9';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
118 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
119 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
120
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
121 return digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
122 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
123
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
124 return UNSPECIFIC_RETURN;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
125 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
126
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
127
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
128 static void showCompassDeclination(SSettings *settings, bool isRefresh)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
129 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
130 char text[16];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
131 snprintf(text, 16, "%c%c:", TXT_2BYTE, TXT2BYTE_CompassDeclination);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
132 write_label_var(30, 800, ME_Y_LINE6, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
133 if (isRefresh) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
134 tMenuEdit_refresh_field(StMOption_Compass_Declination);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
135 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
136 write_field_sdigit(StMOption_Compass_Declination, 500, 800, ME_Y_LINE6, &FontT48, "\034###`", settings->compassDeclinationDeg, 0, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
137 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
138 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
139
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
140
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
141 void refresh_CompassEdit(void)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
142 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
143 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
144
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
145 uint16_t heading;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
146 char text[32];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
147 uint8_t textIndex = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
148
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
149 text[0] = '\001';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
150 text[1] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
151 text[2] = TXT2BYTE_Compass;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
152 text[3] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
153 write_topline(text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
154
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
155 if(settings->compassInertia)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
156 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
157 heading = (uint16_t)compass_getCompensated();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
158 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
159 else
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
160 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
161 heading = (uint16_t)stateUsed->lifeData.compass_heading;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
162 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
163 snprintf(text,32,"\001%03i`",heading);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
164 write_label_var( 0, 800, ME_Y_LINE1, &FontT54, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
165
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
166 tMenuEdit_refresh_field(StMOption_Compass_SetCourse);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
167 tMenuEdit_refresh_field(StMOption_Compass_Calibrate);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
168 tMenuEdit_refresh_field(StMOption_Compass_ResetCourse);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
169 text[textIndex++] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
170 text[textIndex++] = TXT2BYTE_CompassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
171 text[textIndex++] = ':';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
172 text[textIndex++] = ' ';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
173 text[textIndex++] = '0' + settings->compassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
174
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
175 write_label_var(30, 800, ME_Y_LINE5, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
176
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
177 showCompassDeclination(settings, true);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
178
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
179 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
180 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
181
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
182
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
183 void openEdit_Compass(void)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
184 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
185 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
186
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
187 char text[10];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
188 uint8_t textIndex = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
189
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
190
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
191 set_globalState(StMOption_Compass);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
192 resetMenuEdit(CLUT_MenuPageHardware);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
193
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
194 text[textIndex++] = '\001';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
195 text[textIndex++] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
196 text[textIndex++] = TXT2BYTE_Compass;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
197 text[textIndex++] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
198 write_topline(text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
199
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
200 text[0] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
201 text[2] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
202
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
203 text[1] = TXT2BYTE_SetBearing;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
204 write_field_button(StMOption_Compass_SetCourse, 30, 800, ME_Y_LINE2, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
205
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
206 text[1] = TXT2BYTE_ResetBearing;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
207 write_field_button(StMOption_Compass_ResetCourse, 30, 800, ME_Y_LINE3, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
208
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
209 text[1] = TXT2BYTE_CompassCalib;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
210 write_field_button(StMOption_Compass_Calibrate, 30, 800, ME_Y_LINE4, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
211
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
212 text[1] = TXT2BYTE_CompassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
213 textIndex = 2;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
214 text[textIndex++] = ':';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
215 text[textIndex++] = ' ';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
216 text[textIndex++] = '0' + settings->compassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
217 text[textIndex++] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
218
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
219 write_field_button(StMOption_Compass_Inertia, 30, 800, ME_Y_LINE5, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
220
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
221 showCompassDeclination(settings, false);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
222
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
223 setEvent(StMOption_Compass_SetCourse, (uint32_t)OnAction_Bearing);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
224 setEvent(StMOption_Compass_ResetCourse, (uint32_t)OnAction_BearingClear);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
225 setEvent(StMOption_Compass_Calibrate, (uint32_t)OnAction_Compass);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
226 setEvent(StMOption_Compass_Inertia, (uint32_t)OnAction_InertiaLevel);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
227 setEvent(StMOption_Compass_Declination, (uint32_t)OnAction_CompassDeclination);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
228
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
229 tMenuEdit_select(StMOption_Compass_SetCourse);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
230
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
231 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
232 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
233
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
234
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
235 uint8_t OnAction_Compass (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
236 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
237 calibrateCompass();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
238 return EXIT_TO_INFO_COMPASS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
239 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
240
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
241
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
242 uint8_t OnAction_Bearing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
243 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
244 if((int16_t)stateUsed->lifeData.compass_heading != -1)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
245 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
246 settingsGetPointer()->compassBearing = (int16_t)stateUsed->lifeData.compass_heading;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
247 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
248 else
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
249 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
250 settingsGetPointer()->compassBearing = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
251 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
252
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
253 if(settingsGetPointer()->compassBearing == 0)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
254 settingsGetPointer()->compassBearing = 360;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
255 return UPDATE_AND_EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
256 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
257
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
258
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
259 uint8_t OnAction_BearingClear (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
260 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
261 settingsGetPointer()->compassBearing = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
262 return UPDATE_AND_EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
263 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
264
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
265
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
266 uint8_t OnAction_InertiaLevel (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
267 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
268 uint8_t newLevel = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
269
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
270 newLevel = settingsGetPointer()->compassInertia + 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
271 if(newLevel > MAX_COMPASS_COMP)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
272 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
273 newLevel = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
274 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
275 settingsGetPointer()->compassInertia = newLevel;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
276 return UPDATE_DIVESETTINGS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
277 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
278
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
279 static void openEdit_Timer(void)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
280 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
281 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
282
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
283 char text[32];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
284 snprintf(text, 32, "\001%c%c", TXT_2BYTE, TXT2BYTE_Timer);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
285 write_topline(text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
286
1001
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
287 set_globalState(StMOption_Timer);
1005
85f7e19c6688 Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents: 1001
diff changeset
288 resetMenuEdit(CLUT_MenuPageCvOption);
1001
21142f4fa968 Cleanup menu structucture afer menu shift:
Ideenmodellierer
parents: 999
diff changeset
289
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
290 uint16_t yPos = ME_Y_LINE_BASE + get_globalState_Menu_Line() * ME_Y_LINE_STEP;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
291 snprintf(text, 32, "%c%c", TXT_2BYTE, TXT2BYTE_Timer);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
292 write_label_var(30, 299, yPos, &FontT48, text);
1005
85f7e19c6688 Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents: 1001
diff changeset
293 write_field_udigit(StMOption_Timer_Value, 300, 392, yPos, &FontT48, "#:##", settings->timerDurationS / 60, settings->timerDurationS % 60, 0, 0);
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
294 write_label_var(393, 800, yPos, &FontT48, "\016\016 [m:ss]\017");
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
295
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
296 write_buttonTextline(TXT2BYTE_ButtonMinus, TXT2BYTE_ButtonEnter, TXT2BYTE_ButtonPlus);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
297
1005
85f7e19c6688 Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents: 1001
diff changeset
298 setEvent(StMOption_Timer_Value, (uint32_t)OnAction_Timer);
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
299 startEdit();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
300 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
301 static uint8_t OnAction_Timer(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
302 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
303 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
304 uint8_t digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
305 switch (action) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
306 case ACTION_BUTTON_ENTER:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
307
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
308 return digitContent;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
309 case ACTION_BUTTON_ENTER_FINAL:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
310 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
311 uint32_t timerM;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
312 uint32_t timerS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
313 evaluateNewString(editId, &timerM, &timerS, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
314 if (timerM > 9) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
315 timerM = 9;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
316 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
317 if (timerS > 59) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
318 timerS = 59;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
319 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
320
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
321 uint16_t timerDurationS = 60 * timerM + timerS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
322
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
323 if (timerDurationS < 1) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
324 timerDurationS = 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
325 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
326
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
327 if (timerDurationS != settings->timerDurationS) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
328 settings->timerDurationS = timerDurationS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
329
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
330 disableTimer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
331
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
332 tMenuEdit_newInput(editId, settings->timerDurationS / 60, settings->timerDurationS % 60, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
333 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
334
1014
8c0134a287da Add a log data event to the scrubber timer at the start of the dive and every time the timer (in minutes)
heinrichsweikamp
parents: 1005
diff changeset
335 settings->cv_configuration |= (1 << CVIEW_Timer);
8c0134a287da Add a log data event to the scrubber timer at the start of the dive and every time the timer (in minutes)
heinrichsweikamp
parents: 1005
diff changeset
336
999
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
337 return EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
338 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
339 case ACTION_BUTTON_NEXT:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
340 digitContentNew = digitContent + 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
341 if ((blockNumber == 1 && digitNumber == 0 && digitContentNew > '5') || digitContentNew > '9') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
342 digitContentNew = '0';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
343 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
344
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
345 return digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
346 case ACTION_BUTTON_BACK:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
347 digitContentNew = digitContent - 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
348 if (digitContentNew < '0') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
349 if (blockNumber == 1 && digitNumber == 0) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
350 digitContentNew = '5';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
351 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
352 digitContentNew = '9';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
353 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
354 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
355
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
356 return digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
357 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
358
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
359 return EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
360 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
361
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
362