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