annotate Discovery/Src/tMenuEditCvOption.c @ 999:ac25c35a3c97 GasConsumption

New Tab for dynamic configuration: since more and more functions are added to the OSTC the space in the menus is getting short. To avoid problems a new Tab within the SYS menu has been added which shall focus an functions / views which are configuration dependend. In future this menu may have dynamic content dependend on which views are active or which sensors are connected. The Cview for compass and Timer have been moved to the new tab in the first step
author Ideenmodellierer
date Mon, 28 Apr 2025 19:47:41 +0200
parents
children 21142f4fa968
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
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
38 /* Private function prototypes -----------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
39 static void openEdit_Timer(void);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
40 void openEdit_Compass(void);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
41
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
42 /* Announced function prototypes -----------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
43 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
44 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
45 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
46 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
47 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
48 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
49
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
50 /* Exported functions --------------------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
51
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
52 void openEdit_CvOption(uint8_t line)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
53 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
54 set_globalState_Menu_Line(line);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
55
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
56 switch(line)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
57 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
58 case 1:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
59 default:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
60 resetMenuEdit(CLUT_MenuPageHardware);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
61 openEdit_Compass();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
62 break;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
63 case 2:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
64 openEdit_Timer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
65 break;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
66 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
67 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
68
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
69 /* Private functions ---------------------------------------------------------*/
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
70
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
71 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
72 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
73 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
74 uint8_t digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
75 switch (action) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
76 case ACTION_BUTTON_ENTER:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
77
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
78 return digitContent;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
79 case ACTION_BUTTON_ENTER_FINAL:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
80 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
81 int32_t compassDeclinationDeg;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
82 evaluateNewString(editId, (uint32_t *)&compassDeclinationDeg, NULL, NULL, NULL);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
83
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
84 if (compassDeclinationDeg > 99) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
85 compassDeclinationDeg = 99;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
86 } else if (compassDeclinationDeg < -99) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
87 compassDeclinationDeg = -99;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
88 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
89
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
90 settings->compassDeclinationDeg = compassDeclinationDeg;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
91
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
92 tMenuEdit_newInput(editId, ((input_u)compassDeclinationDeg).uint32, 0, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
93 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
94
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
95 break;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
96 case ACTION_BUTTON_NEXT:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
97 if (digitNumber == 0) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
98 digitContentNew = togglePlusMinus(digitContent);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
99 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
100 digitContentNew = digitContent + 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
101 if (digitContentNew > '9') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
102 digitContentNew = '0';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
103 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
104 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
105
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
106 return digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
107 case ACTION_BUTTON_BACK:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
108 if (digitNumber == 0) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
109 digitContentNew = togglePlusMinus(digitContent);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
110 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
111 digitContentNew = digitContent - 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
112 if (digitContentNew < '0') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
113 digitContentNew = '9';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
114 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
115 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
116
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
117 return digitContentNew;
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 return UNSPECIFIC_RETURN;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
121 }
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 static void showCompassDeclination(SSettings *settings, bool isRefresh)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
125 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
126 char text[16];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
127 snprintf(text, 16, "%c%c:", TXT_2BYTE, TXT2BYTE_CompassDeclination);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
128 write_label_var(30, 800, ME_Y_LINE6, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
129 if (isRefresh) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
130 tMenuEdit_refresh_field(StMOption_Compass_Declination);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
131 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
132 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
133 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
134 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
135
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
136
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
137 void refresh_CompassEdit(void)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
138 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
139 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
140
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
141 uint16_t heading;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
142 char text[32];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
143 uint8_t textIndex = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
144
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
145 text[0] = '\001';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
146 text[1] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
147 text[2] = TXT2BYTE_Compass;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
148 text[3] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
149 write_topline(text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
150
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
151 if(settings->compassInertia)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
152 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
153 heading = (uint16_t)compass_getCompensated();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
154 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
155 else
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)stateUsed->lifeData.compass_heading;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
158 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
159 snprintf(text,32,"\001%03i`",heading);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
160 write_label_var( 0, 800, ME_Y_LINE1, &FontT54, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
161
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
162 tMenuEdit_refresh_field(StMOption_Compass_SetCourse);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
163 tMenuEdit_refresh_field(StMOption_Compass_Calibrate);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
164 tMenuEdit_refresh_field(StMOption_Compass_ResetCourse);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
165 text[textIndex++] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
166 text[textIndex++] = TXT2BYTE_CompassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
167 text[textIndex++] = ':';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
168 text[textIndex++] = ' ';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
169 text[textIndex++] = '0' + settings->compassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
170
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
171 write_label_var(30, 800, ME_Y_LINE5, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
172
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
173 showCompassDeclination(settings, true);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
174
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
175 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
176 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
177
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
178
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
179 void openEdit_Compass(void)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
180 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
181 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
182
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
183 char text[10];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
184 uint8_t textIndex = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
185
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
186
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
187 set_globalState(StMOption_Compass);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
188 resetMenuEdit(CLUT_MenuPageHardware);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
189
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
190 text[textIndex++] = '\001';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
191 text[textIndex++] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
192 text[textIndex++] = TXT2BYTE_Compass;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
193 text[textIndex++] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
194 write_topline(text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
195
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
196 text[0] = TXT_2BYTE;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
197 text[2] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
198
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
199 text[1] = TXT2BYTE_SetBearing;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
200 write_field_button(StMOption_Compass_SetCourse, 30, 800, ME_Y_LINE2, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
201
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
202 text[1] = TXT2BYTE_ResetBearing;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
203 write_field_button(StMOption_Compass_ResetCourse, 30, 800, ME_Y_LINE3, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
204
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
205 text[1] = TXT2BYTE_CompassCalib;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
206 write_field_button(StMOption_Compass_Calibrate, 30, 800, ME_Y_LINE4, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
207
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
208 text[1] = TXT2BYTE_CompassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
209 textIndex = 2;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
210 text[textIndex++] = ':';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
211 text[textIndex++] = ' ';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
212 text[textIndex++] = '0' + settings->compassInertia;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
213 text[textIndex++] = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
214
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
215 write_field_button(StMOption_Compass_Inertia, 30, 800, ME_Y_LINE5, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
216
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
217 showCompassDeclination(settings, false);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
218
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
219 setEvent(StMOption_Compass_SetCourse, (uint32_t)OnAction_Bearing);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
220 setEvent(StMOption_Compass_ResetCourse, (uint32_t)OnAction_BearingClear);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
221 setEvent(StMOption_Compass_Calibrate, (uint32_t)OnAction_Compass);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
222 setEvent(StMOption_Compass_Inertia, (uint32_t)OnAction_InertiaLevel);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
223 setEvent(StMOption_Compass_Declination, (uint32_t)OnAction_CompassDeclination);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
224
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
225 tMenuEdit_select(StMOption_Compass_SetCourse);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
226
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
227 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
228 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
229
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
230
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
231 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
232 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
233 calibrateCompass();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
234 return EXIT_TO_INFO_COMPASS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
235 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
236
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
237
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
238 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
239 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
240 if((int16_t)stateUsed->lifeData.compass_heading != -1)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
241 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
242 settingsGetPointer()->compassBearing = (int16_t)stateUsed->lifeData.compass_heading;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
243 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
244 else
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
245 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
246 settingsGetPointer()->compassBearing = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
247 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
248
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
249 if(settingsGetPointer()->compassBearing == 0)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
250 settingsGetPointer()->compassBearing = 360;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
251 return UPDATE_AND_EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
252 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
253
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
254
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
255 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
256 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
257 settingsGetPointer()->compassBearing = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
258 return UPDATE_AND_EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
259 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
260
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
261
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
262 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
263 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
264 uint8_t newLevel = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
265
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
266 newLevel = settingsGetPointer()->compassInertia + 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
267 if(newLevel > MAX_COMPASS_COMP)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
268 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
269 newLevel = 0;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
270 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
271 settingsGetPointer()->compassInertia = newLevel;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
272 return UPDATE_DIVESETTINGS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
273 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
274
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
275 static void openEdit_Timer(void)
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
276 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
277 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
278
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
279 char text[32];
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
280 snprintf(text, 32, "\001%c%c", TXT_2BYTE, TXT2BYTE_Timer);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
281 write_topline(text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
282
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
283 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
284 snprintf(text, 32, "%c%c", TXT_2BYTE, TXT2BYTE_Timer);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
285 write_label_var(30, 299, yPos, &FontT48, text);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
286 write_field_udigit(StMOption_Timer, 300, 392, yPos, &FontT48, "#:##", settings->timerDurationS / 60, settings->timerDurationS % 60, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
287 write_label_var(393, 800, yPos, &FontT48, "\016\016 [m:ss]\017");
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
288
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
289 write_buttonTextline(TXT2BYTE_ButtonMinus, TXT2BYTE_ButtonEnter, TXT2BYTE_ButtonPlus);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
290
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
291 setEvent(StMOption_Timer, (uint32_t)OnAction_Timer);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
292 startEdit();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
293 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
294 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
295 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
296 SSettings *settings = settingsGetPointer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
297 uint8_t digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
298 switch (action) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
299 case ACTION_BUTTON_ENTER:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
300
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
301 return digitContent;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
302 case ACTION_BUTTON_ENTER_FINAL:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
303 {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
304 uint32_t timerM;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
305 uint32_t timerS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
306 evaluateNewString(editId, &timerM, &timerS, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
307 if (timerM > 9) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
308 timerM = 9;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
309 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
310 if (timerS > 59) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
311 timerS = 59;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
312 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
313
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
314 uint16_t timerDurationS = 60 * timerM + timerS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
315
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
316 if (timerDurationS < 1) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
317 timerDurationS = 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
318 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
319
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
320 if (timerDurationS != settings->timerDurationS) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
321 settings->timerDurationS = timerDurationS;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
322
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
323 disableTimer();
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
324
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
325 tMenuEdit_newInput(editId, settings->timerDurationS / 60, settings->timerDurationS % 60, 0, 0);
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
326 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
327
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
328 return EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
329 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
330 case ACTION_BUTTON_NEXT:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
331 digitContentNew = digitContent + 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
332 if ((blockNumber == 1 && digitNumber == 0 && digitContentNew > '5') || digitContentNew > '9') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
333 digitContentNew = '0';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
334 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
335
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
336 return digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
337 case ACTION_BUTTON_BACK:
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
338 digitContentNew = digitContent - 1;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
339 if (digitContentNew < '0') {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
340 if (blockNumber == 1 && digitNumber == 0) {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
341 digitContentNew = '5';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
342 } else {
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
343 digitContentNew = '9';
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
344 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
345 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
346
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
347 return digitContentNew;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
348 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
349
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
350 return EXIT_TO_MENU;
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
351 }
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
352
ac25c35a3c97 New Tab for dynamic configuration:
Ideenmodellierer
parents:
diff changeset
353