annotate Discovery/Src/tInfoSensor.c @ 1078:082825daccb5 Icon_Integration tip

Added control views for HUD: The HUD implementation may now be activated by the compile switch ENABLE_HUD_SUPPORT. The HUD will become visible onces detected in the CvOpt overview menu. The first implementation is for testing only => The LEDs may be operated by a number field. Positiv values activate the red, negativ the green LEDs. Depending on the value blink sequences will be scheduled. At the moment no dive specific data is mapped to the LED operation (like e.g. warnings).
author Ideenmodellierer
date Mon, 02 Mar 2026 17:30:38 +0100
parents ef99fff2d2de
children
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"
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
37 #include "data_exchange_main.h"
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
38
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
39 #include <string.h>
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
40 #include <inttypes.h>
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
41
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
42 extern void openEdit_Sensors(uint8_t filter);
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;
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
47 static externalInterfaceSensorType sensorType = SENSOR_NONE;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
48 /* Exported functions --------------------------------------------------------*/
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
49 void openInfo_Sensor(uint8_t sensorId)
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
50 {
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
51 SSettings *pSettings = settingsGetPointer();
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
52 activeSensorId = sensorId;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
53 set_globalState(StISENINFO);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
54 switch (activeSensorId)
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
55 {
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
56 case 2: setBackMenu((uint32_t)openEdit_Sensors,SENSOR_END,3);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
57 break;
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
58 case 1: setBackMenu((uint32_t)openEdit_Sensors,SENSOR_END,2);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
59 break;
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
60 default:
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
61 case 0: setBackMenu((uint32_t)openEdit_Sensors,SENSOR_END,1);
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
62 break;
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;
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
65 switch(sensorType) /* type has to be set using the set function before info dialog is used */
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
66 {
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
67 case SENSOR_CO2:
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
68 case SENSOR_CO2M: sensorActive = pSettings->co2_sensor_active;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
69 break;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
70 case SENSOR_DIGO2: DataEX_setExtInterface_Cmd(EXT_INTERFACE_O2_INDICATE, activeSensorId);
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
71 /*no break*/
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
72 default: if(pSettings->ppo2sensors_deactivated & (1 << (activeSensorId)))
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
73 {
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
74 sensorActive = 0;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
75 }
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
76 break;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
77 }
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
78
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
79
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
80 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
81
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
82 void openInfo_SetSensorType(externalInterfaceSensorType Type)
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
83 {
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
84 sensorType = Type;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
85 }
717
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 uint64_t mod64(uint64_t a, uint64_t b)
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 div;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
90 div=(a/10);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
91 b=(10*div);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
92 return (a-b);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
93 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
94
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
95 void uint64ToString(uint64_t value, char* pbuf)
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 char tmpBuf[32];
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
98 uint8_t index = 31;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
99
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
100 tmpBuf[index--] = 0; /* zero termination */
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
101 while((index != 0) && (value != 0))
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
102 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
103 tmpBuf[index--] = '0' + (value % 10);// mod64(worker64,10);
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
104 value /= 10;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
105 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
106 strcpy(pbuf,&tmpBuf[index+1]);
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
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
109
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
110 static void refreshInfo_SensorO2(GFX_DrawCfgScreen s)
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
111 {
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
112 const SDiveState *pStateReal = stateRealGetPointer();
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
113 SSensorDataDiveO2* pDiveO2Data;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
114 char text[31];
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
115 uint8_t strIndex = 0;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
116 char *textPointer = text;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
117
724
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
118 float pressure = 0.0;
f285424f04d9 Development feature: external pressure sensor
Ideenmodellierer
parents: 717
diff changeset
119
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
120 pDiveO2Data = (SSensorDataDiveO2*)pStateReal->lifeData.extIf_sensor_data[activeSensorId];
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
121 strIndex = snprintf(text,32,"ID: ");
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
122 if(pDiveO2Data->sensorId != 0)
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
123 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
124 uint64ToString(pDiveO2Data->sensorId,&text[strIndex]);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
125 }
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
126 tInfo_write_content_simple( 30, 770, ME_Y_LINE1, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
127 snprintf(text,32,"%c: %02.1f",TXT_Temperature , (float)pDiveO2Data->temperature / 1000.0);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
128 tInfo_write_content_simple( 30, 770, ME_Y_LINE2, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
129
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
130 #ifdef ENABLE_EXTERNAL_PRESSURE
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
131 pressure = (float)(stateRealGetPointer()->lifeData.ppO2Sensor_bar[2]);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
132 #else
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
133 pressure = (float)pDiveO2Data->pressure / 1000.0;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
134 #endif
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
135 snprintf(text,32,"Druck: %02.1f (%02.1f)", (float)pDiveO2Data->pressure / 1000.0, pressure *1000.0);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
136
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
137 tInfo_write_content_simple( 30, 770, ME_Y_LINE3, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
138 snprintf(text,32,"Feuchtigkeit: %02.1f", (float)pDiveO2Data->humidity / 1000.0);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
139 tInfo_write_content_simple( 30, 770, ME_Y_LINE4, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
140 snprintf(text,32,"Status: 0x%lx", pDiveO2Data->status);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
141 tInfo_write_content_simple( 30, 770, ME_Y_LINE5, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
142 #ifdef ENABLE_EXTERNAL_PRESSURE
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
143 snprintf(text,32,"Norm ppO2: %02.3f (%02.1f)", (float)(stateRealGetPointer()->lifeData.ppO2Sensor_bar[0] / (pressure / 1000.0)),(float)(stateRealGetPointer()->lifeData.ppO2Sensor_bar[0]));
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
144 tInfo_write_content_simple( 30, 770, ME_Y_LINE6, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
145 #endif
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
146
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
147 if(sensorActive)
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
148 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
149 *textPointer++ = '\005';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
150 }
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
151 else
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
152 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
153 *textPointer++ = '\006';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
154 }
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
155 *textPointer++ = ' ';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
156 *textPointer++ = TXT_2BYTE;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
157 *textPointer++ = TXT2BYTE_Sensor;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
158 *textPointer++ = ' ';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
159 *textPointer++ = TXT_2BYTE;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
160 *textPointer++ = TXT2BYTE_O2IFDigital;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
161 *textPointer++ = '1' + activeSensorId;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
162
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
163 snprintf(textPointer, 20,": %01.2f, %01.1f mV", pStateReal->lifeData.ppO2Sensor_bar[activeSensorId], pStateReal->lifeData.sensorVoltage_mV[activeSensorId]);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
164
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
165 tInfo_write_content_simple( 30, 770, ME_Y_LINE6, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
166
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
167 tInfo_write_buttonTextline_simple(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,0);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
168 }
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
169
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
170 static void refreshInfo_SensorCo2(GFX_DrawCfgScreen s)
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
171 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
172 const SDiveState *pStateReal = stateRealGetPointer();
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
173 char text[31];
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
174 char *textPointer = text;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
175
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
176 snprintf(text,32,"CO2: %ld ppm",pStateReal->lifeData.CO2_data.CO2_ppm);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
177 tInfo_write_content_simple( 30, 770, ME_Y_LINE1, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
178
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
179
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
180 snprintf(text,32,"Signal: %d",pStateReal->lifeData.CO2_data.signalStrength);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
181 tInfo_write_content_simple( 30, 770, ME_Y_LINE2, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
182
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
183 if(sensorActive)
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
184 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
185 *textPointer++ = '\005';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
186 }
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
187 else
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
188 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
189 *textPointer++ = '\006';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
190 }
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
191 *textPointer++ = ' ';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
192 *textPointer++ = TXT_2BYTE;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
193 *textPointer++ = TXT2BYTE_Sensor;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
194 *textPointer++ = ' ';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
195 *textPointer++ = 'C';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
196 *textPointer++ = 'o';
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
197 *textPointer++ = '1' + activeSensorId;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
198
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
199 snprintf(textPointer, 20,": %ld ppm", pStateReal->lifeData.CO2_data.CO2_ppm);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
200
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
201 tInfo_write_content_simple( 30, 770, ME_Y_LINE6, &FontT48, text, CLUT_Font020);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
202
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
203 tInfo_write_buttonTextline_simple(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_O2Calib);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
204 }
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
205
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
206 static void refreshInfo_SensorHUD(GFX_DrawCfgScreen s)
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
207 {
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
208 const SDiveState *pStateReal = stateRealGetPointer();
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
209 char text[50];
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
210
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
211 snprintf(text,50,"%s",pStateReal->lifeData.extIf_sensor_data[activeSensorId]);
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
212 tInfo_write_content_simple( 30, 770, ME_Y_LINE1, &FontT48, text, CLUT_Font020);
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
213
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
214 tInfo_write_buttonTextline_simple(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,0);
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
215 }
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
216
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
217
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
218
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
219 // ===============================================================================
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
220 void refreshInfo_Sensor(GFX_DrawCfgScreen s)
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
221 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
222 char text[31];
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
223
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
224 text[0] = '\001';
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
225 text[1] = TXT_Sensor;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
226 text[2] = ' ';
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
227 text[3] = TXT_Information;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
228 text[4] = ' ';
786
19ab6f3ed52a Cleanup sensor data interface:
Ideenmodellierer
parents: 783
diff changeset
229 text[5] = '1' + activeSensorId;
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
230 text[6] = 0;
826
a370741a743b Bugfix Line order of info screen with flip screen active:
Ideenmodellierer
parents: 786
diff changeset
231 tInfo_write_content_simple( 30, 770, ME_Y_LINE_BASE, &FontT48, text, CLUT_MenuPageHardware);
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
232
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
233 switch(sensorType)
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
234 {
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
235 default:
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
236 case SENSOR_DIGO2M: refreshInfo_SensorO2(s);
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
237 break;
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
238 case SENSOR_CO2:
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
239 case SENSOR_CO2M: refreshInfo_SensorCo2(s);
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
240 break;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1075
diff changeset
241 case SENSOR_HUD: refreshInfo_SensorHUD(s);
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
242 break;
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
243 }
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
244 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
245
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
246 void sendActionToInfoSensor(uint8_t sendAction)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
247 {
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
248 SSettings *pSettings = settingsGetPointer();
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
249
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
250 switch(sendAction)
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
251 {
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
252 case ACTION_BUTTON_BACK:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
253 exitMenuEdit_to_BackMenu();
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
254 break;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
255
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
256 case ACTION_BUTTON_ENTER: switch(sensorType)
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
257 {
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
258 case SENSOR_CO2:
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
259 case SENSOR_CO2M: if(pSettings->co2_sensor_active)
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
260 {
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
261 pSettings->co2_sensor_active = 0;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
262 sensorActive = 0;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
263 }
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
264 else
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
265 {
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
266 pSettings->co2_sensor_active = 1;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
267 sensorActive = 1;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
268 }
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
269 break;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
270 default: if(pSettings->ppo2sensors_deactivated & (1 << (activeSensorId)))
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
271 {
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
272 pSettings->ppo2sensors_deactivated &= ~(1 << (activeSensorId));
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
273 sensorActive = 1;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
274 }
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
275 else
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
276 {
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
277 pSettings->ppo2sensors_deactivated |= (1 << (activeSensorId));
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
278 sensorActive = 0;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
279 }
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
280 break;
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
281 }
783
c31237d20491 Update digital O2 sensor information:
Ideenmodellierer
parents: 732
diff changeset
282 break;
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 957
diff changeset
283 case ACTION_BUTTON_NEXT: if((sensorType == SENSOR_CO2M) || (sensorType == SENSOR_CO2))
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
284 {
957
3420e3ba698d External sensor commands: Add sensor ID to command:
Ideenmodellierer
parents: 845
diff changeset
285 DataEX_setExtInterface_Cmd(EXT_INTERFACE_CO2_CALIB, activeSensorId);
827
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
286 }
ffb1036c27c2 Moved CO2 Menu from Xtra to Hardware:
Ideenmodellierer
parents: 826
diff changeset
287 break;
717
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
288 case ACTION_TIMEOUT:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
289 case ACTION_MODE_CHANGE:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
290 case ACTION_IDLE_TICK:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
291 case ACTION_IDLE_SECOND:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
292 default:
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
293 break;
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
294 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
295 }
88f73b05d45c Added new info page for extended sensor data:
Ideenmodellierer
parents:
diff changeset
296