annotate Discovery/Src/tMenuEditHardware.c @ 586:bb5ce239741f

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