Mercurial > public > ostc4
annotate Discovery/Src/tMenuEditHardware.c @ 1078:082825daccb5 Icon_Integration tip
Added control views for HUD:
The HUD implementation may now be activated by the compile switch ENABLE_HUD_SUPPORT. The HUD will become visible onces detected in the CvOpt overview menu. The first implementation is for testing only => The LEDs may be operated by a number field. Positiv values activate the red, negativ the green LEDs. Depending on the value blink sequences will be scheduled.
At the moment no dive specific data is mapped to the LED operation (like e.g. warnings).
| author | Ideenmodellierer |
|---|---|
| date | Mon, 02 Mar 2026 17:30:38 +0100 |
| parents | 734f84b72b30 |
| children |
| 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" | |
| 783 | 31 #include "tMenuEdit.h" |
| 38 | 32 |
| 33 #include "externCPU2bootloader.h" | |
| 34 #include "gfx_fonts.h" | |
| 35 #include "ostc.h" | |
| 36 #include "tCCR.h" | |
| 999 | 37 #include "tMenuEdit.h" |
| 38 #include "tHome.h" | |
| 39 #include "tInfo.h" | |
| 40 #include "tInfoLog.h" | |
| 41 #include "tInfoSensor.h" | |
|
394
717f335cc5c9
Added start of module configuration after eache modul power on
ideenmodellierer
parents:
314
diff
changeset
|
42 #include "tComm.h" |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
43 #include "data_exchange_main.h" |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
44 #include "tMenuCvOptionText.h" |
| 38 | 45 |
| 748 | 46 |
|
1005
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
47 //extern void tM_build_pages(void); |
| 999 | 48 |
| 38 | 49 /* Private function prototypes -----------------------------------------------*/ |
| 50 void openEdit_Bluetooth(void); | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
51 void openEdit_Sensors(uint8_t filter); |
| 38 | 52 void openEdit_Brightness(void); |
| 53 //void openEdit_Luftintegration(void); | |
| 54 void openEdit_ButtonSens(void); | |
|
1005
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
55 void openEdit_WarningBuz(void); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
56 |
| 38 | 57 |
| 58 /* Announced function prototypes -----------------------------------------------*/ | |
| 59 uint8_t OnAction_Sensor1 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 60 uint8_t OnAction_Sensor2 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 61 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
|
62 uint8_t OnAction_O2_Calibrate (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
63 uint8_t OnAction_CO2_Calibrate (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
|
64 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
|
65 uint8_t OnAction_Sensor_Detect (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
| 38 | 66 uint8_t OnAction_Button (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
| 67 uint8_t OnAction_ButtonBalance (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
|
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
68 uint8_t OnAction_ButtonLock (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
| 1078 | 69 uint8_t OnAction_LedSequence (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
| 70 uint8_t OnAction_LedBrightness (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
| 38 | 71 /* Exported functions --------------------------------------------------------*/ |
| 72 | |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
73 |
|
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
74 #define O2_CALIB_FRACTION_AIR (0.209F) |
| 605 | 75 #define O2_CALIB_FRACTION_O2 (0.98F) |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
76 |
| 584 | 77 static uint8_t O2_calib_gas = 21; |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
78 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
79 static externalInterfaceSensorType sensorFilter = SENSOR_NONE; /* used to have only a specific type of sensor in the sensor list view */ |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
80 static externalInterfaceSensorType localSensorMap[3]; /* reduce the complete external sensor map to the three entries which are displayed by the menu */ |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
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: | |
|
1005
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
89 default: openEdit_Bluetooth(); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
90 break; |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
91 case 2: openEdit_Sensors(SENSOR_NONE); |
|
1005
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
92 break; |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
93 case 3: openEdit_Brightness(); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
94 break; |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
95 case 4: resetMenuEdit(CLUT_MenuPageHardware); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
96 openEdit_ButtonSens(); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
97 break; |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
98 case 5: if(isNewDisplay()) |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
99 { |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
100 openEdit_WarningBuz(); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
101 } |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
102 break; |
| 38 | 103 } |
| 104 } | |
| 105 | |
| 106 /* Private functions ---------------------------------------------------------*/ | |
| 107 void openEdit_Bluetooth(void) | |
| 108 { | |
| 109 /* does not work like this resetEnterPressedToStateBeforeButtonAction(); */ | |
| 110 | |
| 111 SSettings *pSettings = settingsGetPointer(); | |
| 112 | |
| 113 if(pSettings->bluetoothActive == 0) | |
| 114 { | |
| 115 pSettings->bluetoothActive = 1; | |
| 116 MX_Bluetooth_PowerOn(); | |
|
394
717f335cc5c9
Added start of module configuration after eache modul power on
ideenmodellierer
parents:
314
diff
changeset
|
117 tComm_StartBlueModConfig(); |
| 38 | 118 } |
| 119 else | |
| 120 { | |
| 121 pSettings->bluetoothActive = 0; | |
| 122 MX_Bluetooth_PowerOff(); | |
| 123 } | |
| 124 exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only(); | |
| 125 } | |
| 126 | |
|
1005
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
127 void openEdit_WarningBuz(void) |
|
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
128 { |
|
1005
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
129 SSettings *pSettings = settingsGetPointer(); |
|
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
130 |
|
1005
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
131 if(pSettings->warningBuzzer == 0) |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
132 { |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
133 pSettings->warningBuzzer = 1; |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
134 requestBuzzerActivation(REQUEST_BUZZER_ONCE); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
135 } |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
136 else |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
137 { |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
138 pSettings->warningBuzzer = 0; |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
139 deactivateBuzzer(); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
140 } |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
141 exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only(); |
|
85f7e19c6688
Switch menu position of Buzzer and flipdisplay option:
Ideenmodellierer
parents:
1001
diff
changeset
|
142 } |
|
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
38
diff
changeset
|
143 |
| 38 | 144 |
| 145 void refresh_O2Sensors(void) | |
| 146 { | |
| 1078 | 147 static uint8_t HUD_cmdUpdateCnt = 20; |
| 148 | |
| 149 char strSensorId[20]; | |
| 150 char strSensorValue[30]; | |
| 38 | 151 uint16_t y_line; |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
152 uint8_t index = 0; |
| 1078 | 153 uint8_t uartSensorCnt = 0; |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
154 |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
155 const SDiveState *pStateReal = stateRealGetPointer(); |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
156 SSettings *pSettings = settingsGetPointer(); |
| 38 | 157 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
158 if((memcmp(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, EXT_INTERFACE_SENSOR_CNT) != 0) && (sensorFilter == SENSOR_NONE)) |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
159 { |
| 797 | 160 memcpy(pSettings->ext_sensor_map, pStateReal->lifeData.extIf_sensor_map, EXT_INTERFACE_SENSOR_CNT); |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
161 pSettings->ppo2sensors_deactivated = 0x0; /* deactivation will be done by openEditO2Sensor if need */ |
| 827 | 162 pSettings->co2_sensor_active = 0; |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
163 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_OPTIC; |
| 827 | 164 for(index = 0; index < EXT_INTERFACE_SENSOR_CNT - 1; index++) |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
165 { |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
166 switch(pSettings->ext_sensor_map[index]) |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
167 { |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
168 case SENSOR_OPTIC: pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_OPTIC; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
169 break; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
170 case SENSOR_ANALOG: if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_DIGITAL) |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
171 { |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
172 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANADIG; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
173 } |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
174 if(pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG) |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
175 { |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
176 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANALOG; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
177 } |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
178 break; |
| 797 | 179 case SENSOR_DIGO2M: if(pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
180 { |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
181 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_ANADIG; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
182 } |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
183 if(pSettings->ppo2sensors_source != O2_SENSOR_SOURCE_ANADIG) |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
184 { |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
185 pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_DIGITAL; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
186 } |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
187 break; |
| 827 | 188 case SENSOR_CO2: |
| 189 case SENSOR_CO2M: pSettings->co2_sensor_active = 1; | |
| 190 break; | |
| 746 | 191 #ifdef ENABLE_SENTINEL_MODE |
|
842
c3dd461ca3f9
Migrated Sentinel protocol to new UART structure:
Ideenmodellierer
parents:
827
diff
changeset
|
192 case SENSOR_SENTINEL: |
|
c3dd461ca3f9
Migrated Sentinel protocol to new UART structure:
Ideenmodellierer
parents:
827
diff
changeset
|
193 case SENSOR_SENTINELM: pSettings->ppo2sensors_source = O2_SENSOR_SOURCE_SENTINEL; |
| 745 | 194 break; |
| 746 | 195 #endif |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
196 default: |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
197 break; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
198 } |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
199 } |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
200 if(pSettings->ext_sensor_map[0] != SENSOR_SEARCH) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
201 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
202 index = tMCvOptText_BuildDynamicContentList(); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
203 tM_setLinesForPage(StMOption, index); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
204 openEdit_Sensors(SENSOR_NONE); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
205 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
206 else |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
207 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
208 openEdit_Sensors(SENSOR_SEARCH); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
209 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
210 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
211 |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
212 } |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
213 |
| 783 | 214 strSensorId[0] = '\001'; |
| 215 strSensorId[1] = TXT_o2Sensors; | |
| 216 strSensorId[2] = 0; | |
| 217 write_topline(strSensorId); | |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
218 |
| 1078 | 219 memset(strSensorId,0,20); |
| 783 | 220 strSensorId[0] = TXT_2BYTE; |
| 221 strSensorId[1] = TXT2BYTE_Sensor; | |
| 222 strSensorId[2] = ' '; | |
| 223 strSensorId[3] = TXT_2BYTE; | |
| 224 strSensorId[4] = 'X'; | |
| 225 strSensorId[5] = '1'; | |
| 226 strSensorId[6] = 0; | |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
227 |
| 783 | 228 for(index = 0; index < 3; index++) |
| 229 { | |
| 799 | 230 strSensorId[3] = TXT_2BYTE; |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
231 strSensorId[4] = 'X'; |
| 783 | 232 strSensorId[5] = '1' + index; |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
233 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
234 switch(localSensorMap[index]) |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
235 { |
| 748 | 236 case SENSOR_SEARCH: strSensorId[1] = TXT2BYTE_SensorDetect; |
| 237 strSensorId[2] = 0; | |
| 238 strSensorId[4] = 0; | |
| 745 | 239 break; |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
240 case SENSOR_OPTIC: strSensorId[4] = TXT2BYTE_O2IFOptic; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
241 break; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
242 case SENSOR_ANALOG: strSensorId[4] = TXT2BYTE_O2IFAnalog; |
|
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
243 break; |
| 797 | 244 case SENSOR_DIGO2: |
| 245 case SENSOR_DIGO2M: strSensorId[4] = TXT2BYTE_O2IFDigital; | |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
246 break; |
| 799 | 247 case SENSOR_CO2: |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
248 case SENSOR_CO2M: strSensorId[3] = 'C'; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
249 strSensorId[4] = 'O'; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
250 strSensorId[5] = '2'; |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
251 break; |
|
842
c3dd461ca3f9
Migrated Sentinel protocol to new UART structure:
Ideenmodellierer
parents:
827
diff
changeset
|
252 case SENSOR_SENTINEL: |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
253 case SENSOR_SENTINELM: strSensorId[3] = 'S'; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
254 strSensorId[4] = 'e'; |
| 745 | 255 break; |
| 920 | 256 case SENSOR_GNSS: |
| 257 case SENSOR_GNSSM: strSensorId[3] = 'G'; | |
| 258 strSensorId[4] = 'N'; | |
| 259 break; | |
| 1078 | 260 case SENSOR_HUD: strSensorId[3] = 'H'; |
| 261 strSensorId[4] = 'U'; | |
| 262 strSensorId[5] = 'D'; | |
| 263 break; | |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
264 default: |
| 748 | 265 strSensorId[5] = 0; |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
266 break; |
| 783 | 267 } |
| 268 if(strSensorId[4] != 'X') | |
| 269 { | |
| 270 write_label_var( 96, 340, ME_Y_LINE1 + (index * ME_Y_LINE_STEP), &FontT48, strSensorId); | |
| 271 } | |
| 272 strSensorValue[0] = 0; | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
273 if((localSensorMap[index] >= SENSOR_OPTIC) && (localSensorMap[index] < SENSOR_TYPE_O2_END)) |
| 783 | 274 { |
| 275 snprintf(strSensorValue, 20,"%01.2f, %01.1f mV", pStateReal->lifeData.ppO2Sensor_bar[index], pStateReal->lifeData.sensorVoltage_mV[index]); | |
| 276 } | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
277 else if(localSensorMap[index] == SENSOR_CO2M) |
| 783 | 278 { |
| 279 snprintf(strSensorValue, 20,"%ld ppm", pStateReal->lifeData.CO2_data.CO2_ppm); | |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
280 } |
| 1078 | 281 else if(localSensorMap[index] == SENSOR_HUD) |
| 282 { | |
| 283 write_label_var( 30, 340, ME_Y_LINE2, &FontT48, "LED Sequence:"); | |
| 284 tMenuEdit_newInput(StMHARD3_O2_Sensor2, pStateReal->lifeData.HUD_led_sequence[0] - pStateReal->lifeData.HUD_led_sequence[1], | |
| 285 pStateReal->lifeData.HUD_led_sequence[2] - pStateReal->lifeData.HUD_led_sequence[3], | |
| 286 pStateReal->lifeData.HUD_led_sequence[4] - pStateReal->lifeData.HUD_led_sequence[5], | |
| 287 pStateReal->lifeData.HUD_led_sequence[6]); | |
| 288 snprintf(strSensorValue, 30,"LED Brightness: %d",pStateReal->lifeData.HUD_led_brightness); | |
| 289 write_label_var( 30, 340, ME_Y_LINE3, &FontT48, strSensorValue); | |
| 290 snprintf(strSensorValue, 20,"o o o \023o"); | |
| 291 } | |
| 783 | 292 y_line = ME_Y_LINE1 + (index * ME_Y_LINE_STEP); |
| 293 if(strSensorValue[0] != 0) | |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
294 { |
| 783 | 295 write_label_var( 480, 800, y_line, &FontT48, strSensorValue); |
| 296 } | |
| 297 } | |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
298 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
299 if(localSensorMap[0] == SENSOR_OPTIC) |
| 783 | 300 { |
| 301 strSensorId[0] = TXT_2BYTE; | |
| 302 strSensorId[1] = TXT2BYTE_HUDbattery; | |
| 303 strSensorId[2] = 0; | |
| 304 write_label_var( 30, 340, ME_Y_LINE4, &FontT48, strSensorId); | |
| 305 | |
| 306 snprintf(strSensorId, 20,"%01.3fV", get_HUD_battery_voltage_V()); | |
| 307 write_label_var( 480, 800, ME_Y_LINE4, &FontT48, strSensorId); | |
| 308 } | |
| 309 else | |
| 310 { | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
311 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
|
312 #ifdef ENABLE_SENTINEL_MODE |
| 746 | 313 || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL) |
| 314 #endif | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
315 ) && ((sensorFilter == SENSOR_NONE) || (sensorFilter == SENSOR_DIGO2))) |
| 783 | 316 { |
| 317 strSensorId[0] = TXT_2BYTE; | |
| 318 strSensorId[1] = TXT2BYTE_O2Calib; | |
| 319 strSensorId[2] = 0; | |
| 320 write_label_var( 30, 340, ME_Y_LINE4, &FontT48, strSensorId); | |
| 321 snprintf(strSensorId, 20,"%d%%", O2_calib_gas); | |
| 322 write_label_var( 480, 800, ME_Y_LINE4, &FontT48, strSensorId); | |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
323 } |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
324 else if(sensorFilter == SENSOR_CO2) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
325 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
326 strSensorId[0] = TXT_2BYTE; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
327 strSensorId[1] = TXT2BYTE_O2Calib; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
328 strSensorId[2] = 0; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
329 write_label_var( 30, 340, ME_Y_LINE4, &FontT48, strSensorId); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
330 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
331 |
| 783 | 332 } |
| 1078 | 333 if(sensorFilter == SENSOR_NONE) |
| 334 { | |
| 335 for(index = EXT_INTERFACE_MUX_OFFSET; index < EXT_INTERFACE_SENSOR_CNT; index++) | |
| 336 { | |
| 337 if(pSettings->ext_sensor_map[index] != SENSOR_NONE) | |
| 338 { | |
| 339 uartSensorCnt++; | |
| 340 } | |
| 341 } | |
| 342 if(uartSensorCnt != 0) | |
| 343 { | |
| 344 snprintf(strSensorId, 20,"%c: %d", TXT_o2Sensors, uartSensorCnt); | |
| 345 write_label_var( 30, 340, ME_Y_LINE5, &FontT48, strSensorId); | |
| 346 } | |
| 347 } | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
348 if((DataEX_external_ADC_Present()) && (sensorFilter == SENSOR_NONE)) |
| 783 | 349 { |
| 350 strSensorId[0] = TXT_2BYTE; | |
| 351 strSensorId[1] = TXT2BYTE_SensorDetect; | |
| 352 strSensorId[2] = 0; | |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
353 |
| 783 | 354 write_label_var( 30, 340, ME_Y_LINE6, &FontT48, strSensorId); |
| 355 } | |
|
734
190e5814b2f5
Removed interface selection from sensor menu:
Ideenmodellierer
parents:
730
diff
changeset
|
356 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
357 if((localSensorMap[0] >= SENSOR_OPTIC) && (localSensorMap[0] < SENSOR_MUX)) |
| 783 | 358 { |
| 359 tMenuEdit_refresh_field(StMHARD3_O2_Sensor1); | |
| 360 } | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
361 if((localSensorMap[1] >= SENSOR_OPTIC) && (localSensorMap[1] < SENSOR_MUX)) |
| 783 | 362 { |
| 363 tMenuEdit_refresh_field(StMHARD3_O2_Sensor2); | |
| 364 } | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
365 if((localSensorMap[2] >= SENSOR_OPTIC) && (localSensorMap[2] < SENSOR_MUX)) |
| 783 | 366 { |
| 367 tMenuEdit_refresh_field(StMHARD3_O2_Sensor3); | |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
368 } |
| 38 | 369 |
| 584 | 370 if(get_globalState() == StMHARD3_O2_Calibrate) |
| 371 { | |
| 372 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_O2Calib,TXT2BYTE_ButtonPlus); | |
| 373 } | |
| 374 else | |
| 375 { | |
| 376 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
| 377 } | |
| 1078 | 378 |
| 379 if(localSensorMap[0] == SENSOR_HUD) | |
| 380 { | |
| 381 HUD_cmdUpdateCnt--; | |
| 382 if(HUD_cmdUpdateCnt == 0) | |
| 383 { | |
| 384 HUD_cmdUpdateCnt = 20; | |
| 385 for(index = EXT_INTERFACE_MUX_OFFSET; index < EXT_INTERFACE_SENSOR_CNT; index++) | |
| 386 { | |
| 387 if(pSettings->ext_sensor_map[index] == SENSOR_HUD) | |
| 388 { | |
| 389 DataEX_setExtInterface_Cmd(EXT_INTERFACE_HUD_UPDATE, index); | |
| 390 break; | |
| 391 } | |
| 392 } | |
| 393 | |
| 394 } | |
| 395 } | |
| 38 | 396 } |
| 397 | |
| 398 | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
399 void openEdit_Sensors(uint8_t filter) |
| 38 | 400 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
401 static externalInterfaceSensorType lastFilter; |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
402 SSettings *pSettings = settingsGetPointer(); |
| 1078 | 403 const SDiveState* pRealState = stateRealGetPointer(); |
| 38 | 404 uint8_t sensorActive[3]; |
| 783 | 405 uint8_t index = 0; |
| 746 | 406 char text[3]; |
| 926 | 407 uint32_t firstSensorId = 0; |
| 38 | 408 |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
409 set_globalState(StMHARD3_Sensors); |
|
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
410 resetMenuEdit(CLUT_MenuPageHardware); |
|
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
411 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
412 if(filter == SENSOR_SEARCH) |
| 783 | 413 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
414 for(index = 0; index < 3; index++ ) |
| 926 | 415 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
416 localSensorMap[index] = SENSOR_SEARCH; |
| 930 | 417 } |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
418 } |
|
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
419 else |
|
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
420 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
421 if(filter == SENSOR_END) /* use last filter settings. e.g. for return from submenu */ |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
422 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
423 sensorFilter = lastFilter; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
424 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
425 else |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
426 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
427 sensorFilter = filter; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
428 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
429 lastFilter = sensorFilter; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
430 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
431 for(index = 0; index < 3; index++ ) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
432 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
433 localSensorMap[index] = SENSOR_NONE; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
434 if(pSettings->ppo2sensors_deactivated & (0x01 << index)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
435 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
436 sensorActive[index] = 0; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
437 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
438 else |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
439 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
440 sensorActive[index] = 1; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
441 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
442 } |
| 1078 | 443 if((sensorFilter == SENSOR_NONE) || (sensorFilter == SENSOR_DIGO2)) |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
444 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
445 if(((pSettings->ext_sensor_map[0] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[0] >= SENSOR_TYPE_O2_END))) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
446 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
447 pSettings->ppo2sensors_deactivated |= 1; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
448 if((pSettings->ext_sensor_map[0] == SENSOR_CO2M) && (sensorFilter == SENSOR_NONE)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
449 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
450 write_field_on_off(StMHARD3_O2_Sensor1, 30, 95, ME_Y_LINE1, &FontT48, "", pSettings->co2_sensor_active); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
451 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
452 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
453 else |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
454 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
455 write_field_on_off(StMHARD3_O2_Sensor1, 30, 95, ME_Y_LINE1, &FontT48, "", sensorActive[0]); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
456 if(firstSensorId == 0) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
457 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
458 firstSensorId = StMHARD3_O2_Sensor1; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
459 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
460 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
461 if(((pSettings->ext_sensor_map[1] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[1] >= SENSOR_TYPE_O2_END))) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
462 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
463 pSettings->ppo2sensors_deactivated |= 2; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
464 if((pSettings->ext_sensor_map[1] == SENSOR_CO2M) && (sensorFilter == SENSOR_NONE)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
465 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
466 write_field_on_off(StMHARD3_O2_Sensor2, 30, 95, ME_Y_LINE2, &FontT48, "", pSettings->co2_sensor_active); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
467 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
468 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
469 else |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
470 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
471 write_field_on_off(StMHARD3_O2_Sensor2, 30, 95, ME_Y_LINE2, &FontT48, "", sensorActive[1]); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
472 if(firstSensorId == 0) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
473 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
474 firstSensorId = StMHARD3_O2_Sensor2; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
475 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
476 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
477 if(((pSettings->ext_sensor_map[2] < SENSOR_OPTIC) || (pSettings->ext_sensor_map[2] >= SENSOR_TYPE_O2_END))) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
478 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
479 pSettings->ppo2sensors_deactivated |= 4; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
480 if((pSettings->ext_sensor_map[2] == SENSOR_CO2M) && (sensorFilter == SENSOR_NONE)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
481 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
482 write_field_on_off(StMHARD3_O2_Sensor3, 30, 95, ME_Y_LINE3, &FontT48, "", pSettings->co2_sensor_active); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
483 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
484 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
485 else |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
486 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
487 write_field_on_off(StMHARD3_O2_Sensor3, 30, 95, ME_Y_LINE3, &FontT48, "", sensorActive[2]); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
488 if(firstSensorId == 0) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
489 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
490 firstSensorId = StMHARD3_O2_Sensor3; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
491 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
492 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
493 } |
| 1078 | 494 else /* single, none O2 sensors */ |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
495 { |
| 1078 | 496 switch(sensorFilter) |
| 497 { | |
| 498 case SENSOR_CO2: write_field_on_off(StMHARD3_O2_Sensor1, 30, 95, ME_Y_LINE1, &FontT48, "", pSettings->co2_sensor_active); /* only one CO2 supporterd => show at first line */ | |
| 499 break; | |
| 500 default: write_field_button(StMHARD3_O2_Sensor1, 30, 95, ME_Y_LINE1, &FontT48, ""); | |
| 501 break; | |
| 502 } | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
503 firstSensorId = StMHARD3_O2_Sensor1; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
504 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
505 stateRealGetPointerWrite()->diveSettings.ppo2sensors_deactivated = pSettings->ppo2sensors_deactivated; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
506 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
507 if(settingsGetPointer()->ppo2sensors_deactivated & 1) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
508 sensorActive[0] = 0; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
509 if(settingsGetPointer()->ppo2sensors_deactivated & 2) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
510 sensorActive[1] = 0; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
511 if(settingsGetPointer()->ppo2sensors_deactivated & 4) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
512 sensorActive[2] = 0; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
513 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
514 if (sensorFilter == SENSOR_CO2) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
515 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
516 write_field_button(StMHARD3_O2_Calibrate, 30, 800, ME_Y_LINE4, &FontT48, ""); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
517 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
518 else |
| 926 | 519 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
520 if(((pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (pSettings->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
521 #ifdef ENABLE_SENTINEL_MODE |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
522 || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
523 #endif |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
524 ) && ((sensorFilter == SENSOR_NONE) || (sensorFilter == SENSOR_DIGO2))) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
525 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
526 write_label_fix( 30, 800, ME_Y_LINE4, &FontT48, TXT2BYTE_O2Calib); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
527 write_label_var( 400, 800, ME_Y_LINE4, &FontT48, "\016\016 %\017"); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
528 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
529 write_field_toggle(StMHARD3_O2_Calibrate, 400, 800, ME_Y_LINE4, &FontT48, "", 21, 98); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
530 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
531 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
532 if((DataEX_external_ADC_Present()) && (sensorFilter == SENSOR_NONE)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
533 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
534 text[0] = TXT_2BYTE; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
535 text[1] = TXT2BYTE_SensorDetect; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
536 text[2] = 0; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
537 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
538 write_label_var( 30, 340, ME_Y_LINE6, &FontT48, text); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
539 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
540 write_field_button(StMHARD3_Sensor_Detect, 30, 800, ME_Y_LINE6, &FontT48, text); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
541 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
542 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
543 switch(sensorFilter) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
544 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
545 case SENSOR_NONE: |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
546 default: if((pSettings->ext_sensor_map[0] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[0] < SENSOR_MUX)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
547 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
548 setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
549 localSensorMap[0] =pSettings->ext_sensor_map[0]; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
550 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
551 if((pSettings->ext_sensor_map[1] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[1] < SENSOR_MUX)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
552 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
553 setEvent(StMHARD3_O2_Sensor2, (uint32_t)OnAction_Sensor2); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
554 localSensorMap[1] =pSettings->ext_sensor_map[1]; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
555 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
556 if((pSettings->ext_sensor_map[2] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[2] < SENSOR_MUX)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
557 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
558 setEvent(StMHARD3_O2_Sensor3, (uint32_t)OnAction_Sensor3); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
559 localSensorMap[2] =pSettings->ext_sensor_map[2]; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
560 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
561 break; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
562 case SENSOR_DIGO2: if((pSettings->ext_sensor_map[0] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[0] < SENSOR_TYPE_O2_END)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
563 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
564 setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
565 localSensorMap[0] = pSettings->ext_sensor_map[0]; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
566 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
567 if((pSettings->ext_sensor_map[1] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[1] < SENSOR_TYPE_O2_END)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
568 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
569 setEvent(StMHARD3_O2_Sensor2, (uint32_t)OnAction_Sensor2); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
570 localSensorMap[1] = pSettings->ext_sensor_map[1]; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
571 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
572 if((pSettings->ext_sensor_map[2] >= SENSOR_OPTIC) && (pSettings->ext_sensor_map[2] < SENSOR_TYPE_O2_END)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
573 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
574 setEvent(StMHARD3_O2_Sensor3, (uint32_t)OnAction_Sensor3); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
575 localSensorMap[2] = pSettings->ext_sensor_map[2]; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
576 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
577 break; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
578 case SENSOR_CO2: setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
579 localSensorMap[0] = SENSOR_CO2M; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
580 break; |
| 1078 | 581 case SENSOR_HUD: write_label_var( 30, 340, ME_Y_LINE2, &FontT48, "LED Sequence:"); |
| 582 write_field_sdigit(StMHARD3_O2_Sensor2, 400, 800, ME_Y_LINE2, &FontT48, "### ### ### ###", | |
| 583 pRealState->lifeData.HUD_led_sequence[0] - pRealState->lifeData.HUD_led_sequence[1], | |
| 584 pRealState->lifeData.HUD_led_sequence[2] - pRealState->lifeData.HUD_led_sequence[3], | |
| 585 pRealState->lifeData.HUD_led_sequence[4] - pRealState->lifeData.HUD_led_sequence[5], | |
| 586 pRealState->lifeData.HUD_led_sequence[6]); | |
| 587 | |
| 588 write_field_button(StMHARD3_O2_Sensor3, 400, 800, ME_Y_LINE3, &FontT48, ""); | |
| 589 | |
| 590 setEvent(StMHARD3_O2_Sensor1, (uint32_t)OnAction_Sensor1); | |
| 591 setEvent(StMHARD3_O2_Sensor2, (uint32_t)OnAction_LedSequence); | |
| 592 setEvent(StMHARD3_O2_Sensor3, (uint32_t)OnAction_LedBrightness); | |
| 593 | |
| 594 localSensorMap[0] = SENSOR_HUD; | |
| 595 break; | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
596 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
597 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
598 if (sensorFilter == SENSOR_CO2) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
599 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
600 setEvent(StMHARD3_O2_Calibrate, (uint32_t)OnAction_CO2_Calibrate); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
601 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
602 else |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
603 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
604 if((((settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANALOG) || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_ANADIG)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
605 && ((sensorFilter == SENSOR_NONE) || (sensorFilter == SENSOR_DIGO2))) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
606 #ifdef ENABLE_SENTINEL_MODE |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
607 || (settingsGetPointer()->ppo2sensors_source == O2_SENSOR_SOURCE_SENTINEL) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
608 #endif |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
609 ) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
610 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
611 setEvent(StMHARD3_O2_Calibrate, (uint32_t)OnAction_O2_Calibrate); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
612 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
613 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
614 if((DataEX_external_ADC_Present()) && (sensorFilter == SENSOR_NONE)) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
615 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
616 setEvent(StMHARD3_Sensor_Detect, (uint32_t)OnAction_Sensor_Detect); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
617 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
618 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
619 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
620 switch(firstSensorId) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
621 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
622 case StMHARD3_O2_Sensor2: tMenuEdit_select(StMHARD3_O2_Sensor2); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
623 break; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
624 case StMHARD3_O2_Sensor3: tMenuEdit_select(StMHARD3_O2_Sensor3); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
625 break; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
626 default: break; |
| 926 | 627 } |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
628 } |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
629 } |
| 745 | 630 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
631 void openEdit_SensorsO2() |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
632 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
633 openEdit_Sensors(SENSOR_DIGO2); /* used for o2 sensors in general */ |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
634 } |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
635 |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
636 void openEdit_SensorsCO2() |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
637 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
638 openEdit_Sensors(SENSOR_CO2); |
| 38 | 639 } |
| 1078 | 640 void openEdit_SensorsHUD() |
| 641 { | |
| 642 openEdit_Sensors(SENSOR_HUD); | |
| 643 } | |
| 38 | 644 |
| 645 uint8_t OnAction_Sensor1(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 646 { | |
| 1078 | 647 if((localSensorMap[0] == SENSOR_DIGO2M) || (localSensorMap[0] == SENSOR_CO2M) || (localSensorMap[0] == SENSOR_CO2M) || (localSensorMap[0] == SENSOR_HUD)) |
| 783 | 648 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
649 openInfo_SetSensorType(localSensorMap[0]); |
| 783 | 650 return EXIT_TO_INFO_SENSOR; |
| 651 } | |
| 652 else | |
| 653 { | |
| 654 if(settingsGetPointer()->ppo2sensors_deactivated & 1) | |
| 655 { | |
| 656 settingsGetPointer()->ppo2sensors_deactivated &= 4+2; | |
| 657 tMenuEdit_set_on_off(editId, 1); | |
| 658 } | |
| 659 else | |
| 660 { | |
| 661 settingsGetPointer()->ppo2sensors_deactivated |= 1; | |
| 662 tMenuEdit_set_on_off(editId, 0); | |
| 663 } | |
| 664 } | |
| 38 | 665 |
| 666 return UPDATE_DIVESETTINGS; | |
| 667 } | |
| 668 | |
| 669 | |
| 670 uint8_t OnAction_Sensor2(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 671 { | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
672 if((localSensorMap[1] == SENSOR_DIGO2M) || (localSensorMap[1] == SENSOR_CO2M)) |
| 783 | 673 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
674 openInfo_SetSensorType(localSensorMap[1]); |
| 783 | 675 return EXIT_TO_INFO_SENSOR; |
| 676 } | |
| 677 else | |
| 678 { | |
| 679 if(settingsGetPointer()->ppo2sensors_deactivated & 2) | |
| 680 { | |
| 681 settingsGetPointer()->ppo2sensors_deactivated &= 4+1; | |
| 682 tMenuEdit_set_on_off(editId, 1); | |
| 683 } | |
| 684 else | |
| 685 { | |
| 686 settingsGetPointer()->ppo2sensors_deactivated |= 2; | |
| 687 tMenuEdit_set_on_off(editId, 0); | |
| 688 } | |
| 689 } | |
| 38 | 690 return UPDATE_DIVESETTINGS; |
| 691 } | |
| 692 | |
| 693 | |
| 694 uint8_t OnAction_Sensor3(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 695 { | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
696 if((localSensorMap[2] == SENSOR_DIGO2M) || (localSensorMap[2] == SENSOR_CO2M)) |
| 783 | 697 { |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
698 openInfo_SetSensorType(localSensorMap[2]); |
| 783 | 699 return EXIT_TO_INFO_SENSOR; |
| 700 } | |
| 701 else | |
| 702 { | |
| 38 | 703 |
| 783 | 704 if(settingsGetPointer()->ppo2sensors_deactivated & 4) |
| 705 { | |
| 706 settingsGetPointer()->ppo2sensors_deactivated &= 2+1; | |
| 707 tMenuEdit_set_on_off(editId, 1); | |
| 708 } | |
| 709 else | |
| 710 { | |
| 711 settingsGetPointer()->ppo2sensors_deactivated |= 4; | |
| 712 tMenuEdit_set_on_off(editId, 0); | |
| 713 } | |
| 714 } | |
| 38 | 715 return UPDATE_DIVESETTINGS; |
| 716 } | |
| 717 | |
| 718 | |
|
1073
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
719 uint8_t OnAction_CO2_Calibrate(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
720 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
721 SSettings* pSettings = settingsGetPointer(); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
722 uint8_t index = 0; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
723 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
724 for (index = EXT_INTERFACE_MUX_OFFSET; index < EXT_INTERFACE_SENSOR_CNT; index++) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
725 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
726 if(pSettings->ext_sensor_map[index] == SENSOR_CO2) break; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
727 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
728 |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
729 if(index != EXT_INTERFACE_SENSOR_CNT) |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
730 { |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
731 DataEX_setExtInterface_Cmd(EXT_INTERFACE_CO2_CALIB, index); |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
732 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
733 return UNSPECIFIC_RETURN; |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
734 } |
|
734f84b72b30
CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents:
1005
diff
changeset
|
735 |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
736 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
|
737 { |
|
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
738 uint8_t loop; |
|
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
739 const SDiveState *pStateReal = stateRealGetPointer(); |
|
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
740 SSettings* pSettings = settingsGetPointer(); |
| 584 | 741 uint8_t retVal = UNSPECIFIC_RETURN; |
| 742 float compensatedRef; | |
| 38 | 743 |
| 584 | 744 if(action == ACTION_BUTTON_ENTER_FINAL) |
| 745 { | |
| 746 if(O2_calib_gas == 21) | |
| 747 { | |
| 748 compensatedRef = O2_CALIB_FRACTION_AIR * pStateReal->lifeData.pressure_ambient_bar / 1.0; | |
| 749 } | |
| 750 else | |
| 751 { | |
| 605 | 752 compensatedRef = O2_CALIB_FRACTION_O2 * pStateReal->lifeData.pressure_ambient_bar / 1.0; |
| 584 | 753 } |
| 754 for(loop=0;loop<3;loop++) | |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
755 { |
| 584 | 756 if((pSettings->ppo2sensors_deactivated & (0x1 << loop)) == 0) |
| 757 { | |
| 758 if(pStateReal->lifeData.sensorVoltage_mV[loop] > 0.0001) /* sensor connected ?*/ | |
| 759 { | |
|
724
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
760 #ifdef ENABLE_EXTERNAL_PRESSURE |
|
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
761 if(loop == 2) |
|
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
762 { |
|
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
763 compensatedRef = pStateReal->lifeData.pressure_ambient_bar; |
|
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
764 } |
|
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
765 #endif |
|
f285424f04d9
Development feature: external pressure sensor
Ideenmodellierer
parents:
718
diff
changeset
|
766 |
| 584 | 767 pSettings->ppo2sensors_calibCoeff[loop] = compensatedRef / pStateReal->lifeData.sensorVoltage_mV[loop]; |
| 768 } | |
| 769 else | |
| 770 { | |
| 771 pSettings->ppo2sensors_calibCoeff[loop] = 0.0; | |
| 772 settingsGetPointer()->ppo2sensors_deactivated |= 0x1 << loop; | |
| 773 } | |
| 774 } | |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
775 } |
| 584 | 776 tMenuEdit_newInput(editId, O2_calib_gas, 0, 0, 0); |
| 777 retVal = UPDATE_DIVESETTINGS; | |
| 778 } | |
| 779 if(action == ACTION_BUTTON_NEXT) | |
| 780 { | |
| 781 if(O2_calib_gas == 21) | |
| 782 { | |
|
673
d7c5d592076b
Show 98% in case of Oxygen as the calibrating gas
heinrichsweikamp
parents:
605
diff
changeset
|
783 O2_calib_gas = 98; |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
784 } |
| 584 | 785 else |
| 786 { | |
| 787 O2_calib_gas = 21; | |
| 788 } | |
| 789 } | |
| 790 retVal = O2_calib_gas; | |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
791 |
| 584 | 792 if(action == ACTION_BUTTON_BACK) |
| 793 { | |
| 794 exitMenuEditField(); | |
| 795 } | |
| 796 | |
| 797 return retVal; | |
|
562
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
798 } |
|
ec76fa85009e
Added ADC sensor interface to O2 sensore menu structure:
Ideenmodellierer
parents:
539
diff
changeset
|
799 |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
800 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
|
801 { |
|
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
802 return EXIT_TO_INFO_SENSOR; |
|
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
803 } |
|
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
804 |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
805 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
|
806 { |
|
957
3420e3ba698d
External sensor commands: Add sensor ID to command:
Ideenmodellierer
parents:
949
diff
changeset
|
807 DataEX_setExtInterface_Cmd(EXT_INTERFACE_AUTODETECT, 0); |
|
730
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
808 return UNSPECIFIC_RETURN; |
|
9c65d226f4f6
Update sensor menu support for automatic sensor detection:
Ideenmodellierer
parents:
724
diff
changeset
|
809 } |
|
718
b9f699d2e3d0
Updated menu structure to support new sensor information page:
Ideenmodellierer
parents:
709
diff
changeset
|
810 |
| 38 | 811 void openEdit_Brightness(void) |
| 812 { | |
| 813 uint8_t actualBrightness; | |
| 814 SSettings *pSettings = settingsGetPointer(); | |
| 815 | |
| 816 actualBrightness = pSettings->brightness; | |
| 817 actualBrightness++; | |
| 818 if(actualBrightness > 4) | |
| 819 actualBrightness = 0; | |
| 820 pSettings->brightness = actualBrightness; | |
| 821 exitEditWithUpdate(); | |
| 822 } | |
| 823 | |
| 824 | |
| 825 void buttonBalanceText_helper(uint8_t idOfButton, char *textOutput) | |
| 826 { | |
| 827 uint8_t txtcount = 0; | |
| 828 | |
| 829 if(idOfButton < 3) | |
| 830 { | |
| 831 textOutput[txtcount++] = '@' + settingsGetPointer()->buttonBalance[idOfButton]; | |
| 832 textOutput[txtcount++] = ' '; | |
| 833 textOutput[txtcount++] = ' '; | |
| 834 textOutput[txtcount++] = '('; | |
| 835 | |
| 836 switch(settingsGetPointer()->buttonBalance[idOfButton]) | |
| 837 { | |
| 838 case 1: | |
| 839 textOutput[txtcount++] = '-'; | |
| 840 textOutput[txtcount++] = '2'; | |
| 841 textOutput[txtcount++] = '0'; | |
| 842 break; | |
| 843 case 2: | |
| 844 textOutput[txtcount++] = '-'; | |
| 845 textOutput[txtcount++] = '1'; | |
| 846 textOutput[txtcount++] = '0'; | |
| 847 break; | |
| 848 case 3: | |
| 849 default: | |
| 850 textOutput[txtcount++] = '0'; | |
| 851 break; | |
| 852 case 4: | |
| 853 textOutput[txtcount++] = '+'; | |
| 854 textOutput[txtcount++] = '1'; | |
| 855 textOutput[txtcount++] = '0'; | |
| 856 break; | |
| 857 case 5: | |
| 858 textOutput[txtcount++] = '+'; | |
| 859 textOutput[txtcount++] = '2'; | |
| 860 textOutput[txtcount++] = '0'; | |
| 861 break; | |
| 862 } | |
| 863 textOutput[txtcount++] = ')'; | |
| 864 } | |
| 865 textOutput[txtcount++] = 0; | |
| 866 } | |
| 867 | |
| 868 /**# | |
| 869 ****************************************************************************** | |
| 870 * @brief BUTTONS | |
| 871 * @author heinrichs weikamp gmbh | |
| 872 * @version V 01 | |
| 873 * @date 15-Sept-2016 | |
| 874 ****************************************************************************** | |
| 875 * Button 0 is right, Button 1 is middle, Button 2 is left !!!! | |
| 876 * 2 1 0 (base value 3) | |
| 877 * Button 3 is used to store the base value, all others are balanced around this one! | |
| 878 * | |
| 879 */ | |
| 880 | |
| 881 void openEdit_ButtonSens(void) | |
| 882 { | |
| 883 char text[32]; | |
| 884 uint8_t sens; | |
| 885 const uint32_t eventListButtonBalance[3] = {StMHARD5_ButtonBalance1,StMHARD5_ButtonBalance2,StMHARD5_ButtonBalance3}; | |
| 886 | |
| 887 sens = (uint8_t)settingsGetPointer()->ButtonResponsiveness[3]; | |
| 888 write_field_3digit(StMHARD5_Button1, 360, 780, ME_Y_LINE1, &FontT48, "###", sens, 0, 0, 0); | |
| 889 | |
| 890 for(int i=2;i>=0;i--) | |
| 891 { | |
| 892 buttonBalanceText_helper(i,text); | |
| 893 write_field_button(eventListButtonBalance[i],360,500,ME_Y_LINE4-(i*ME_Y_LINE_STEP),&FontT48,text); | |
| 894 } | |
| 895 | |
|
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
896 snprintf(text,32,"%c",TXT_ButtonLock); |
| 884 | 897 write_field_on_off(StMHARD5_ButtonLock, 30, 700, ME_Y_LINE5, &FontT48, text, settingsGetPointer()->buttonLockActive); |
| 38 | 898 |
| 899 setEvent(StMHARD5_Button1, (uint32_t)OnAction_Button); | |
| 900 | |
| 901 for(int i=2;i>=0;i--) | |
| 902 { | |
| 903 setEvent(eventListButtonBalance[i], (uint32_t)OnAction_ButtonBalance); | |
| 904 } | |
|
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
905 setEvent(StMHARD5_ButtonLock, (uint32_t)OnAction_ButtonLock); |
| 38 | 906 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); |
| 907 } | |
| 908 | |
| 909 | |
| 910 void refresh_ButtonValuesFromPIC(void) | |
| 911 { | |
| 912 uint8_t sens[3]; | |
| 913 char text[64]; | |
| 914 | |
| 915 text[0] = '\001'; | |
| 916 text[1] = TXT_2BYTE; | |
| 917 text[2] = TXT2BYTE_ButtonSensitivity; | |
| 918 text[3] = 0; | |
| 919 write_topline(text); | |
| 920 | |
| 921 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
| 922 | |
| 923 for(int i=0;i<3;i++) | |
| 924 { | |
| 925 text[0] = TXT_2BYTE; | |
| 926 text[1] = TXT2BYTE_ButtonLeft+i; | |
| 927 text[2] = 0; | |
| 928 write_label_var( 20, 300, ME_Y_LINE2+(i*ME_Y_LINE_STEP), &FontT48, text); | |
| 929 } | |
| 930 | |
| 931 for(int i=0;i<3;i++) | |
| 932 { | |
| 933 sens[i] = settingsHelperButtonSens_translate_hwOS_values_to_percentage(stateRealGetPointer()->lifeData.buttonPICdata[i]); | |
| 934 } | |
|
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
935 snprintf(text,64,"\020\016\016%c%c \017 (%03u %03u %03u)",TXT_2BYTE,TXT2BYTE_LowerIsLess,sens[2],sens[1],sens[0]); |
| 884 | 936 write_label_var( 20, 700, ME_Y_LINE6, &FontT42, text); |
| 38 | 937 |
| 938 tMenuEdit_refresh_field(StMHARD5_Button1); | |
| 939 tMenuEdit_refresh_field(StMHARD5_ButtonBalance1); | |
| 940 tMenuEdit_refresh_field(StMHARD5_ButtonBalance2); | |
| 941 tMenuEdit_refresh_field(StMHARD5_ButtonBalance3); | |
|
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
942 tMenuEdit_refresh_field(StMHARD5_ButtonLock); |
| 38 | 943 } |
| 944 | |
| 945 | |
| 946 uint8_t OnAction_Button(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 947 { | |
| 948 uint8_t digitContentNew, remainder; | |
| 949 uint32_t newSensitivityGlobal; | |
| 950 | |
| 951 if(action == ACTION_BUTTON_NEXT) | |
| 952 { | |
| 953 digitContentNew = digitContent - '0'; | |
|
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
954 if(digitContentNew >= MAX_BUTTONRESPONSIVENESS_GUI) |
| 38 | 955 { |
|
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
956 digitContentNew = MIN_BUTTONRESPONSIVENESS_GUI; |
| 38 | 957 } |
| 958 else | |
| 959 { | |
| 960 remainder = digitContentNew%5; | |
| 961 digitContentNew += 5 - remainder; | |
|
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
962 if(digitContentNew >= MAX_BUTTONRESPONSIVENESS_GUI) |
|
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
963 digitContentNew = MAX_BUTTONRESPONSIVENESS_GUI; |
| 38 | 964 } |
| 965 return '0' + digitContentNew; | |
| 966 } | |
| 967 | |
| 968 if(action == ACTION_BUTTON_BACK) | |
| 969 { | |
| 970 digitContentNew = digitContent - '0'; | |
|
92
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
971 if(digitContentNew <= MIN_BUTTONRESPONSIVENESS_GUI) |
|
be35821a4974
Stable to test. button sensitiveness fix. + global_constants.
Dmitry Romanov <kitt@bk.ru>
parents:
38
diff
changeset
|
972 digitContentNew = MAX_BUTTONRESPONSIVENESS_GUI; |
| 38 | 973 else |
| 974 { | |
| 975 remainder = digitContentNew%5; | |
| 976 if(remainder) | |
| 977 digitContentNew -= remainder; | |
| 978 else | |
| 979 digitContentNew -= 5; | |
| 980 } | |
| 981 return '0' + digitContentNew; | |
| 982 } | |
| 983 | |
| 984 if(action == ACTION_BUTTON_ENTER_FINAL) | |
| 985 { | |
| 986 evaluateNewString(editId, &newSensitivityGlobal, 0, 0, 0); | |
| 987 settingsHelperButtonSens_keepPercentageValues(newSensitivityGlobal, settingsGetPointer()->ButtonResponsiveness); | |
| 988 setButtonResponsiveness(settingsGetPointer()->ButtonResponsiveness); | |
| 989 return UNSPECIFIC_RETURN; | |
| 990 } | |
| 991 return digitContent; | |
| 992 } | |
| 993 | |
| 994 | |
| 995 uint8_t OnAction_ButtonBalance(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 996 { | |
| 997 int8_t idBalance = -1; | |
| 998 uint8_t *ptrSetting; | |
| 999 char text[32]; | |
| 1000 | |
| 1001 const uint32_t eventListButtonBalance[3] = {StMHARD5_ButtonBalance1,StMHARD5_ButtonBalance2,StMHARD5_ButtonBalance3}; | |
| 1002 | |
| 1003 idBalance = -1; | |
| 1004 for(int i=0;i<3;i++) | |
| 1005 { | |
| 1006 if(editId == eventListButtonBalance[i]) | |
| 1007 { | |
| 1008 idBalance = i; | |
| 1009 break; | |
| 1010 } | |
| 1011 } | |
| 1012 | |
| 1013 if((idBalance >= 0) && (idBalance < 3)) | |
| 1014 { | |
| 1015 ptrSetting = &settingsGetPointer()->buttonBalance[idBalance]; | |
| 1016 | |
| 1017 *ptrSetting += 1; | |
| 1018 | |
| 1019 if(*ptrSetting > 5) | |
| 1020 *ptrSetting = 2; | |
| 1021 | |
| 1022 buttonBalanceText_helper(idBalance,text); | |
| 1023 tMenuEdit_newButtonText(eventListButtonBalance[idBalance],text); | |
| 1024 } | |
| 1025 | |
| 1026 return UNSPECIFIC_RETURN; | |
| 1027 } | |
|
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1028 |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1029 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
|
1030 { |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1031 SSettings *pSettings = settingsGetPointer(); |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1032 |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1033 if(pSettings->buttonLockActive) |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1034 { |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1035 pSettings->buttonLockActive = 0; |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1036 tMenuEdit_set_on_off(editId, 0); |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1037 } |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1038 else |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1039 { |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1040 pSettings->buttonLockActive = 1; |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1041 tMenuEdit_set_on_off(editId, 1); |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1042 } |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1043 |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1044 return UNSPECIFIC_RETURN; |
|
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
734
diff
changeset
|
1045 } |
| 1078 | 1046 |
| 1047 | |
| 1048 uint8_t OnAction_LedBrightness(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 1049 { | |
| 1050 SDiveState * pStateReal = stateRealGetPointerWrite(); | |
| 1051 | |
| 1052 if(pStateReal->lifeData.HUD_led_brightness == 0) | |
| 1053 { | |
| 1054 pStateReal->lifeData.HUD_led_brightness = 0xFF; | |
| 1055 } | |
| 1056 else | |
| 1057 { | |
| 1058 pStateReal->lifeData.HUD_led_brightness = 0; | |
| 1059 } | |
| 1060 | |
| 1061 return UNSPECIFIC_RETURN; | |
| 1062 } | |
| 1063 | |
| 1064 uint8_t OnAction_LedSequence(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
| 1065 { | |
| 1066 SDiveState * pStateReal = stateRealGetPointerWrite(); | |
| 1067 int32_t ledSeq[4]; | |
| 1068 uint8_t digitContentNew; | |
| 1069 uint8_t index = 0; | |
| 1070 | |
| 1071 | |
| 1072 switch (action) { | |
| 1073 case ACTION_BUTTON_ENTER: | |
| 1074 | |
| 1075 return digitContent; | |
| 1076 case ACTION_BUTTON_ENTER_FINAL: | |
| 1077 { | |
| 1078 evaluateNewString(editId, (uint32_t*) &ledSeq[0], (uint32_t*)&ledSeq[1], (uint32_t*)&ledSeq[2], (uint32_t*)&ledSeq[3]); | |
| 1079 | |
| 1080 for(index = 0; index < 3; index++) | |
| 1081 { | |
| 1082 if (ledSeq[index] > 16) | |
| 1083 { | |
| 1084 ledSeq[index] = 16; | |
| 1085 } else if (ledSeq[index] < -16) | |
| 1086 { | |
| 1087 ledSeq[index] = -16; | |
| 1088 } | |
| 1089 pStateReal->lifeData.HUD_led_sequence[(index*2)] = 0; /* every value handles 2 LEDs depending on +/- sign */ | |
| 1090 pStateReal->lifeData.HUD_led_sequence[(index*2)+1] = 0; | |
| 1091 if(ledSeq[index] > 0) | |
| 1092 { | |
| 1093 pStateReal->lifeData.HUD_led_sequence[(index*2)] = ledSeq[index]; | |
| 1094 } | |
| 1095 else | |
| 1096 { | |
| 1097 pStateReal->lifeData.HUD_led_sequence[(index*2 + 1)] = ledSeq[index] * -1; | |
| 1098 } | |
| 1099 } | |
| 1100 pStateReal->lifeData.HUD_led_sequence[6] = ledSeq[3]; | |
| 1101 tMenuEdit_newInput(editId, ledSeq[0], ledSeq[1], ledSeq[2], ledSeq[3]); | |
| 1102 } | |
| 1103 | |
| 1104 break; | |
| 1105 case ACTION_BUTTON_NEXT: | |
| 1106 if ((blockNumber < 3) && (digitNumber == 0)) | |
| 1107 { | |
| 1108 digitContentNew = togglePlusMinus(digitContent); | |
| 1109 } else if (digitNumber == 1) | |
| 1110 { | |
| 1111 digitContentNew = digitContent + 1; | |
| 1112 if (digitContentNew > '1') { | |
| 1113 digitContentNew = '0'; | |
| 1114 } | |
| 1115 } else | |
| 1116 { | |
| 1117 digitContentNew = digitContent + 1; | |
| 1118 if (digitContentNew > '9') { | |
| 1119 digitContentNew = '0'; | |
| 1120 } | |
| 1121 } | |
| 1122 | |
| 1123 return digitContentNew; | |
| 1124 case ACTION_BUTTON_BACK: | |
| 1125 if ((blockNumber < 3) && (digitNumber == 0)) | |
| 1126 { | |
| 1127 digitContentNew = togglePlusMinus(digitContent); | |
| 1128 } else if (digitNumber == 1) | |
| 1129 { | |
| 1130 digitContentNew = digitContent - 1; | |
| 1131 if (digitContentNew < '0') { | |
| 1132 digitContentNew = '1'; | |
| 1133 } | |
| 1134 }else | |
| 1135 { | |
| 1136 digitContentNew = digitContent - 1; | |
| 1137 if (digitContentNew < '0') { | |
| 1138 digitContentNew = '9'; | |
| 1139 } | |
| 1140 } | |
| 1141 return digitContentNew; | |
| 1142 } | |
| 1143 return UNSPECIFIC_RETURN; | |
| 1144 } | |
| 1145 |
