annotate Discovery/Src/tInfoSensor.c @ 809:9602a7338f28

DevBugfix CO2 sensor in streaming mode: In standalone mode (no multiplexer) the CO2 sensor is working in streaming mode => it could happen that the OSTC received data before the scaling factor was requested. As result the CO2 values were calculated with a zero value. This problem has been fixed. In addition some code cleanup has been done. Unifying usage of changeBaudrate function instead of old baud selection based on protocol request of Discovery firmware.
author Ideenmodellierer
date Sun, 27 Aug 2023 20:51:13 +0200
parents 19ab6f3ed52a
children a370741a743b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
3 ///
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
4 /// \file Discovery/Src/tInfoCompass.c
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
5 /// \brief there is only compass_DX_f, compass_DY_f, compass_DZ_f output during this mode
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
6 /// \author heinrichs weikamp gmbh
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
7 /// \date 23-Feb-2015
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
8 ///
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
9 /// \details
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
10 ///
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
11 /// $Id$
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
12 ///////////////////////////////////////////////////////////////////////////////
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
14 ///
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
15 /// This program is free software: you can redistribute it and/or modify
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
16 /// it under the terms of the GNU General Public License as published by
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
17 /// the Free Software Foundation, either version 3 of the License, or
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
18 /// (at your option) any later version.
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
19 ///
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
20 /// This program is distributed in the hope that it will be useful,
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
23 /// GNU General Public License for more details.
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
24 ///
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
25 /// You should have received a copy of the GNU General Public License
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
27 //////////////////////////////////////////////////////////////////////////////
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
28
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
29 /* Includes ------------------------------------------------------------------*/
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
30
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
31 #include "gfx_engine.h"
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
32 #include "gfx_fonts.h"
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
33 #include "tHome.h"
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
34 #include "tInfo.h"
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
35 #include "tInfoSensor.h"
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
36 #include "tMenuEdit.h"
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
37
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
38 #include <string.h>
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
39 #include <inttypes.h>
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
40
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
41 extern void openEdit_O2Sensors(void);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
42 uint8_t OnAction_Sensor (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action);
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
43
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
44 /* Private variables ---------------------------------------------------------*/
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
45 static uint8_t activeSensorId = 0;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
46 static uint8_t sensorActive = 0;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
47 /* Exported functions --------------------------------------------------------*/
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
48 void openInfo_Sensor(uint8_t sensorId)
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
49 {
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
50 SSettings *pSettings = settingsGetPointer();
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
51 activeSensorId = sensorId;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
52 set_globalState(StISENINFO);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
53 switch (activeSensorId)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
54 {
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
55 case 2: setBackMenu((uint32_t)openEdit_O2Sensors,0,3);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
56 break;
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
57 case 1: setBackMenu((uint32_t)openEdit_O2Sensors,0,2);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
58 break;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
59 default:
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
60 case 0: setBackMenu((uint32_t)openEdit_O2Sensors,0,1);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
61 break;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
62 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
63
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
64 sensorActive = 1;
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
65 if(pSettings->ppo2sensors_deactivated & (1 << (activeSensorId)))
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
66 {
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
67 sensorActive = 0;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
68 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
69 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
70
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
71
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
72 uint8_t OnAction_Sensor(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
73 {
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
74 if(settingsGetPointer()->ppo2sensors_deactivated & (1 << (activeSensorId)))
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
75 {
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
76 settingsGetPointer()->ppo2sensors_deactivated &= ~(1 << (activeSensorId));
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
77 tMenuEdit_set_on_off(editId, 1);
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
78 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
79 else
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
80 {
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
81 settingsGetPointer()->ppo2sensors_deactivated |= (1 << (activeSensorId));
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
82 tMenuEdit_set_on_off(editId, 0);
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
83 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
84 return UPDATE_DIVESETTINGS;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
85 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
86
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
87
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
88
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
89 uint64_t mod64(uint64_t a, uint64_t b)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
90 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
91 uint64_t div;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
92 div=(a/10);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
93 b=(10*div);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
94 return (a-b);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
95 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
96
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
97 void uint64ToString(uint64_t value, char* pbuf)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
98 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
99 char tmpBuf[32];
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
100 uint8_t index = 31;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
101
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
102 tmpBuf[index--] = 0; /* zero termination */
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
103 while((index != 0) && (value != 0))
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
104 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
105 tmpBuf[index--] = '0' + (value % 10);// mod64(worker64,10);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
106 value /= 10;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
107 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
108 strcpy(pbuf,&tmpBuf[index+1]);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
109 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
110
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
111 void tInfo_write_buttonTextline_simple(uint8_t left2ByteCode, char middle2ByteCode, char right2ByteCode)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
112 {
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
113 char localtext[32];
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
114
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
115 if(left2ByteCode)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
116 {
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
117 localtext[0] = TXT_2BYTE;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
118 localtext[1] = left2ByteCode;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
119 localtext[2] = 0;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
120 tInfo_write_content_simple(0, 800, 480-24, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
121 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
122
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
123 if(middle2ByteCode)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
124 {
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
125 localtext[0] = '\001';
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
126 localtext[1] = TXT_2BYTE;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
127 localtext[2] = middle2ByteCode;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
128 localtext[3] = 0;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
129 tInfo_write_content_simple(0, 800, 480-24, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
130 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
131
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
132 if(right2ByteCode)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
133 {
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
134 localtext[0] = '\002';
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
135 localtext[1] = TXT_2BYTE;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
136 localtext[2] = right2ByteCode;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
137 localtext[3] = 0;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
138 tInfo_write_content_simple(0, 800, 480-24, &FontT24,localtext,CLUT_ButtonSurfaceScreen);
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
139 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
140 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
141
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
142 // ===============================================================================
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
143 void refreshInfo_Sensor(GFX_DrawCfgScreen s)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
144 {
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
145 const SDiveState *pStateReal = stateRealGetPointer();
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
146 SSensorDataDiveO2* pDiveO2Data;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
147 char text[31];
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
148 uint8_t strIndex = 0;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
149 char *textPointer = text;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
150
724
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
151 float pressure = 0.0;
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
152
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
153 text[0] = '\001';
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
154 text[1] = TXT_Sensor;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
155 text[2] = ' ';
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
156 text[3] = TXT_Information;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
157 text[4] = ' ';
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
158 text[5] = '1' + activeSensorId;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
159 text[6] = 0;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
160 tInfo_write_content_simple( 30, 340, ME_Y_LINE_BASE, &FontT48, text, CLUT_MenuPageHardware);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
161
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
162 pDiveO2Data = (SSensorDataDiveO2*)&stateRealGetPointer()->lifeData.extIf_sensor_data[activeSensorId];
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
163
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
164 strIndex = snprintf(text,32,"ID: ");
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
165 if(pDiveO2Data->sensorId != 0)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
166 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
167 uint64ToString(pDiveO2Data->sensorId,&text[strIndex]);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
168 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
169 tInfo_write_content_simple( 30, 340, ME_Y_LINE1, &FontT48, text, CLUT_Font020);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
170 snprintf(text,32,"%c: %02.1f",TXT_Temperature , (float)pDiveO2Data->temperature / 1000.0);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
171 tInfo_write_content_simple( 30, 340, ME_Y_LINE2, &FontT48, text, CLUT_Font020);
724
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
172
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
173 #ifdef ENABLE_EXTERNAL_PRESSURE
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
174 pressure = (float)(stateRealGetPointer()->lifeData.ppO2Sensor_bar[2]);
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
175 #else
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
176 pressure = (float)pDiveO2Data->pressure / 1000.0;
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
177 #endif
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
178 snprintf(text,32,"Druck: %02.1f (%02.1f)", (float)pDiveO2Data->pressure / 1000.0, pressure *1000.0);
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
179
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
180 tInfo_write_content_simple( 30, 340, ME_Y_LINE3, &FontT48, text, CLUT_Font020);
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
181 snprintf(text,32,"Feuchtigkeit: %02.1f", (float)pDiveO2Data->humidity / 1000.0);
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
182 tInfo_write_content_simple( 30, 340, ME_Y_LINE4, &FontT48, text, CLUT_Font020);
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
183 snprintf(text,32,"Status: 0x%lx", pDiveO2Data->status);
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
184 tInfo_write_content_simple( 30, 340, ME_Y_LINE5, &FontT48, text, CLUT_Font020);
732
e33d661d1743 Fix compiler switch:
Ideenmodellierer
parents: 724
diff changeset
185 #ifdef ENABLE_EXTERNAL_PRESSURE
724
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
186 snprintf(text,32,"Norm ppO2: %02.3f (%02.1f)", (float)(stateRealGetPointer()->lifeData.ppO2Sensor_bar[0] / (pressure / 1000.0)),(float)(stateRealGetPointer()->lifeData.ppO2Sensor_bar[0]));
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
187 tInfo_write_content_simple( 30, 340, ME_Y_LINE6, &FontT48, text, CLUT_Font020);
732
e33d661d1743 Fix compiler switch:
Ideenmodellierer
parents: 724
diff changeset
188 #endif
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
189
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
190 if(sensorActive)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
191 {
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
192 *textPointer++ = '\005';
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
193 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
194 else
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
195 {
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
196 *textPointer++ = '\006';
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
197 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
198 *textPointer++ = ' ';
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
199 *textPointer++ = TXT_2BYTE;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
200 *textPointer++ = TXT2BYTE_Sensor;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
201 *textPointer++ = ' ';
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
202 *textPointer++ = TXT_2BYTE;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
203 *textPointer++ = TXT2BYTE_O2IFDigital;
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
204 *textPointer++ = '1' + activeSensorId;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
205
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
206 snprintf(textPointer, 20,": %01.2f, %01.1f mV", pStateReal->lifeData.ppO2Sensor_bar[activeSensorId], pStateReal->lifeData.sensorVoltage_mV[activeSensorId]);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
207
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
208 tInfo_write_content_simple( 30, 340, ME_Y_LINE6, &FontT48, text, CLUT_Font020);
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
209
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
210 tInfo_write_buttonTextline_simple(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,0);
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
211 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
212
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
213 void sendActionToInfoSensor(uint8_t sendAction)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
214 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
215 switch(sendAction)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
216 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
217 case ACTION_BUTTON_BACK:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
218 exitMenuEdit_to_BackMenu();
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
219 break;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
220
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
221 case ACTION_BUTTON_ENTER: if(settingsGetPointer()->ppo2sensors_deactivated & (1 << (activeSensorId)))
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
222 {
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
223 settingsGetPointer()->ppo2sensors_deactivated &= ~(uint8_t)(1 << (activeSensorId));
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
224 sensorActive = 1;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
225 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
226 else
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
227 {
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
228 settingsGetPointer()->ppo2sensors_deactivated |= (uint8_t)(1 << (activeSensorId));
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
229 sensorActive = 0;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
230 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
231 break;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
232 case ACTION_BUTTON_NEXT:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
233 case ACTION_TIMEOUT:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
234 case ACTION_MODE_CHANGE:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
235 case ACTION_IDLE_TICK:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
236 case ACTION_IDLE_SECOND:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
237 default:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
238 break;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
239 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
240 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
241