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;
|
|
70 }
|
|
71 textPointer += snprintf(&text[textPointer], 60,\
|
|
72 "%c"
|
|
73 "\t"
|
|
74 "%c"
|
|
75 , TXT_DiveMode, divemode
|
|
76 );
|
|
77 }
|
|
78 strcpy(&text[textPointer],"\n\r");
|
|
79 textPointer += 2;
|
|
80
|
|
81 if(data->dive_mode == DIVEMODE_CCR)
|
|
82 {
|
|
83 if((line == 0) || (line == 2))
|
|
84 {
|
|
85 if(data->CCR_Mode == CCRMODE_Sensors)
|
|
86 CcrModusTxtId = TXT_Sensor;
|
|
87 else
|
|
88 CcrModusTxtId = TXT_FixedSP;
|
|
89
|
|
90 textPointer += snprintf(&text[textPointer], 60,\
|
|
91 "%c"
|
|
92 "\t"
|
|
93 "%c"
|
|
94 , TXT_CCRmode
|
|
95 , CcrModusTxtId
|
|
96 );
|
|
97 }
|
|
98 strcpy(&text[textPointer],"\n\r");
|
|
99 textPointer += 2;
|
|
100 }
|
|
101 else
|
|
102 if(line != 0)
|
|
103 line++;
|
|
104
|
|
105 if((line == 0) || (line == 3))
|
|
106 {
|
|
107 textPointer += snprintf(&text[textPointer], 60,\
|
|
108 "ppO2"
|
|
109 "\016\016"
|
|
110 "max"
|
|
111 "\017"
|
|
112 "\t"
|
|
113 "%0.2f"
|
|
114 "\016\016"
|
|
115 " bar "
|
|
116 " deco "
|
|
117 "\017"
|
|
118 "%0.2f"
|
|
119 "\016\016"
|
|
120 " bar"
|
|
121 "\017"
|
|
122 , ppO2max_std, ppO2max_deco
|
|
123 );
|
|
124 }
|
|
125 strcpy(&text[textPointer],"\n\r");
|
|
126 textPointer += 2;
|
|
127
|
|
128 if((line == 0) || (line == 4))
|
|
129 {
|
|
130 textPointer += snprintf(&text[textPointer], 60,\
|
|
131 "%c"
|
|
132 "\t"
|
|
133 "%u"
|
|
134 "\016\016"
|
|
135 " %c"
|
|
136 "\017"
|
|
137 " @ "
|
|
138 "%u"
|
|
139 "\016\016"
|
|
140 " %c%c"
|
|
141 "\017"
|
|
142 , TXT_SafetyStop
|
|
143 , settingsGetPointer()->safetystopDuration
|
|
144 ,TXT_Minutes
|
|
145 , unit_depth_integer(settingsGetPointer()->safetystopDepth)
|
|
146 , unit_depth_char1()
|
|
147 , unit_depth_char2()
|
|
148 );
|
|
149 }
|
|
150 strcpy(&text[textPointer],"\n\r");
|
|
151 textPointer += 2;
|
|
152
|
|
153 if((line == 0) || (line == 5))
|
|
154 {
|
|
155 textPointer += snprintf(&text[textPointer], 60,\
|
|
156 "%c"
|
|
157 "\t"
|
|
158 "%u"
|
|
159 "\016\016"
|
|
160 " %c"
|
|
161 "\017"
|
|
162 ,TXT_FutureTTS
|
|
163 ,futureTTS
|
|
164 ,TXT_Minutes
|
|
165 );
|
|
166 }
|
|
167 strcpy(&text[textPointer],"\n\r");
|
|
168 textPointer += 2;
|
|
169
|
|
170 if((line == 0) || (line == 6))
|
|
171 {
|
|
172 textPointer += snprintf(&text[textPointer], 60,\
|
|
173 "%c"
|
|
174 "\t"
|
|
175 "%u"
|
|
176 "\016\016"
|
|
177 " %%"
|
|
178 "\017"
|
|
179 , TXT_Salinity
|
|
180 , settingsGetPointer()->salinity
|
|
181 );
|
|
182 }
|
|
183 strcpy(&text[textPointer],"\n\r");
|
|
184 textPointer += 2;
|
|
185
|
|
186
|
|
187 return StMDECO;
|
|
188 }
|