Mercurial > public > ostc4
annotate Discovery/Src/tMenuEditHardware.c @ 747:df0d43da1614
Added pressure compensation to CO2 detection:
A pressure compensation is needed if the ExplorIR shall be used under extended pressure conditions. The procedure recommended by the application note has been integrated. To keep things simple the focus of the CO2 measurement is not the precision, as it is needed for the decompression calculation, but the indication of a critical increase of CO2 in the breathing loop. That's why only a lookup table with 1000ppm steps has been implemented instead of calculating the polynom for every measurement.
author | Ideenmodellierer |
---|---|
date | Sun, 05 Mar 2023 22:06:47 +0100 |
parents | 7e84ae1513b6 |
children | be25ab2d902c |
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" |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
40 #include "tInfoSensor.h" |
394
717f335cc5c9
Added start of module configuration after eache modul power on
ideenmodellierer
parents:
314
diff
changeset
|
41 #include "tComm.h" |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
42 #include "data_exchange_main.h" |
38 | 43 |
130
b7689d9e888a
Minor changes to improved code quality and to eliminate warnings
Ideenmodellierer
parents:
115
diff
changeset
|
44 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
|
45 |
38 | 46 /* Private function prototypes -----------------------------------------------*/ |
47 void openEdit_Bluetooth(void); | |
48 void openEdit_Compass(void); | |
49 void openEdit_O2Sensors(void); | |
50 void openEdit_Brightness(void); | |
51 //void openEdit_Luftintegration(void); | |
52 void openEdit_ButtonSens(void); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
53 void openEdit_FlipDisplay(void); |
38 | 54 |
55 /* Announced function prototypes -----------------------------------------------*/ | |
56 uint8_t OnAction_Compass (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
57 uint8_t OnAction_Bearing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
58 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
|
59 uint8_t OnAction_InertiaLevel (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
38 | 60 //uint8_t OnAction_ExitHardw (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
61 uint8_t OnAction_Sensor1 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
62 uint8_t OnAction_Sensor2 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
63 uint8_t OnAction_Sensor3 (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); |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
65 //uint8_t OnAction_O2_Source (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
66 uint8_t OnAction_Sensor_Info (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
67 uint8_t OnAction_Sensor_Detect (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
38 | 68 uint8_t OnAction_Button (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
69 uint8_t OnAction_ButtonBalance (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
70 uint8_t OnAction_ButtonLock (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
605 | 71 // not required uint8_t OnAction_Bluetooth (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
38 | 72 |
73 /* Exported functions --------------------------------------------------------*/ | |
74 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
75 |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
76 #define O2_CALIB_FRACTION_AIR (0.209F) |
605 | 77 #define O2_CALIB_FRACTION_O2 (0.98F) |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
78 |
584 | 79 static uint8_t O2_calib_gas = 21; |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
80 static uint8_t haveSensorInfo = 0; |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
81 |
38 | 82 void openEdit_Hardware(uint8_t line) |
83 { | |
84 set_globalState_Menu_Line(line); | |
85 | |
86 switch(line) | |
87 { | |
88 case 1: | |
89 default: | |
90 openEdit_Bluetooth(); | |
91 break; | |
92 case 2: | |
708
7e3bf2c0cd40
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
703
diff
changeset
|
93 resetMenuEdit(CLUT_MenuPageHardware); |
38 | 94 openEdit_Compass(); |
95 break; | |
96 case 3: | |
97 openEdit_O2Sensors(); | |
98 break; | |
99 case 4: | |
100 openEdit_Brightness(); | |
101 break; | |
102 case 5: | |
708
7e3bf2c0cd40
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
703
diff
changeset
|
103 resetMenuEdit(CLUT_MenuPageHardware); |
38 | 104 openEdit_ButtonSens(); |
105 break; | |
106 case 6: | |
138 | 107 openEdit_FlipDisplay(); |
38 | 108 break; |
109 } | |
110 } | |
111 | |
112 /* Private functions ---------------------------------------------------------*/ | |
113 void openEdit_Bluetooth(void) | |
114 { | |
115 /* does not work like this resetEnterPressedToStateBeforeButtonAction(); */ | |
116 | |
117 SSettings *pSettings = settingsGetPointer(); | |
118 | |
119 if(pSettings->bluetoothActive == 0) | |
120 { | |
121 pSettings->bluetoothActive = 1; | |
122 MX_Bluetooth_PowerOn(); | |
394
717f335cc5c9
Added start of module configuration after eache modul power on
ideenmodellierer
parents:
314
diff
changeset
|
123 tComm_StartBlueModConfig(); |
38 | 124 } |
125 else | |
126 { | |
127 pSettings->bluetoothActive = 0; | |
128 MX_Bluetooth_PowerOff(); | |
129 } | |
130 exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only(); | |
131 } | |
132 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
133 void openEdit_FlipDisplay(void) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
134 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
135 /* does not work like this resetEnterPressedToStateBeforeButtonAction(); */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
136 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
137 SSettings *pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
138 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
139 if(pSettings->FlipDisplay == 0) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
140 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
141 pSettings->FlipDisplay = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
142 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
143 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
144 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
145 pSettings->FlipDisplay = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
146 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
147 /* reinit all views */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
148 tHome_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
149 tI_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
150 tM_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
151 tMenuEdit_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
152 tInfoLog_init(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
153 tM_build_pages(); |
314 | 154 GFX_build_logo_frame(); |
155 GFX_build_hw_background_frame(); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
156 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
157 exitEditWithUpdate(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
158 exitMenuEdit_to_Home(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
159 } |
38 | 160 |
161 void refresh_CompassEdit(void) | |
162 { | |
163 uint16_t heading; | |
164 char text[32]; | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
165 uint8_t textIndex = 0; |
38 | 166 |
167 text[0] = '\001'; | |
168 text[1] = TXT_2BYTE; | |
169 text[2] = TXT2BYTE_Compass; | |
170 text[3] = 0; | |
171 write_topline(text); | |
172 | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
173 if(settingsGetPointer()->compassInertia) |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
174 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
175 heading = (uint16_t)compass_getCompensated(); |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
176 } |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
177 else |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
178 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
179 heading = (uint16_t)stateUsed->lifeData.compass_heading; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
180 } |
38 | 181 snprintf(text,32,"\001%03i`",heading); |
182 write_label_var( 0, 800, ME_Y_LINE1, &FontT54, text); | |
183 | |
184 tMenuEdit_refresh_field(StMHARD2_Compass_SetCourse); | |
185 tMenuEdit_refresh_field(StMHARD2_Compass_Calibrate); | |
186 tMenuEdit_refresh_field(StMHARD2_Compass_ResetCourse); | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
187 text[textIndex++] = TXT_2BYTE; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
188 text[textIndex++] = TXT2BYTE_CompassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
189 text[textIndex++] = ':'; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
190 text[textIndex++] = ' '; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
191 text[textIndex++] = '0' + settingsGetPointer()->compassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
192 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
193 write_label_var(30, 800, ME_Y_LINE5, &FontT48, text); |
38 | 194 |
195 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
196 } | |
197 | |
198 | |
199 void openEdit_Compass(void) | |
200 { | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
201 char text[10]; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
202 uint8_t textIndex = 0; |
38 | 203 |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
204 text[textIndex++] = '\001'; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
205 text[textIndex++] = TXT_2BYTE; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
206 text[textIndex++] = TXT2BYTE_Compass; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
207 text[textIndex++] = 0; |
38 | 208 write_topline(text); |
209 | |
210 text[0] = TXT_2BYTE; | |
211 text[2] = 0; | |
212 | |
213 text[1] = TXT2BYTE_SetBearing; | |
214 write_field_button(StMHARD2_Compass_SetCourse, 30, 800, ME_Y_LINE2, &FontT48, text); | |
215 | |
216 text[1] = TXT2BYTE_CompassCalib; | |
217 write_field_button(StMHARD2_Compass_Calibrate, 30, 800, ME_Y_LINE3, &FontT48, text); | |
218 | |
219 text[1] = TXT2BYTE_ResetBearing; | |
220 write_field_button(StMHARD2_Compass_ResetCourse, 30, 800, ME_Y_LINE4, &FontT48, text); | |
221 | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
222 text[1] = TXT2BYTE_CompassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
223 textIndex = 2; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
224 text[textIndex++] = ':'; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
225 text[textIndex++] = ' '; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
226 text[textIndex++] = '0' + settingsGetPointer()->compassInertia; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
227 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
228 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
|
229 |
38 | 230 setEvent(StMHARD2_Compass_SetCourse, (uint32_t)OnAction_Bearing); |
231 setEvent(StMHARD2_Compass_Calibrate, (uint32_t)OnAction_Compass); | |
232 setEvent(StMHARD2_Compass_ResetCourse, (uint32_t)OnAction_BearingClear); | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
233 setEvent(StMHARD2_Compass_Inertia, (uint32_t)OnAction_InertiaLevel); |
38 | 234 |
235 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
236 } | |
237 | |
238 | |
239 uint8_t OnAction_Compass (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
240 { | |
241 calibrateCompass(); | |
242 return EXIT_TO_INFO_COMPASS; | |
243 } | |
244 | |
245 | |
246 uint8_t OnAction_Bearing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
247 { | |
709 | 248 if((int16_t)stateUsed->lifeData.compass_heading != -1) |
249 { | |
250 settingsGetPointer()->compassBearing = (int16_t)stateUsed->lifeData.compass_heading; | |
251 } | |
252 else | |
253 { | |
254 settingsGetPointer()->compassBearing = 0; | |
255 } | |
256 | |
38 | 257 if(settingsGetPointer()->compassBearing == 0) |
258 settingsGetPointer()->compassBearing = 360; | |
259 return UPDATE_AND_EXIT_TO_MENU; | |
260 } | |
261 | |
262 | |
263 uint8_t OnAction_BearingClear (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
264 { | |
265 settingsGetPointer()->compassBearing = 0; | |
266 return UPDATE_AND_EXIT_TO_MENU; | |
267 } | |
268 | |
539
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
269 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
270 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
|
271 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
272 uint8_t newLevel = 0; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
273 |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
274 newLevel = settingsGetPointer()->compassInertia + 1; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
275 if(newLevel > MAX_COMPASS_COMP) |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
276 { |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
277 newLevel = 0; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
278 } |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
279 settingsGetPointer()->compassInertia = newLevel; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
280 return UPDATE_DIVESETTINGS; |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
281 } |
d784f281833a
Added inertia simulation for compass heading:
Ideenmodellierer
parents:
525
diff
changeset
|
282 |
38 | 283 /* |
284 uint8_t OnAction_ExitHardw (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
285 { | |
286 return EXIT_TO_MENU; | |
287 } | |
288 */ | |
289 | |
290 void refresh_O2Sensors(void) | |
291 { | |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
292 char strSensorId[20]; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
293 char strSensorValue[20]; |
38 | 294 uint16_t y_line; |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
295 uint8_t index = 0; |
38 | 296 |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
297 const SDiveState *pStateReal = stateRealGetPointer(); |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
298 SSettings *pSettings = settingsGetPointer(); |
38 | 299 |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
300 if(memcmp(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, 5) != 0) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
301 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
302 memcpy(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, 5); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
303 pSettings->ppo2sensors_deactivated = 0x0; /* deactivation will be done by openEditO2Sensor if need */ |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
304 |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
305 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_OPTIC; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
306 for(index = 0; index < 3; index++) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
307 { |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
308 switch(pSettings->ext_sensor_map[index]) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
309 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
310 case SENSOR_OPTIC: pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_OPTIC; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
311 break; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
312 case SENSOR_ANALOG: if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_DIGITAL) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
313 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
314 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANADIG; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
315 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
316 if(pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
317 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
318 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANALOG; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
319 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
320 break; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
321 case SENSOR_DIGO2: if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
322 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
323 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANADIG; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
324 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
325 if(pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
326 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
327 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_DIGITAL; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
328 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
329 break; |
746 | 330 #ifdef ENABLE_SENTINEL_MODE |
745 | 331 case SENSOR_SENTINEL: pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_SENTINEL; |
332 break; | |
746 | 333 #endif |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
334 default: |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
335 break; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
336 } |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
337 } |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
338 openEdit_O2Sensors(); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
339 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
340 |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
341 if((pStateReal->lifeData.extIf_sensor_Id != 0) && (haveSensorInfo == 0)) /* the sensor is detected after the interface has been selected => add button if info become available */ |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
342 { |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
343 haveSensorInfo = 1; |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
344 openEdit_O2Sensors(); |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
345 } |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
346 else |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
347 { |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
348 if(pStateReal->lifeData.extIf_sensor_Id == 0) |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
349 { |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
350 haveSensorInfo = 0; |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
351 } |
38 | 352 |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
353 strSensorId[0] = '\001'; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
354 strSensorId[1] = TXT_o2Sensors; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
355 strSensorId[2] = 0; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
356 write_topline(strSensorId); |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
357 |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
358 |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
359 strSensorId[0] = TXT_2BYTE; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
360 strSensorId[1] = TXT2BYTE_Sensor; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
361 strSensorId[2] = ' '; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
362 strSensorId[3] = TXT_2BYTE; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
363 strSensorId[4] = 'X'; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
364 strSensorId[5] = '1'; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
365 strSensorId[6] = 0; |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
366 |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
367 for(index = 0; index < 3; index++) |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
368 { |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
369 strSensorId[4] = 'X'; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
370 strSensorId[5] = '1' + index; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
371 |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
372 switch(pSettings->ext_sensor_map[index]) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
373 { |
745 | 374 case SENSOR_SEARCH: strSensorId[4] = TXT2BYTE_SensorDetect; |
375 break; | |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
376 case SENSOR_OPTIC: strSensorId[4] = TXT2BYTE_O2IFOptic; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
377 break; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
378 case SENSOR_ANALOG: strSensorId[4] = TXT2BYTE_O2IFAnalog; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
379 break; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
380 case SENSOR_DIGO2: strSensorId[4] = TXT2BYTE_O2IFDigital; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
381 break; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
382 case SENSOR_CO2: strSensorId[3] = 'C'; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
383 strSensorId[4] = 'O'; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
384 break; |
745 | 385 case SENSOR_SENTINEL: strSensorId[3] = 'S'; |
386 strSensorId[4] = 'e'; | |
387 break; | |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
388 default: |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
389 break; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
390 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
391 if(strSensorId[4] != 'X') |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
392 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
393 write_label_var( 96, 340, ME_Y_LINE1 + (index * ME_Y_LINE_STEP), &FontT48, strSensorId); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
394 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
395 strSensorValue[0] = 0; |
745 | 396 if((pSettings->ext_sensor_map[index] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[index] < SENSOR_TYPE_O2_END)) |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
397 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
398 snprintf(strSensorValue, 20,"%01.2f, %01.1f mV", pStateReal->lifeData.ppO2Sensor_bar[index], pStateReal->lifeData.sensorVoltage_mV[index]); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
399 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
400 else if(pSettings->ext_sensor_map[index] == SENSOR_CO2) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
401 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
402 snprintf(strSensorValue, 10,"%d ppm", pStateReal->lifeData.CO2_data.CO2_ppm); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
403 } |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
404 y_line = ME_Y_LINE1 + (index * ME_Y_LINE_STEP); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
405 if(strSensorValue[0] != 0) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
406 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
407 write_label_var( 480, 800, y_line, &FontT48, strSensorValue); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
408 } |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
409 } |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
410 |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
411 if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_OPTIC) |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
412 { |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
413 strSensorId[0] = TXT_2BYTE; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
414 strSensorId[1] = TXT2BYTE_HUDbattery; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
415 strSensorId[2] = 0; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
416 write_label_var( 30, 340, ME_Y_LINE4, &FontT48, strSensorId); |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
417 |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
418 snprintf(strSensorId, 20,"%01.3fV", get_HUD_battery_voltage_V()); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
419 write_label_var( 480, 800, ME_Y_LINE4, &FontT48, strSensorId); |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
420 } |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
421 else |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
422 { |
746 | 423 if((pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG) |
424 #ifdef ENABLE_CO2_SUPPORT | |
425 || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL) | |
426 #endif | |
427 ) | |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
428 { |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
429 strSensorId[0] = TXT_2BYTE; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
430 strSensorId[1] = TXT2BYTE_O2Calib; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
431 strSensorId[2] = 0; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
432 write_label_var( 30, 340, ME_Y_LINE4, &FontT48, strSensorId); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
433 snprintf(strSensorId, 20,"%d%%", O2_calib_gas); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
434 write_label_var( 480, 800, ME_Y_LINE4, &FontT48, strSensorId); |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
435 } |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
436 } |
689 | 437 |
745 | 438 strSensorId[0] = TXT_2BYTE; |
439 strSensorId[1] = TXT2BYTE_SensorDetect; | |
440 strSensorId[2] = 0; | |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
441 |
745 | 442 write_label_var( 30, 340, ME_Y_LINE6, &FontT48, strSensorId); |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
443 |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
444 if(haveSensorInfo == 1) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
445 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
446 strSensorId[0] = TXT_Sensor; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
447 strSensorId[1] = ' '; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
448 strSensorId[2] = TXT_Information; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
449 strSensorId[3] = 0; |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
450 write_label_var( 30, 340, ME_Y_LINE5, &FontT48, strSensorId); |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
451 } |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
452 |
745 | 453 if((pSettings->ext_sensor_map[0] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[0] < SENSOR_TYPE_O2_END)) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
454 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
455 tMenuEdit_refresh_field(StMHARD3_O2_Sensor1); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
456 } |
745 | 457 if((pSettings->ext_sensor_map[1] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[1] < SENSOR_TYPE_O2_END)) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
458 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
459 tMenuEdit_refresh_field(StMHARD3_O2_Sensor2); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
460 } |
745 | 461 if((pSettings->ext_sensor_map[2] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[2] < SENSOR_TYPE_O2_END)) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
462 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
463 tMenuEdit_refresh_field(StMHARD3_O2_Sensor3); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
464 } |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
465 } |
38 | 466 |
584 | 467 if(get_globalState() == StMHARD3_O2_Calibrate) |
468 { | |
469 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_O2Calib,TXT2BYTE_ButtonPlus); | |
470 } | |
471 else | |
472 { | |
473 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
474 } | |
38 | 475 } |
476 | |
477 | |
478 void openEdit_O2Sensors(void) | |
479 { | |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
480 SSettings *pSettings = settingsGetPointer(); |
38 | 481 uint8_t sensorActive[3]; |
746 | 482 char text[3]; |
38 | 483 |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
484 set_globalState(StMHARD3_Sensors); |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
485 resetMenuEdit(CLUT_MenuPageHardware); |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
486 |
38 | 487 sensorActive[0] = 1; |
488 sensorActive[1] = 1; | |
489 sensorActive[2] = 1; | |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
490 |
745 | 491 if(((pSettings->ext_sensor_map[0] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[0] >= SENSOR_TYPE_O2_END))) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
492 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
493 pSettings->ppo2sensors_deactivated |= 1; |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
494 } |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
495 else |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
496 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
497 write_field_on_off(StMHARD3_O2_Sensor1, 30, 95, ME_Y_LINE1, &FontT48, "", sensorActive[0]); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
498 } |
745 | 499 if(((pSettings->ext_sensor_map[1] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[1] >= SENSOR_TYPE_O2_END))) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
500 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
501 pSettings->ppo2sensors_deactivated |= 2; |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
502 } |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
503 else |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
504 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
505 write_field_on_off(StMHARD3_O2_Sensor2, 30, 95, ME_Y_LINE2, &FontT48, "", sensorActive[1]); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
506 } |
745 | 507 if(((pSettings->ext_sensor_map[2] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[2] >= SENSOR_TYPE_O2_END))) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
508 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
509 pSettings->ppo2sensors_deactivated |= 4; |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
510 } |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
511 else |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
512 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
513 write_field_on_off(StMHARD3_O2_Sensor3, 30, 95, ME_Y_LINE3, &FontT48, "", sensorActive[2]); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
514 } |
38 | 515 if(settingsGetPointer()->ppo2sensors_deactivated & 1) |
516 sensorActive[0] = 0; | |
517 if(settingsGetPointer()->ppo2sensors_deactivated & 2) | |
518 sensorActive[1] = 0; | |
519 if(settingsGetPointer()->ppo2sensors_deactivated & 4) | |
520 sensorActive[2] = 0; | |
521 | |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
522 if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_OPTIC) |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
523 { |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
524 haveSensorInfo = 0; /* as long as we do not move the HUD battery into the information page... */ |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
525 } |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
526 |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
527 if((pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG) |
689 | 528 #ifdef ENABLE_SENTINEL_MODE |
529 || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL) | |
530 #endif | |
531 ) | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
532 { |
584 | 533 write_label_fix( 30, 800, ME_Y_LINE4, &FontT48, TXT2BYTE_O2Calib); |
534 write_label_var( 400, 800, ME_Y_LINE4, &FontT48, "\016\016 %\017"); | |
535 | |
673
d7c5d592076b
Show 98% in case of Oxygen as the calibrating gas
heinrichsweikamp
parents:
605
diff
changeset
|
536 write_field_toggle(StMHARD3_O2_Calibrate, 400, 800, ME_Y_LINE4, &FontT48, "", 21, 98); |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
537 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
538 |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
539 if(haveSensorInfo != 0) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
540 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
541 write_field_button(StMHARD3_Sensor_Info, 30, 800, ME_Y_LINE5, &FontT48, ""); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
542 } |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
543 |
745 | 544 text[0] = TXT_2BYTE; |
545 text[1] = TXT2BYTE_SensorDetect; | |
546 text[2] = 0; | |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
547 |
745 | 548 write_label_var( 30, 340, ME_Y_LINE6, &FontT48, text); |
549 | |
550 write_field_button(StMHARD3_Sensor_Detect, 30, 800, ME_Y_LINE6, &FontT48, text); | |
551 | |
552 if((pSettings->ext_sensor_map[0] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[0] < SENSOR_TYPE_O2_END)) | |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
553 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
554 setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
555 } |
745 | 556 if((pSettings->ext_sensor_map[1] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[1] < SENSOR_TYPE_O2_END)) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
557 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
558 setEvent(StMHARD3_O2_Sensor2, (uint32_t)OnAction_Sensor2); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
559 } |
745 | 560 if((pSettings->ext_sensor_map[2] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[2] < SENSOR_TYPE_O2_END)) |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
561 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
562 setEvent(StMHARD3_O2_Sensor3, (uint32_t)OnAction_Sensor3); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
563 } |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
564 |
703
2f457024049b
Added selection of digital o2 sensor source to HW menu:
Ideenmodellierer
parents:
689
diff
changeset
|
565 if((settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG) |
689 | 566 #ifdef ENABLE_SENTINEL_MODE |
567 || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL) | |
568 #endif | |
569 ) | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
570 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
571 setEvent(StMHARD3_O2_Calibrate, (uint32_t)OnAction_O2_Calibrate); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
572 } |
708
7e3bf2c0cd40
Menu cleanup rebreather specific settings:
Ideenmodellierer
parents:
703
diff
changeset
|
573 |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
574 if(haveSensorInfo != 0) |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
575 { |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
576 setEvent(StMHARD3_Sensor_Info, (uint32_t)OnAction_Sensor_Info); |
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
577 } |
38 | 578 |
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
579 setEvent(StMHARD3_Sensor_Detect, (uint32_t)OnAction_Sensor_Detect); |
38 | 580 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); |
581 } | |
582 | |
583 | |
584 uint8_t OnAction_Sensor1(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
585 { | |
586 if(settingsGetPointer()->ppo2sensors_deactivated & 1) | |
587 { | |
588 settingsGetPointer()->ppo2sensors_deactivated &= 4+2; | |
589 tMenuEdit_set_on_off(editId, 1); | |
590 } | |
591 else | |
592 { | |
593 settingsGetPointer()->ppo2sensors_deactivated |= 1; | |
594 tMenuEdit_set_on_off(editId, 0); | |
595 } | |
596 | |
597 return UPDATE_DIVESETTINGS; | |
598 } | |
599 | |
600 | |
601 uint8_t OnAction_Sensor2(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
602 { | |
603 if(settingsGetPointer()->ppo2sensors_deactivated & 2) | |
604 { | |
605 settingsGetPointer()->ppo2sensors_deactivated &= 4+1; | |
606 tMenuEdit_set_on_off(editId, 1); | |
607 } | |
608 else | |
609 { | |
610 settingsGetPointer()->ppo2sensors_deactivated |= 2; | |
611 tMenuEdit_set_on_off(editId, 0); | |
612 } | |
613 | |
614 return UPDATE_DIVESETTINGS; | |
615 } | |
616 | |
617 | |
618 uint8_t OnAction_Sensor3(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
619 { | |
620 if(settingsGetPointer()->ppo2sensors_deactivated & 4) | |
621 { | |
622 settingsGetPointer()->ppo2sensors_deactivated &= 2+1; | |
623 tMenuEdit_set_on_off(editId, 1); | |
624 } | |
625 else | |
626 { | |
627 settingsGetPointer()->ppo2sensors_deactivated |= 4; | |
628 tMenuEdit_set_on_off(editId, 0); | |
629 } | |
630 | |
631 return UPDATE_DIVESETTINGS; | |
632 } | |
633 | |
634 | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
635 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
|
636 { |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
637 uint8_t loop; |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
638 const SDiveState *pStateReal = stateRealGetPointer(); |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
639 SSettings* pSettings = settingsGetPointer(); |
584 | 640 uint8_t retVal = UNSPECIFIC_RETURN; |
641 float compensatedRef; | |
38 | 642 |
584 | 643 if(action == ACTION_BUTTON_ENTER_FINAL) |
644 { | |
645 if(O2_calib_gas == 21) | |
646 { | |
647 compensatedRef = O2_CALIB_FRACTION_AIR * pStateReal->lifeData.pressure_ambient_bar / 1.0; | |
648 } | |
649 else | |
650 { | |
605 | 651 compensatedRef = O2_CALIB_FRACTION_O2 * pStateReal->lifeData.pressure_ambient_bar / 1.0; |
584 | 652 } |
653 for(loop=0;loop<3;loop++) | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
654 { |
584 | 655 if((pSettings->ppo2sensors_deactivated & (0x1 << loop)) == 0) |
656 { | |
657 if(pStateReal->lifeData.sensorVoltage_mV[loop] > 0.0001) /* sensor connected ?*/ | |
658 { | |
724
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
659 #ifdef ENABLE_EXTERNAL_PRESSURE |
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
660 if(loop == 2) |
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
661 { |
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
662 compensatedRef = pStateReal->lifeData.pressure_ambient_bar; |
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
663 } |
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
664 #endif |
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
665 |
584 | 666 pSettings->ppo2sensors_calibCoeff[loop] = compensatedRef / pStateReal->lifeData.sensorVoltage_mV[loop]; |
667 } | |
668 else | |
669 { | |
670 pSettings->ppo2sensors_calibCoeff[loop] = 0.0; | |
671 settingsGetPointer()->ppo2sensors_deactivated |= 0x1 << loop; | |
672 } | |
673 } | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
674 } |
584 | 675 tMenuEdit_newInput(editId, O2_calib_gas, 0, 0, 0); |
676 retVal = UPDATE_DIVESETTINGS; | |
677 } | |
678 if(action == ACTION_BUTTON_NEXT) | |
679 { | |
680 if(O2_calib_gas == 21) | |
681 { | |
673
d7c5d592076b
Show 98% in case of Oxygen as the calibrating gas
heinrichsweikamp
parents:
605
diff
changeset
|
682 O2_calib_gas = 98; |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
683 } |
584 | 684 else |
685 { | |
686 O2_calib_gas = 21; | |
687 } | |
688 } | |
689 retVal = O2_calib_gas; | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
690 |
584 | 691 if(action == ACTION_BUTTON_BACK) |
692 { | |
693 exitMenuEditField(); | |
694 } | |
695 | |
696 return retVal; | |
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
697 } |
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
698 |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
699 uint8_t OnAction_Sensor_Info(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
700 { |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
701 return EXIT_TO_INFO_SENSOR; |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
702 } |
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
703 |
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
704 uint8_t OnAction_Sensor_Detect(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
705 { |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
706 DataEX_setExtInterface_Cmd(EXT_INTERFACE_AUTODETECT); |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
707 return UNSPECIFIC_RETURN; |
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
708 } |
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
709 |
38 | 710 void openEdit_Brightness(void) |
711 { | |
712 uint8_t actualBrightness; | |
713 SSettings *pSettings = settingsGetPointer(); | |
714 | |
715 actualBrightness = pSettings->brightness; | |
716 actualBrightness++; | |
717 if(actualBrightness > 4) | |
718 actualBrightness = 0; | |
719 pSettings->brightness = actualBrightness; | |
720 exitEditWithUpdate(); | |
721 } | |
722 | |
723 | |
724 void buttonBalanceText_helper(uint8_t idOfButton, char *textOutput) | |
725 { | |
726 uint8_t txtcount = 0; | |
727 | |
728 if(idOfButton < 3) | |
729 { | |
730 textOutput[txtcount++] = '@' + settingsGetPointer()->buttonBalance[idOfButton]; | |
731 textOutput[txtcount++] = ' '; | |
732 textOutput[txtcount++] = ' '; | |
733 textOutput[txtcount++] = '('; | |
734 | |
735 switch(settingsGetPointer()->buttonBalance[idOfButton]) | |
736 { | |
737 case 1: | |
738 textOutput[txtcount++] = '-'; | |
739 textOutput[txtcount++] = '2'; | |
740 textOutput[txtcount++] = '0'; | |
741 break; | |
742 case 2: | |
743 textOutput[txtcount++] = '-'; | |
744 textOutput[txtcount++] = '1'; | |
745 textOutput[txtcount++] = '0'; | |
746 break; | |
747 case 3: | |
748 default: | |
749 textOutput[txtcount++] = '0'; | |
750 break; | |
751 case 4: | |
752 textOutput[txtcount++] = '+'; | |
753 textOutput[txtcount++] = '1'; | |
754 textOutput[txtcount++] = '0'; | |
755 break; | |
756 case 5: | |
757 textOutput[txtcount++] = '+'; | |
758 textOutput[txtcount++] = '2'; | |
759 textOutput[txtcount++] = '0'; | |
760 break; | |
761 } | |
762 textOutput[txtcount++] = ')'; | |
763 } | |
764 textOutput[txtcount++] = 0; | |
765 } | |
766 | |
767 /**# | |
768 ****************************************************************************** | |
769 * @brief BUTTONS | |
770 * @author heinrichs weikamp gmbh | |
771 * @version V 01 | |
772 * @date 15-Sept-2016 | |
773 ****************************************************************************** | |
774 * Button 0 is right, Button 1 is middle, Button 2 is left !!!! | |
775 * 2 1 0 (base value 3) | |
776 * Button 3 is used to store the base value, all others are balanced around this one! | |
777 * | |
778 */ | |
779 | |
780 void openEdit_ButtonSens(void) | |
781 { | |
782 char text[32]; | |
783 uint8_t sens; | |
784 const uint32_t eventListButtonBalance[3] = {StMHARD5_ButtonBalance1,StMHARD5_ButtonBalance2,StMHARD5_ButtonBalance3}; | |
785 | |
786 sens = (uint8_t)settingsGetPointer()->ButtonResponsiveness[3]; | |
787 write_field_3digit(StMHARD5_Button1, 360, 780, ME_Y_LINE1, &FontT48, "###", sens, 0, 0, 0); | |
788 | |
789 for(int i=2;i>=0;i--) | |
790 { | |
791 buttonBalanceText_helper(i,text); | |
792 write_field_button(eventListButtonBalance[i],360,500,ME_Y_LINE4-(i*ME_Y_LINE_STEP),&FontT48,text); | |
793 } | |
794 | |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
795 snprintf(text,32,"%c",TXT_ButtonLock); |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
796 write_field_on_off(StMHARD5_ButtonLock, 30, 95, ME_Y_LINE5, &FontT48, text, settingsGetPointer()->buttonLockActive); |
38 | 797 |
798 setEvent(StMHARD5_Button1, (uint32_t)OnAction_Button); | |
799 | |
800 for(int i=2;i>=0;i--) | |
801 { | |
802 setEvent(eventListButtonBalance[i], (uint32_t)OnAction_ButtonBalance); | |
803 } | |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
804 setEvent(StMHARD5_ButtonLock, (uint32_t)OnAction_ButtonLock); |
38 | 805 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); |
806 } | |
807 | |
808 | |
809 void refresh_ButtonValuesFromPIC(void) | |
810 { | |
811 uint8_t sens[3]; | |
812 char text[64]; | |
813 | |
814 text[0] = '\001'; | |
815 text[1] = TXT_2BYTE; | |
816 text[2] = TXT2BYTE_ButtonSensitivity; | |
817 text[3] = 0; | |
818 write_topline(text); | |
819 | |
820 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
821 | |
822 for(int i=0;i<3;i++) | |
823 { | |
824 text[0] = TXT_2BYTE; | |
825 text[1] = TXT2BYTE_ButtonLeft+i; | |
826 text[2] = 0; | |
827 write_label_var( 20, 300, ME_Y_LINE2+(i*ME_Y_LINE_STEP), &FontT48, text); | |
828 } | |
829 | |
830 for(int i=0;i<3;i++) | |
831 { | |
832 sens[i] = settingsHelperButtonSens_translate_hwOS_values_to_percentage(stateRealGetPointer()->lifeData.buttonPICdata[i]); | |
833 } | |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
834 snprintf(text,64,"\020\016\016%c%c \017 (%03u %03u %03u)",TXT_2BYTE,TXT2BYTE_LowerIsLess,sens[2],sens[1],sens[0]); |
38 | 835 write_label_var( 20, 340, ME_Y_LINE6, &FontT42, text); |
836 | |
837 tMenuEdit_refresh_field(StMHARD5_Button1); | |
838 tMenuEdit_refresh_field(StMHARD5_ButtonBalance1); | |
839 tMenuEdit_refresh_field(StMHARD5_ButtonBalance2); | |
840 tMenuEdit_refresh_field(StMHARD5_ButtonBalance3); | |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
841 tMenuEdit_refresh_field(StMHARD5_ButtonLock); |
38 | 842 } |
843 | |
844 | |
845 uint8_t OnAction_Button(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
846 { | |
847 uint8_t digitContentNew, remainder; | |
848 uint32_t newSensitivityGlobal; | |
849 | |
850 if(action == ACTION_BUTTON_NEXT) | |
851 { | |
852 digitContentNew = digitContent - '0'; | |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
853 if(digitContentNew >= MAX_BUTTONRESPONSIVENESS_GUI) |
38 | 854 { |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
855 digitContentNew = MIN_BUTTONRESPONSIVENESS_GUI; |
38 | 856 } |
857 else | |
858 { | |
859 remainder = digitContentNew%5; | |
860 digitContentNew += 5 - remainder; | |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
861 if(digitContentNew >= MAX_BUTTONRESPONSIVENESS_GUI) |
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
862 digitContentNew = MAX_BUTTONRESPONSIVENESS_GUI; |
38 | 863 } |
864 return '0' + digitContentNew; | |
865 } | |
866 | |
867 if(action == ACTION_BUTTON_BACK) | |
868 { | |
869 digitContentNew = digitContent - '0'; | |
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
870 if(digitContentNew <= MIN_BUTTONRESPONSIVENESS_GUI) |
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
871 digitContentNew = MAX_BUTTONRESPONSIVENESS_GUI; |
38 | 872 else |
873 { | |
874 remainder = digitContentNew%5; | |
875 if(remainder) | |
876 digitContentNew -= remainder; | |
877 else | |
878 digitContentNew -= 5; | |
879 } | |
880 return '0' + digitContentNew; | |
881 } | |
882 | |
883 if(action == ACTION_BUTTON_ENTER_FINAL) | |
884 { | |
885 evaluateNewString(editId, &newSensitivityGlobal, 0, 0, 0); | |
886 settingsHelperButtonSens_keepPercentageValues(newSensitivityGlobal, settingsGetPointer()->ButtonResponsiveness); | |
887 setButtonResponsiveness(settingsGetPointer()->ButtonResponsiveness); | |
888 return UNSPECIFIC_RETURN; | |
889 } | |
890 return digitContent; | |
891 } | |
892 | |
893 | |
894 uint8_t OnAction_ButtonBalance(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
895 { | |
896 int8_t idBalance = -1; | |
897 uint8_t *ptrSetting; | |
898 char text[32]; | |
899 | |
900 const uint32_t eventListButtonBalance[3] = {StMHARD5_ButtonBalance1,StMHARD5_ButtonBalance2,StMHARD5_ButtonBalance3}; | |
901 | |
902 idBalance = -1; | |
903 for(int i=0;i<3;i++) | |
904 { | |
905 if(editId == eventListButtonBalance[i]) | |
906 { | |
907 idBalance = i; | |
908 break; | |
909 } | |
910 } | |
911 | |
912 if((idBalance >= 0) && (idBalance < 3)) | |
913 { | |
914 ptrSetting = &settingsGetPointer()->buttonBalance[idBalance]; | |
915 | |
916 *ptrSetting += 1; | |
917 | |
918 if(*ptrSetting > 5) | |
919 *ptrSetting = 2; | |
920 | |
921 buttonBalanceText_helper(idBalance,text); | |
922 tMenuEdit_newButtonText(eventListButtonBalance[idBalance],text); | |
923 } | |
924 | |
925 return UNSPECIFIC_RETURN; | |
926 } | |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
927 |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
928 uint8_t OnAction_ButtonLock(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
929 { |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
930 SSettings *pSettings = settingsGetPointer(); |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
931 |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
932 if(pSettings->buttonLockActive) |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
933 { |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
934 pSettings->buttonLockActive = 0; |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
935 tMenuEdit_set_on_off(editId, 0); |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
936 } |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
937 else |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
938 { |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
939 pSettings->buttonLockActive = 1; |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
940 tMenuEdit_set_on_off(editId, 1); |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
941 } |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
942 |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
943 return UNSPECIFIC_RETURN; |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
944 } |