Mercurial > public > ostc4
annotate Discovery/Src/tMenuDeco.c @ 668:079bb5b22c06 Betatest
Rework charge cycle:
The charge counter is increasing decreasing also if the real value is maybe not defined (definition is done for example by a completed charging cycle). This caused some problems with invalid displayed charge per centage values. To avoid this the state of an unknow counter value was introduced. The indication is done by converting the counter into a negativ value.
author | Ideenmodellierer |
---|---|
date | Sat, 12 Mar 2022 22:48:45 +0100 |
parents | 1b995079c045 |
children | e81afd727993 |
rev | line source |
---|---|
38 | 1 /////////////////////////////////////////////////////////////////////////////// |
2 /// -*- coding: UTF-8 -*- | |
3 /// | |
4 /// \file Discovery/Src/tMenuDeco.c | |
5 /// \brief Main Template file for Menu Page Deco | |
6 /// \author heinrichs weikamp gmbh | |
7 /// \date 31-July-2014 | |
8 /// | |
9 /// \details | |
10 /// | |
11 /// $Id$ | |
12 /////////////////////////////////////////////////////////////////////////////// | |
13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh | |
14 /// | |
15 /// This program is free software: you can redistribute it and/or modify | |
16 /// it under the terms of the GNU General Public License as published by | |
17 /// the Free Software Foundation, either version 3 of the License, or | |
18 /// (at your option) any later version. | |
19 /// | |
20 /// This program is distributed in the hope that it will be useful, | |
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
23 /// GNU General Public License for more details. | |
24 /// | |
25 /// You should have received a copy of the GNU General Public License | |
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
27 ////////////////////////////////////////////////////////////////////////////// | |
28 | |
29 /* Includes ------------------------------------------------------------------*/ | |
30 #include "tMenu.h" | |
31 #include "tMenuDeco.h" | |
32 #include "unit.h" | |
33 | |
34 /* Exported functions --------------------------------------------------------*/ | |
35 | |
36 uint32_t tMDeco_refresh(uint8_t line, char *text, uint16_t *tab, char *subtext) | |
37 { | |
38 uint8_t textPointer; | |
39 uint8_t futureTTS; | |
40 double ppO2max_deco, ppO2max_std; | |
41 char divemode, CcrModusTxtId; | |
42 textPointer = 0; | |
43 *tab = 370; | |
44 *subtext = 0; | |
45 | |
46 SSettings *data = settingsGetPointer(); | |
47 | |
48 futureTTS = data->future_TTS; | |
49 ppO2max_std = data->ppO2_max_std; | |
50 ppO2max_std /= 100.0; | |
51 ppO2max_deco = data->ppO2_max_deco; | |
52 ppO2max_deco /= 100.0; | |
53 | |
54 if((line == 0) || (line == 1)) | |
55 { | |
56 switch(data->dive_mode) | |
57 { | |
58 case DIVEMODE_OC: | |
59 divemode = TXT_OpenCircuit; | |
60 break; | |
61 case DIVEMODE_CCR: | |
62 divemode = TXT_ClosedCircuit; | |
63 break; | |
64 case DIVEMODE_Gauge: | |
65 divemode = TXT_Gauge; | |
66 break; | |
67 case DIVEMODE_Apnea: | |
68 divemode = TXT_Apnoe; | |
69 break; | |
662 | 70 case DIVEMODE_PSCR: |
71 divemode = TXT_PSClosedCircuit; | |
72 break; | |
51
8f8ea3a32e82
Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents:
38
diff
changeset
|
73 default : |
8f8ea3a32e82
Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents:
38
diff
changeset
|
74 divemode = TXT_OpenCircuit; |
8f8ea3a32e82
Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents:
38
diff
changeset
|
75 break; |
38 | 76 } |
77 textPointer += snprintf(&text[textPointer], 60,\ | |
78 "%c" | |
79 "\t" | |
80 "%c" | |
81 , TXT_DiveMode, divemode | |
82 ); | |
83 } | |
84 strcpy(&text[textPointer],"\n\r"); | |
85 textPointer += 2; | |
86 | |
662 | 87 if(isLoopMode(data->dive_mode)) |
38 | 88 { |
89 if((line == 0) || (line == 2)) | |
90 { | |
662 | 91 switch(data->CCR_Mode) |
92 { | |
93 case CCRMODE_Sensors: CcrModusTxtId = TXT_Sensor; | |
94 break; | |
95 case CCRMODE_FixedSetpoint: CcrModusTxtId = TXT_FixedSP; | |
96 break; | |
97 case CCRMODE_Simulation: CcrModusTxtId = TXT_SimPpo2; | |
98 break; | |
99 default: CcrModusTxtId = 'X'; | |
100 break; | |
101 } | |
102 | |
38 | 103 |
104 textPointer += snprintf(&text[textPointer], 60,\ | |
105 "%c" | |
106 "\t" | |
107 "%c" | |
108 , TXT_CCRmode | |
109 , CcrModusTxtId | |
110 ); | |
111 } | |
112 strcpy(&text[textPointer],"\n\r"); | |
113 textPointer += 2; | |
114 } | |
115 else | |
116 if(line != 0) | |
117 line++; | |
118 | |
119 if((line == 0) || (line == 3)) | |
120 { | |
121 textPointer += snprintf(&text[textPointer], 60,\ | |
122 "ppO2" | |
123 "\016\016" | |
124 "max" | |
125 "\017" | |
126 "\t" | |
127 "%0.2f" | |
128 "\016\016" | |
129 " bar " | |
130 " deco " | |
131 "\017" | |
132 "%0.2f" | |
133 "\016\016" | |
134 " bar" | |
135 "\017" | |
136 , ppO2max_std, ppO2max_deco | |
137 ); | |
138 } | |
139 strcpy(&text[textPointer],"\n\r"); | |
140 textPointer += 2; | |
141 | |
142 if((line == 0) || (line == 4)) | |
143 { | |
144 textPointer += snprintf(&text[textPointer], 60,\ | |
145 "%c" | |
146 "\t" | |
147 "%u" | |
148 "\016\016" | |
149 " %c" | |
150 "\017" | |
151 " @ " | |
152 "%u" | |
153 "\016\016" | |
154 " %c%c" | |
155 "\017" | |
156 , TXT_SafetyStop | |
157 , settingsGetPointer()->safetystopDuration | |
158 ,TXT_Minutes | |
159 , unit_depth_integer(settingsGetPointer()->safetystopDepth) | |
160 , unit_depth_char1() | |
161 , unit_depth_char2() | |
162 ); | |
163 } | |
164 strcpy(&text[textPointer],"\n\r"); | |
165 textPointer += 2; | |
166 | |
167 if((line == 0) || (line == 5)) | |
168 { | |
169 textPointer += snprintf(&text[textPointer], 60,\ | |
170 "%c" | |
171 "\t" | |
172 "%u" | |
173 "\016\016" | |
174 " %c" | |
175 "\017" | |
176 ,TXT_FutureTTS | |
177 ,futureTTS | |
178 ,TXT_Minutes | |
179 ); | |
180 } | |
181 strcpy(&text[textPointer],"\n\r"); | |
182 textPointer += 2; | |
183 | |
184 if((line == 0) || (line == 6)) | |
185 { | |
186 textPointer += snprintf(&text[textPointer], 60,\ | |
187 "%c" | |
188 "\t" | |
189 "%u" | |
190 "\016\016" | |
191 " %%" | |
192 "\017" | |
193 , TXT_Salinity | |
194 , settingsGetPointer()->salinity | |
195 ); | |
196 } | |
197 strcpy(&text[textPointer],"\n\r"); | |
198 textPointer += 2; | |
199 | |
200 | |
201 return StMDECO; | |
202 } |