Mercurial > public > ostc4
annotate Discovery/Src/tMenuEditHardware.c @ 565:7b56d4eda695
Bugfix center / right alignment if dualfont is used:
The implementation of the dualfont effects on string screen sizes was different and the center function did not consider this feature at all. Changed implementation for both functions to behalf the same way.
author | Ideenmodellierer |
---|---|
date | Sun, 15 Nov 2020 20:12:19 +0100 |
parents | ec76fa85009e |
children | 830de438e0b0 |
rev | line source |
---|---|
38 | 1 /////////////////////////////////////////////////////////////////////////////// |
2 /// -*- coding: UTF-8 -*- | |
3 /// | |
4 /// \file Discovery/Src/tMenuEditHardware.c | |
5 /// \brief BUTTONS | |
6 /// \author heinrichs weikamp gmbh | |
7 /// \date 15-Sept-2016 | |
8 /// | |
9 /// \details | |
10 /// | |
11 /// $Id$ | |
12 /////////////////////////////////////////////////////////////////////////////// | |
13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh | |
14 /// | |
15 /// This program is free software: you can redistribute it and/or modify | |
16 /// it under the terms of the GNU General Public License as published by | |
17 /// the Free Software Foundation, either version 3 of the License, or | |
18 /// (at your option) any later version. | |
19 /// | |
20 /// This program is distributed in the hope that it will be useful, | |
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
23 /// GNU General Public License for more details. | |
24 /// | |
25 /// You should have received a copy of the GNU General Public License | |
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
27 ////////////////////////////////////////////////////////////////////////////// | |
28 | |
29 /* Includes ------------------------------------------------------------------*/ | |
30 #include "tMenuEditHardware.h" | |
31 | |
32 #include "externCPU2bootloader.h" | |
33 #include "gfx_fonts.h" | |
34 #include "ostc.h" | |
35 #include "tCCR.h" | |
36 #include "tMenuEdit.h" | |
130
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
115
diff
changeset
|
37 #include "tHome.h" |
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
115
diff
changeset
|
38 #include "tInfo.h" |
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
115
diff
changeset
|
39 #include "tInfoLog.h" |
394
717f335cc5c9
Added start of module configuration after eache modul power on
ideenmodellierer
parents:
314
diff
changeset
|
40 #include "tComm.h" |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
41 #include "data_exchange_main.h" |
38 | 42 |
130
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
115
diff
changeset
|
43 extern void tM_build_pages(void); |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
44 |
38 | 45 /* Private function prototypes -----------------------------------------------*/ |
46 void openEdit_Bluetooth(void); | |
47 void openEdit_Compass(void); | |
48 void openEdit_O2Sensors(void); | |
49 void openEdit_Brightness(void); | |
50 //void openEdit_Luftintegration(void); | |
51 void openEdit_ButtonSens(void); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
52 void openEdit_FlipDisplay(void); |
38 | 53 |
54 /* Announced function prototypes -----------------------------------------------*/ | |
55 uint8_t OnAction_Compass (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
56 uint8_t OnAction_Bearing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
57 uint8_t OnAction_BearingClear (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
58 uint8_t OnAction_InertiaLevel (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
38 | 59 //uint8_t OnAction_ExitHardw (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
60 uint8_t OnAction_Sensor1 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
61 uint8_t OnAction_Sensor2 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
62 uint8_t OnAction_Sensor3 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
63 uint8_t OnAction_O2_Fallback (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
64 uint8_t OnAction_O2_Calibrate (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
65 uint8_t OnAction_O2_Source (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
38 | 66 uint8_t OnAction_Button (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
67 uint8_t OnAction_ButtonBalance (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
68 // nicht notwending uint8_t OnAction_Bluetooth (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
69 | |
70 /* Exported functions --------------------------------------------------------*/ | |
71 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
72 |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
73 #define O2_CALIB_FRACTION_AIR (0.209F) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
74 |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
75 |
38 | 76 void openEdit_Hardware(uint8_t line) |
77 { | |
78 set_globalState_Menu_Line(line); | |
79 resetMenuEdit(CLUT_MenuPageHardware); | |
80 | |
81 switch(line) | |
82 { | |
83 case 1: | |
84 default: | |
85 openEdit_Bluetooth(); | |
86 break; | |
87 case 2: | |
88 openEdit_Compass(); | |
89 break; | |
90 case 3: | |
91 openEdit_O2Sensors(); | |
92 break; | |
93 case 4: | |
94 openEdit_Brightness(); | |
95 break; | |
96 case 5: | |
97 openEdit_ButtonSens(); | |
98 break; | |
99 case 6: | |
138 | 100 openEdit_FlipDisplay(); |
38 | 101 break; |
102 } | |
103 } | |
104 | |
105 /* Private functions ---------------------------------------------------------*/ | |
106 void openEdit_Bluetooth(void) | |
107 { | |
108 /* does not work like this resetEnterPressedToStateBeforeButtonAction(); */ | |
109 | |
110 SSettings *pSettings = settingsGetPointer(); | |
111 | |
112 if(pSettings->bluetoothActive == 0) | |
113 { | |
114 pSettings->bluetoothActive = 1; | |
115 MX_Bluetooth_PowerOn(); | |
394
717f335cc5c9
Added start of module configuration after eache modul power on
ideenmodellierer
parents:
314
diff
changeset
|
116 tComm_StartBlueModConfig(); |
38 | 117 } |
118 else | |
119 { | |
120 pSettings->bluetoothActive = 0; | |
121 MX_Bluetooth_PowerOff(); | |
122 } | |
123 exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only(); | |
124 } | |
125 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
126 void openEdit_FlipDisplay(void) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
127 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
128 /* does not work like this resetEnterPressedToStateBeforeButtonAction(); */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
129 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
130 SSettings *pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
131 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
132 if(pSettings->FlipDisplay == 0) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
133 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
134 pSettings->FlipDisplay = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
135 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
136 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
137 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
138 pSettings->FlipDisplay = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
139 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
140 /* reinit all views */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
141 tHome_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
142 tI_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
143 tM_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
144 tMenuEdit_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
145 tInfoLog_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
146 tM_build_pages(); |
314 | 147 GFX_build_logo_frame(); |
148 GFX_build_hw_background_frame(); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
149 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
150 exitEditWithUpdate(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
151 exitMenuEdit_to_Home(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
152 } |
38 | 153 |
154 void refresh_CompassEdit(void) | |
155 { | |
156 uint16_t heading; | |
157 char text[32]; | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
158 uint8_t textIndex = 0; |
38 | 159 |
160 text[0] = '\001'; | |
161 text[1] = TXT_2BYTE; | |
162 text[2] = TXT2BYTE_Compass; | |
163 text[3] = 0; | |
164 write_topline(text); | |
165 | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
166 if(settingsGetPointer()->compassInertia) |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
167 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
168 heading = (uint16_t)compass_getCompensated(); |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
169 } |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
170 else |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
171 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
172 heading = (uint16_t)stateUsed->lifeData.compass_heading; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
173 } |
38 | 174 snprintf(text,32,"\001%03i`",heading); |
175 write_label_var( 0, 800, ME_Y_LINE1, &FontT54, text); | |
176 | |
177 tMenuEdit_refresh_field(StMHARD2_Compass_SetCourse); | |
178 tMenuEdit_refresh_field(StMHARD2_Compass_Calibrate); | |
179 tMenuEdit_refresh_field(StMHARD2_Compass_ResetCourse); | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
180 text[textIndex++] = TXT_2BYTE; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
181 text[textIndex++] = TXT2BYTE_CompassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
182 text[textIndex++] = ':'; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
183 text[textIndex++] = ' '; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
184 text[textIndex++] = '0' + settingsGetPointer()->compassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
185 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
186 write_label_var(30, 800, ME_Y_LINE5, &FontT48, text); |
38 | 187 |
188 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
189 } | |
190 | |
191 | |
192 void openEdit_Compass(void) | |
193 { | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
194 char text[10]; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
195 uint8_t textIndex = 0; |
38 | 196 |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
197 text[textIndex++] = '\001'; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
198 text[textIndex++] = TXT_2BYTE; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
199 text[textIndex++] = TXT2BYTE_Compass; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
200 text[textIndex++] = 0; |
38 | 201 write_topline(text); |
202 | |
203 text[0] = TXT_2BYTE; | |
204 text[2] = 0; | |
205 | |
206 text[1] = TXT2BYTE_SetBearing; | |
207 write_field_button(StMHARD2_Compass_SetCourse, 30, 800, ME_Y_LINE2, &FontT48, text); | |
208 | |
209 text[1] = TXT2BYTE_CompassCalib; | |
210 write_field_button(StMHARD2_Compass_Calibrate, 30, 800, ME_Y_LINE3, &FontT48, text); | |
211 | |
212 text[1] = TXT2BYTE_ResetBearing; | |
213 write_field_button(StMHARD2_Compass_ResetCourse, 30, 800, ME_Y_LINE4, &FontT48, text); | |
214 | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
215 text[1] = TXT2BYTE_CompassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
216 textIndex = 2; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
217 text[textIndex++] = ':'; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
218 text[textIndex++] = ' '; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
219 text[textIndex++] = '0' + settingsGetPointer()->compassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
220 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
221 write_field_button(StMHARD2_Compass_Inertia, 30, 800, ME_Y_LINE5, &FontT48, text); |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
222 |
38 | 223 setEvent(StMHARD2_Compass_SetCourse, (uint32_t)OnAction_Bearing); |
224 setEvent(StMHARD2_Compass_Calibrate, (uint32_t)OnAction_Compass); | |
225 setEvent(StMHARD2_Compass_ResetCourse, (uint32_t)OnAction_BearingClear); | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
226 setEvent(StMHARD2_Compass_Inertia, (uint32_t)OnAction_InertiaLevel); |
38 | 227 |
228 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
229 } | |
230 | |
231 | |
232 uint8_t OnAction_Compass (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
233 { | |
234 calibrateCompass(); | |
235 return EXIT_TO_INFO_COMPASS; | |
236 } | |
237 | |
238 | |
239 uint8_t OnAction_Bearing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
240 { | |
241 settingsGetPointer()->compassBearing = (int16_t)stateUsed->lifeData.compass_heading; | |
242 if(settingsGetPointer()->compassBearing == 0) | |
243 settingsGetPointer()->compassBearing = 360; | |
244 return UPDATE_AND_EXIT_TO_MENU; | |
245 } | |
246 | |
247 | |
248 uint8_t OnAction_BearingClear (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
249 { | |
250 settingsGetPointer()->compassBearing = 0; | |
251 return UPDATE_AND_EXIT_TO_MENU; | |
252 } | |
253 | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
254 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
255 uint8_t OnAction_InertiaLevel (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
256 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
257 uint8_t newLevel = 0; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
258 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
259 newLevel = settingsGetPointer()->compassInertia + 1; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
260 if(newLevel > MAX_COMPASS_COMP) |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
261 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
262 newLevel = 0; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
263 } |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
264 settingsGetPointer()->compassInertia = newLevel; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
265 return UPDATE_DIVESETTINGS; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
266 } |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
267 |
38 | 268 /* |
269 uint8_t OnAction_ExitHardw (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
270 { | |
271 return EXIT_TO_MENU; | |
272 } | |
273 */ | |
274 | |
275 void refresh_O2Sensors(void) | |
276 { | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
277 char text[32]; |
38 | 278 uint16_t y_line; |
279 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
280 const SDiveState *pStateReal = stateRealGetPointer(); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
281 |
38 | 282 text[0] = '\001'; |
283 text[1] = TXT_o2Sensors; | |
284 text[2] = 0; | |
285 write_topline(text); | |
286 | |
287 | |
288 text[0] = TXT_2BYTE; | |
289 text[1] = TXT2BYTE_Sensor; | |
290 text[2] = ' '; | |
291 text[3] = '1'; | |
292 text[4] = 0; | |
293 write_label_var( 96, 340, ME_Y_LINE1, &FontT48, text); | |
294 text[3] = '2'; | |
295 write_label_var( 96, 340, ME_Y_LINE2, &FontT48, text); | |
296 text[3] = '3'; | |
297 write_label_var( 96, 340, ME_Y_LINE3, &FontT48, text); | |
298 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
299 if(settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_OPTIC) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
300 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
301 text[0] = TXT_2BYTE; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
302 text[1] = TXT2BYTE_HUDbattery; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
303 text[2] = 0; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
304 write_label_var( 30, 340, ME_Y_LINE4, &FontT48, text); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
305 |
38 | 306 |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
307 snprintf(text, 20,"%01.3fV", get_HUD_battery_voltage_V()); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
308 write_label_var( 400, 800, ME_Y_LINE4, &FontT48, text); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
309 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
310 else |
38 | 311 { |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
312 text[0] = TXT_2BYTE; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
313 text[1] = TXT2BYTE_O2CalibAir; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
314 text[2] = 0; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
315 write_label_var( 30, 340, ME_Y_LINE4, &FontT48, text); |
38 | 316 } |
317 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
318 for(int i=0;i<3;i++) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
319 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
320 snprintf(text, 20,"%01.2f, %01.1fmV", pStateReal->lifeData.ppO2Sensor_bar[i], pStateReal->lifeData.sensorVoltage_mV[i]); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
321 y_line = ME_Y_LINE1 + (i * ME_Y_LINE_STEP); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
322 write_label_var( 400, 800, y_line, &FontT48, text); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
323 } |
38 | 324 |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
325 if(DataEX_external_ADC_Present()) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
326 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
327 text[0] = TXT_2BYTE; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
328 text[1] = TXT2BYTE_O2Interface; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
329 text[2] = 0; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
330 write_label_var( 30, 340, ME_Y_LINE6, &FontT48, text); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
331 text[0] = TXT_2BYTE; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
332 switch(settingsGetPointer()->ppo2sensors_source) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
333 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
334 default: |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
335 case O2_SENSOR_SOURCE_OPTIC: text[1] = TXT2BYTE_O2IFOptic; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
336 break; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
337 case O2_SENSOR_SOURCE_ANALOG: text[1] = TXT2BYTE_O2IFAnalog; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
338 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
339 text[2] = 0; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
340 write_label_var( 400, 800, ME_Y_LINE6, &FontT48, text); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
341 } |
38 | 342 tMenuEdit_refresh_field(StMHARD3_O2_Sensor1); |
343 tMenuEdit_refresh_field(StMHARD3_O2_Sensor2); | |
344 tMenuEdit_refresh_field(StMHARD3_O2_Sensor3); | |
345 tMenuEdit_refresh_field(StMHARD3_O2_Fallback); | |
346 | |
347 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
348 } | |
349 | |
350 | |
351 void openEdit_O2Sensors(void) | |
352 { | |
353 char text[2]; | |
354 uint8_t sensorActive[3]; | |
355 | |
356 sensorActive[0] = 1; | |
357 sensorActive[1] = 1; | |
358 sensorActive[2] = 1; | |
359 if(settingsGetPointer()->ppo2sensors_deactivated & 1) | |
360 sensorActive[0] = 0; | |
361 if(settingsGetPointer()->ppo2sensors_deactivated & 2) | |
362 sensorActive[1] = 0; | |
363 if(settingsGetPointer()->ppo2sensors_deactivated & 4) | |
364 sensorActive[2] = 0; | |
365 | |
366 write_field_on_off(StMHARD3_O2_Sensor1, 30, 95, ME_Y_LINE1, &FontT48, "", sensorActive[0]); | |
367 write_field_on_off(StMHARD3_O2_Sensor2, 30, 95, ME_Y_LINE2, &FontT48, "", sensorActive[1]); | |
368 write_field_on_off(StMHARD3_O2_Sensor3, 30, 95, ME_Y_LINE3, &FontT48, "", sensorActive[2]); | |
369 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
370 if(settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
371 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
372 write_field_button(StMHARD3_O2_Calibrate, 30, 800, ME_Y_LINE4, &FontT48, ""); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
373 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
374 |
38 | 375 text[0] = TXT_Fallback; |
376 text[1] = 1; | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
377 |
38 | 378 write_field_on_off(StMHARD3_O2_Fallback, 30, 500, ME_Y_LINE5, &FontT48, text, settingsGetPointer()->fallbackToFixedSetpoint); |
379 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
380 if(DataEX_external_ADC_Present()) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
381 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
382 write_field_button(StMHARD3_O2_Source, 30, 800, ME_Y_LINE6, &FontT48, ""); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
383 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
384 |
38 | 385 setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1); |
386 setEvent(StMHARD3_O2_Sensor2, (uint32_t)OnAction_Sensor2); | |
387 setEvent(StMHARD3_O2_Sensor3, (uint32_t)OnAction_Sensor3); | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
388 if(settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
389 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
390 setEvent(StMHARD3_O2_Calibrate, (uint32_t)OnAction_O2_Calibrate); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
391 } |
38 | 392 setEvent(StMHARD3_O2_Fallback, (uint32_t)OnAction_O2_Fallback); |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
393 if(DataEX_external_ADC_Present()) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
394 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
395 setEvent(StMHARD3_O2_Source, (uint32_t)OnAction_O2_Source); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
396 } |
38 | 397 |
398 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
399 } | |
400 | |
401 | |
402 uint8_t OnAction_Sensor1(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
403 { | |
404 if(settingsGetPointer()->ppo2sensors_deactivated & 1) | |
405 { | |
406 settingsGetPointer()->ppo2sensors_deactivated &= 4+2; | |
407 tMenuEdit_set_on_off(editId, 1); | |
408 } | |
409 else | |
410 { | |
411 settingsGetPointer()->ppo2sensors_deactivated |= 1; | |
412 tMenuEdit_set_on_off(editId, 0); | |
413 } | |
414 | |
415 return UPDATE_DIVESETTINGS; | |
416 } | |
417 | |
418 | |
419 uint8_t OnAction_Sensor2(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
420 { | |
421 if(settingsGetPointer()->ppo2sensors_deactivated & 2) | |
422 { | |
423 settingsGetPointer()->ppo2sensors_deactivated &= 4+1; | |
424 tMenuEdit_set_on_off(editId, 1); | |
425 } | |
426 else | |
427 { | |
428 settingsGetPointer()->ppo2sensors_deactivated |= 2; | |
429 tMenuEdit_set_on_off(editId, 0); | |
430 } | |
431 | |
432 return UPDATE_DIVESETTINGS; | |
433 } | |
434 | |
435 | |
436 uint8_t OnAction_Sensor3(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
437 { | |
438 if(settingsGetPointer()->ppo2sensors_deactivated & 4) | |
439 { | |
440 settingsGetPointer()->ppo2sensors_deactivated &= 2+1; | |
441 tMenuEdit_set_on_off(editId, 1); | |
442 } | |
443 else | |
444 { | |
445 settingsGetPointer()->ppo2sensors_deactivated |= 4; | |
446 tMenuEdit_set_on_off(editId, 0); | |
447 } | |
448 | |
449 return UPDATE_DIVESETTINGS; | |
450 } | |
451 | |
452 | |
453 uint8_t OnAction_O2_Fallback (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
454 { | |
455 uint8_t fallback = settingsGetPointer()->fallbackToFixedSetpoint; | |
456 | |
457 if(fallback) | |
458 fallback = 0; | |
459 else | |
460 fallback = 1; | |
461 | |
462 settingsGetPointer()->fallbackToFixedSetpoint = fallback; | |
463 tMenuEdit_set_on_off(editId, fallback); | |
464 return UPDATE_DIVESETTINGS; | |
465 } | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
466 uint8_t OnAction_O2_Calibrate (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
467 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
468 uint8_t loop; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
469 const SDiveState *pStateReal = stateRealGetPointer(); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
470 SSettings* pSettings = settingsGetPointer(); |
38 | 471 |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
472 for(loop=0;loop<3;loop++) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
473 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
474 if((pSettings->ppo2sensors_deactivated & (0x1 << loop)) == 0) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
475 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
476 if(pStateReal->lifeData.sensorVoltage_mV[loop] > 0.0001) /* sensor connected ?*/ |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
477 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
478 pSettings->ppo2sensors_calibCoeff[loop] = O2_CALIB_FRACTION_AIR / pStateReal->lifeData.sensorVoltage_mV[loop]; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
479 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
480 else |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
481 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
482 pSettings->ppo2sensors_calibCoeff[loop] = 0.0; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
483 settingsGetPointer()->ppo2sensors_deactivated |= 0x1 << loop; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
484 tMenuEdit_set_on_off(editId, 0); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
485 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
486 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
487 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
488 |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
489 return UPDATE_DIVESETTINGS; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
490 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
491 uint8_t OnAction_O2_Source (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
492 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
493 uint8_t source = settingsGetPointer()->ppo2sensors_source; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
494 |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
495 if(source == O2_SENSOR_SOURCE_OPTIC) |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
496 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
497 source = O2_SENSOR_SOURCE_ANALOG; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
498 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
499 else |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
500 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
501 source = O2_SENSOR_SOURCE_OPTIC; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
502 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
503 |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
504 settingsGetPointer()->ppo2sensors_source = source; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
505 |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
506 resetMenuEdit(CLUT_MenuPageHardware); /* rebuild menu structure (Hide HUD <=> Show Calibrate) */ |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
507 openEdit_O2Sensors(); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
508 return UPDATE_DIVESETTINGS; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
509 } |
38 | 510 |
511 void openEdit_Brightness(void) | |
512 { | |
513 uint8_t actualBrightness; | |
514 SSettings *pSettings = settingsGetPointer(); | |
515 | |
516 actualBrightness = pSettings->brightness; | |
517 actualBrightness++; | |
518 if(actualBrightness > 4) | |
519 actualBrightness = 0; | |
520 pSettings->brightness = actualBrightness; | |
521 exitEditWithUpdate(); | |
522 } | |
523 | |
524 | |
525 void buttonBalanceText_helper(uint8_t idOfButton, char *textOutput) | |
526 { | |
527 uint8_t txtcount = 0; | |
528 | |
529 if(idOfButton < 3) | |
530 { | |
531 textOutput[txtcount++] = '@' + settingsGetPointer()->buttonBalance[idOfButton]; | |
532 textOutput[txtcount++] = ' '; | |
533 textOutput[txtcount++] = ' '; | |
534 textOutput[txtcount++] = '('; | |
535 | |
536 switch(settingsGetPointer()->buttonBalance[idOfButton]) | |
537 { | |
538 case 1: | |
539 textOutput[txtcount++] = '-'; | |
540 textOutput[txtcount++] = '2'; | |
541 textOutput[txtcount++] = '0'; | |
542 break; | |
543 case 2: | |
544 textOutput[txtcount++] = '-'; | |
545 textOutput[txtcount++] = '1'; | |
546 textOutput[txtcount++] = '0'; | |
547 break; | |
548 case 3: | |
549 default: | |
550 textOutput[txtcount++] = '0'; | |
551 break; | |
552 case 4: | |
553 textOutput[txtcount++] = '+'; | |
554 textOutput[txtcount++] = '1'; | |
555 textOutput[txtcount++] = '0'; | |
556 break; | |
557 case 5: | |
558 textOutput[txtcount++] = '+'; | |
559 textOutput[txtcount++] = '2'; | |
560 textOutput[txtcount++] = '0'; | |
561 break; | |
562 } | |
563 textOutput[txtcount++] = ')'; | |
564 } | |
565 textOutput[txtcount++] = 0; | |
566 } | |
567 | |
568 /**# | |
569 ****************************************************************************** | |
570 * @brief BUTTONS | |
571 * @author heinrichs weikamp gmbh | |
572 * @version V 01 | |
573 * @date 15-Sept-2016 | |
574 ****************************************************************************** | |
575 * Button 0 is right, Button 1 is middle, Button 2 is left !!!! | |
576 * 2 1 0 (base value 3) | |
577 * Button 3 is used to store the base value, all others are balanced around this one! | |
578 * | |
579 */ | |
580 | |
581 void openEdit_ButtonSens(void) | |
582 { | |
583 char text[32]; | |
584 uint8_t sens; | |
585 const uint32_t eventListButtonBalance[3] = {StMHARD5_ButtonBalance1,StMHARD5_ButtonBalance2,StMHARD5_ButtonBalance3}; | |
586 | |
587 sens = (uint8_t)settingsGetPointer()->ButtonResponsiveness[3]; | |
588 write_field_3digit(StMHARD5_Button1, 360, 780, ME_Y_LINE1, &FontT48, "###", sens, 0, 0, 0); | |
589 | |
590 for(int i=2;i>=0;i--) | |
591 { | |
592 buttonBalanceText_helper(i,text); | |
593 write_field_button(eventListButtonBalance[i],360,500,ME_Y_LINE4-(i*ME_Y_LINE_STEP),&FontT48,text); | |
594 } | |
595 | |
596 | |
597 setEvent(StMHARD5_Button1, (uint32_t)OnAction_Button); | |
598 | |
599 for(int i=2;i>=0;i--) | |
600 { | |
601 setEvent(eventListButtonBalance[i], (uint32_t)OnAction_ButtonBalance); | |
602 } | |
603 | |
604 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
605 } | |
606 | |
607 | |
608 void refresh_ButtonValuesFromPIC(void) | |
609 { | |
610 uint8_t sens[3]; | |
611 char text[64]; | |
612 | |
613 text[0] = '\001'; | |
614 text[1] = TXT_2BYTE; | |
615 text[2] = TXT2BYTE_ButtonSensitivity; | |
616 text[3] = 0; | |
617 write_topline(text); | |
618 | |
619 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
620 | |
525
1f557e5f4b5a
Change color ID used in strings for light grey:
Ideenmodellierer
parents:
394
diff
changeset
|
621 text[0] = '\020'; // '\031'; |
38 | 622 text[1] = TXT_2BYTE; |
623 text[2] = TXT2BYTE_LowerIsLess; | |
624 text[3] = 0; | |
625 write_label_var( 20, 780, ME_Y_LINE5, &FontT42, text); | |
626 | |
627 for(int i=0;i<3;i++) | |
628 { | |
629 text[0] = TXT_2BYTE; | |
630 text[1] = TXT2BYTE_ButtonLeft+i; | |
631 text[2] = 0; | |
632 write_label_var( 20, 300, ME_Y_LINE2+(i*ME_Y_LINE_STEP), &FontT48, text); | |
633 } | |
634 | |
635 for(int i=0;i<3;i++) | |
636 { | |
637 sens[i] = settingsHelperButtonSens_translate_hwOS_values_to_percentage(stateRealGetPointer()->lifeData.buttonPICdata[i]); | |
638 } | |
639 snprintf(text,64,"(%03u %03u %03u)",sens[2],sens[1],sens[0]); | |
640 write_label_var( 20, 340, ME_Y_LINE6, &FontT42, text); | |
641 | |
642 tMenuEdit_refresh_field(StMHARD5_Button1); | |
643 tMenuEdit_refresh_field(StMHARD5_ButtonBalance1); | |
644 tMenuEdit_refresh_field(StMHARD5_ButtonBalance2); | |
645 tMenuEdit_refresh_field(StMHARD5_ButtonBalance3); | |
646 } | |
647 | |
648 | |
649 uint8_t OnAction_Button(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
650 { | |
651 uint8_t digitContentNew, remainder; | |
652 uint32_t newSensitivityGlobal; | |
653 | |
654 if(action == ACTION_BUTTON_NEXT) | |
655 { | |
656 digitContentNew = digitContent - '0'; | |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
657 if(digitContentNew >= MAX_BUTTONRESPONSIVENESS_GUI) |
38 | 658 { |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
659 digitContentNew = MIN_BUTTONRESPONSIVENESS_GUI; |
38 | 660 } |
661 else | |
662 { | |
663 remainder = digitContentNew%5; | |
664 digitContentNew += 5 - remainder; | |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
665 if(digitContentNew >= MAX_BUTTONRESPONSIVENESS_GUI) |
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
666 digitContentNew = MAX_BUTTONRESPONSIVENESS_GUI; |
38 | 667 } |
668 return '0' + digitContentNew; | |
669 } | |
670 | |
671 if(action == ACTION_BUTTON_BACK) | |
672 { | |
673 digitContentNew = digitContent - '0'; | |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
674 if(digitContentNew <= MIN_BUTTONRESPONSIVENESS_GUI) |
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
675 digitContentNew = MAX_BUTTONRESPONSIVENESS_GUI; |
38 | 676 else |
677 { | |
678 remainder = digitContentNew%5; | |
679 if(remainder) | |
680 digitContentNew -= remainder; | |
681 else | |
682 digitContentNew -= 5; | |
683 } | |
684 return '0' + digitContentNew; | |
685 } | |
686 | |
687 if(action == ACTION_BUTTON_ENTER_FINAL) | |
688 { | |
689 evaluateNewString(editId, &newSensitivityGlobal, 0, 0, 0); | |
690 settingsHelperButtonSens_keepPercentageValues(newSensitivityGlobal, settingsGetPointer()->ButtonResponsiveness); | |
691 setButtonResponsiveness(settingsGetPointer()->ButtonResponsiveness); | |
692 return UNSPECIFIC_RETURN; | |
693 } | |
694 return digitContent; | |
695 } | |
696 | |
697 | |
698 uint8_t OnAction_ButtonBalance(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
699 { | |
700 int8_t idBalance = -1; | |
701 uint8_t *ptrSetting; | |
702 char text[32]; | |
703 | |
704 const uint32_t eventListButtonBalance[3] = {StMHARD5_ButtonBalance1,StMHARD5_ButtonBalance2,StMHARD5_ButtonBalance3}; | |
705 | |
706 idBalance = -1; | |
707 for(int i=0;i<3;i++) | |
708 { | |
709 if(editId == eventListButtonBalance[i]) | |
710 { | |
711 idBalance = i; | |
712 break; | |
713 } | |
714 } | |
715 | |
716 if((idBalance >= 0) && (idBalance < 3)) | |
717 { | |
718 ptrSetting = &settingsGetPointer()->buttonBalance[idBalance]; | |
719 | |
720 *ptrSetting += 1; | |
721 | |
722 if(*ptrSetting > 5) | |
723 *ptrSetting = 2; | |
724 | |
725 buttonBalanceText_helper(idBalance,text); | |
726 tMenuEdit_newButtonText(eventListButtonBalance[idBalance],text); | |
727 } | |
728 | |
729 return UNSPECIFIC_RETURN; | |
730 } |