annotate Discovery/Src/tMenuCvOptionText.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 c87753e73eb8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
3 ///
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
4 /// \file Discovery/Src/tMenuCvOptionText.c
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
5 /// \brief File providing functions for generation of text lines
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
6 /// \author heinrichs weikamp gmbh
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
7 /// \date 03-Feb-2026
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
8 ///
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
9 /// \details
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
10 ///
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
11 /// $Id$
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
12 ///////////////////////////////////////////////////////////////////////////////
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
13 /// \par Copyright (c) 2014-2025 Heinrichs Weikamp gmbh
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
14 ///
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
15 /// This program is free software: you can redistribute it and/or modify
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
16 /// it under the terms of the GNU General Public License as published by
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
17 /// the Free Software Foundation, either version 3 of the License, or
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
18 /// (at your option) any later version.
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
19 ///
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
20 /// This program is distributed in the hope that it will be useful,
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
23 /// GNU General Public License for more details.
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
24 ///
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
25 /// You should have received a copy of the GNU General Public License
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
27 //////////////////////////////////////////////////////////////////////////////
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
28
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
29 /* Includes ------------------------------------------------------------------*/
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
30 #include "tMenuCvOptionText.h"
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
31 #include "tMenuEditCvOption.h"
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
32 #include "tMenu.h"
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
33 #include "tHome.h" // for enum CUSTOMVIEWS and init_t7_compass()
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
34 #include "t3.h"
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
35 #include "t7.h"
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
36
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
37 /* Private function prototypes -----------------------------------------------*/
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
38
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
39 /* Exported functions --------------------------------------------------------*/
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
40
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
41
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
42 static refreshFunc_t refreshFctPointerTable[MAXLINES]; /* function pointer for refresh */
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
43 static uint8_t activeLines = 0; /* number of active lines */
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
44
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
45 refreshFunc_t* tMCvOptText_GetTable()
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
46 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
47 return refreshFctPointerTable;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
48 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
49 uint8_t tMCvOptText_GetTableItemCnt()
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
50 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
51 return activeLines;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
52 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
53
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
54 uint8_t tMCvOptText_refreshCompass(char* pText)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
55 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
56 uint8_t textPointer = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
57 pText[textPointer++] = TXT_2BYTE;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
58 pText[textPointer++] = TXT2BYTE_Compass;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
59 pText[textPointer++] = '\t';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
60
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
61 if(settingsGetPointer()->compassBearing != 0)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
62 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
63 textPointer += snprintf(&pText[textPointer], 20, "(%03u`)", settingsGetPointer()->compassBearing % 360);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
64 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
65 pText[textPointer] = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
66 return strlen(pText);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
67 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
68
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
69 uint8_t tMCvOptText_refreshTimer(char* pText)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
70 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
71 SSettings *settings = settingsGetPointer();
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
72 snprintf(pText, 21, "%c%c\t%u:%02u \016\016[m:ss]\017", TXT_2BYTE, TXT2BYTE_Timer, settings->timerDurationS / 60, settings->timerDurationS % 60);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
73 return strlen(pText);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
74 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
75
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
76 uint8_t tMCvOptText_refreshO2(char* pText)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
77 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
78 char sensorStatusColor[3];
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
79 uint8_t textPointer = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
80 SSettings *pSettings = settingsGetPointer();
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
81
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
82
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
83 pText[textPointer++] = TXT_2BYTE;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
84 pText[textPointer++] = TXT2BYTE_Sensor;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
85
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
86 textPointer += snprintf(&pText[textPointer],20,"O2 %c%c",TXT_2BYTE,TXT2BYTE_Sensor);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
87
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
88 if((stateUsed->lifeData.ppO2Sensor_bar[0] != 0) || (stateUsed->lifeData.ppO2Sensor_bar[1] != 0) || (stateUsed->lifeData.ppO2Sensor_bar[2] != 0))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
89 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
90 pText[textPointer++] = '\t';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
91 sensorStatusColor[0] = '\020';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
92 sensorStatusColor[1] = '\020';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
93 sensorStatusColor[2] = '\020';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
94
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
95 /* Warning */
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
96 if(stateUsed->warnings.sensorOutOfBounds) sensorStatusColor[0] = '\024';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
97 if(stateUsed->warnings.sensorOutOfBounds) sensorStatusColor[1] = '\024';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
98 if(stateUsed->warnings.sensorOutOfBounds) sensorStatusColor[2] = '\024';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
99 /* Grey out */
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
100 if(stateUsed->diveSettings.ppo2sensors_deactivated & 1) sensorStatusColor[0] = '\031';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
101 if(stateUsed->diveSettings.ppo2sensors_deactivated & 2) sensorStatusColor[1] = '\031';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
102 if(stateUsed->diveSettings.ppo2sensors_deactivated & 4) sensorStatusColor[2] = '\031';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
103
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
104 if((pSettings->ext_sensor_map[0] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[0] == SENSOR_DIGO2M) || (pSettings->ext_sensor_map[0] == SENSOR_SENTINELM))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
105 {
1076
c87753e73eb8 Dev bugfix 50 pixel spacing:
Ideenmodellierer
parents: 1073
diff changeset
106 textPointer += snprintf(&pText[textPointer],20,"%c%01.1f \020\033",sensorStatusColor[0], stateUsed->lifeData.ppO2Sensor_bar[0]);
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
107 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
108 if((pSettings->ext_sensor_map[1] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[1] == SENSOR_DIGO2M) || (pSettings->ext_sensor_map[1] == SENSOR_SENTINELM))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
109 {
1076
c87753e73eb8 Dev bugfix 50 pixel spacing:
Ideenmodellierer
parents: 1073
diff changeset
110 textPointer += snprintf(&pText[textPointer],20,"%c%01.1f \020\033",sensorStatusColor[1], stateUsed->lifeData.ppO2Sensor_bar[1]);
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
111 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
112 if((pSettings->ext_sensor_map[2] == SENSOR_ANALOG) || (pSettings->ext_sensor_map[2] == SENSOR_DIGO2M) || (pSettings->ext_sensor_map[2] == SENSOR_SENTINELM))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
113 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
114 textPointer += snprintf(&pText[textPointer],20,"%c%01.1f",sensorStatusColor[2], stateUsed->lifeData.ppO2Sensor_bar[2]);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
115 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
116 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
117 pText[textPointer++] = '\020';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
118 pText[textPointer] = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
119 return strlen(pText);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
120 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
121
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
122 uint8_t tMCvOptText_refreshCO2(char* pText)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
123 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
124 char sensorStatusColor;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
125 uint8_t textPointer = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
126 SSettings *pSettings = settingsGetPointer();
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
127
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
128
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
129 pText[textPointer++] = TXT_2BYTE;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
130 pText[textPointer++] = TXT2BYTE_Sensor;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
131
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
132 textPointer += snprintf(&pText[textPointer],20,"CO2 %c%c",TXT_2BYTE,TXT2BYTE_Sensor);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
133
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
134
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
135 pText[textPointer++] = '\t';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
136 sensorStatusColor = '\020';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
137
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
138 /* Warning */
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
139 if(stateUsed->warnings.co2High) sensorStatusColor = '\024';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
140 /* Grey out */
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
141 if(pSettings->co2_sensor_active == 0) sensorStatusColor = '\031';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
142
1076
c87753e73eb8 Dev bugfix 50 pixel spacing:
Ideenmodellierer
parents: 1073
diff changeset
143 textPointer += snprintf(&pText[textPointer],20,"%c%ld \020\033",sensorStatusColor, stateUsed->lifeData.CO2_data.CO2_ppm);
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
144
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
145 pText[textPointer++] = '\020';
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
146 pText[textPointer] = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
147 return strlen(pText);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
148 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
149
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
150 uint8_t tMCvOptText_refreshHUD(char* pText)
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
151 {
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
152 uint8_t textPointer = 0;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
153 textPointer += snprintf(&pText[textPointer],20,"HUD");
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
154 pText[textPointer] = 0;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
155 return strlen(pText);
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
156 }
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
157
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
158 uint8_t tMCvOptText_BuildDynamicContentList()
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
159 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
160 uint8_t cvOptIndex = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
161 uint8_t CvOptAvailable = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
162 uint8_t index = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
163 uint8_t SensorActive[SENSOR_END];
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
164 SSettings *settings = settingsGetPointer();
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
165
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
166 memset(SensorActive, 0, sizeof(SensorActive));
1073
734f84b72b30 CV Option Menu added sub menus for O2 and CO2 sensors:
Ideenmodellierer
parents: 1071
diff changeset
167 activeLines = 0;
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
168
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
169 for (index = 0; index < EXT_INTERFACE_SENSOR_CNT; index++)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
170 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
171 switch(settings->ext_sensor_map[index])
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
172 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
173 case SENSOR_ANALOG: SensorActive[SENSOR_ANALOG] = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
174 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
175 case SENSOR_SENTINEL:
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
176 case SENSOR_DIGO2M: SensorActive[SENSOR_DIGO2] = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
177 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
178 case SENSOR_CO2: SensorActive[SENSOR_CO2] = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
179 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
180 #if defined ENABLE_GNSS_INTERNAL || defined ENABLE_GNSS_EXTERN
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
181 case SENSOR_GNSS: SensorActive[SENSOR_GNSS] = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
182 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
183 #endif
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
184 #ifdef ENABLE_HUD_SUPPORT
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
185 case SENSOR_HUD: SensorActive[SENSOR_HUD] = 1;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
186 break;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
187 #endif
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
188 default:
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
189 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
190 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
191 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
192
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
193 do
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
194 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
195 CvOptAvailable = 0;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
196 switch(cvOptIndex)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
197 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
198 case CVOPT_Compass: if((!t3_customview_disabled(CVIEW_T3_Compass)) || (!t3_customview_disabled(CVIEW_T3_Navigation)) || (!t7_customview_disabled(CVIEW_Compass)))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
199 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
200 refreshFctPointerTable[activeLines] = tMCvOptText_refreshCompass;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
201 CvOptAvailable = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
202 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
203 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
204 case CVOPT_Timer: if(!t7_customview_disabled(CVIEW_Timer))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
205 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
206 refreshFctPointerTable[activeLines] = tMCvOptText_refreshTimer;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
207 CvOptAvailable = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
208 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
209 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
210 case CVOPT_O2_Sensor: if((SensorActive[SENSOR_ANALOG]) || (SensorActive[SENSOR_DIGO2]))
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
211 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
212 refreshFctPointerTable[activeLines] = tMCvOptText_refreshO2;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
213 CvOptAvailable = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
214 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
215 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
216 case CVOPT_CO2_Sensor: if(SensorActive[SENSOR_CO2])
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
217 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
218 refreshFctPointerTable[activeLines] = tMCvOptText_refreshCO2;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
219 CvOptAvailable = 1;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
220 }
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
221 break;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
222 case CVOPT_HUD: if(SensorActive[SENSOR_HUD])
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
223 {
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
224 refreshFctPointerTable[activeLines] = tMCvOptText_refreshHUD;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
225 CvOptAvailable = 1;
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
226 }
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1076
diff changeset
227 break;
1071
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
228 default:
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
229 break;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
230 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
231 if(CvOptAvailable)
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
232 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
233 tMCvOption_SetOpenFnct(cvOptIndex,activeLines);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
234 activeLines++;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
235 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
236 cvOptIndex++;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
237 } while((activeLines < MAXLINES) && (cvOptIndex != CVOPT_END));
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
238
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
239 for(index = activeLines; index < MAXLINES; index++) /* delete pointers not in use */
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
240 {
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
241 tMCvOption_SetOpenFnct(CVOPT_END, index);
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
242 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
243 return activeLines;
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
244 }
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
245
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
246
b4a79464caf7 Dynamic menu creation for CV views:
Ideenmodellierer
parents:
diff changeset
247 /* Private functions ---------------------------------------------------------*/