Mercurial > public > ostc4
annotate Discovery/Src/t7.c @ 361:b111fc4250e9 MotionDetection
Pass action to customer vie update function.
By intoducing shakes the reason for calling an update may not only be the middle button. To be able to handle positiv and negativ shake events the action is now provided to the update function
author | Ideenmodellierer |
---|---|
date | Tue, 11 Jun 2019 05:30:09 +0200 |
parents | 3949781096d4 |
children | c18aebb03fed |
rev | line source |
---|---|
38 | 1 /////////////////////////////////////////////////////////////////////////////// |
2 /// -*- coding: UTF-8 -*- | |
3 /// | |
4 /// \file Discovery/Src/t7.c | |
5 /// \brief Main Template file for dive mode 7x | |
6 /// \author Heinrichs Weikamp gmbh | |
7 /// \date 23-April-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 "t7.h" | |
31 | |
32 #include "data_exchange_main.h" | |
33 #include "decom.h" | |
34 #include "gfx_fonts.h" | |
35 #include "logbook_miniLive.h" | |
36 #include "math.h" | |
37 #include "tHome.h" | |
38 #include "simulation.h" | |
39 #include "timer.h" | |
40 #include "unit.h" | |
41 | |
42 /* Private function prototypes -----------------------------------------------*/ | |
43 | |
44 void t7_refresh_surface(void); | |
45 void t7_refresh_surface_debugmode(void); | |
46 void t7_refresh_divemode(void); | |
47 void t7_refresh_sleep_design_fun(void); | |
48 void t7_refresh_divemode_userselected_left_lower_corner(void); | |
49 void t7_refresh_customview(void); | |
50 | |
51 void draw_frame(_Bool PluginBoxHeader, _Bool LinesOnTheSides, uint8_t colorBox, uint8_t colorLinesOnTheSide); | |
52 | |
53 void t7_tissues(const SDiveState * pState); | |
54 void t7_compass(uint16_t ActualHeading, uint16_t UserSetHeading); | |
55 void t7_SummaryOfLeftCorner(void); | |
56 void t7_debug(void); | |
57 | |
58 void t7_miniLiveLogProfile(void); | |
59 void t7_logo_OSTC(void); | |
196
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
60 static void t7_colorscheme_mod(char *text); |
38 | 61 |
62 uint8_t t7_test_customview_warnings(void); | |
63 void t7_show_customview_warnings(void); | |
64 | |
65 uint8_t t7_test_customview_warnings_surface_mode(void); | |
66 void t7_show_customview_warnings_surface_mode(void); | |
67 | |
68 uint8_t t7_customtextPrepare(char * text); | |
69 | |
193
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
70 /* Imported function prototypes ---------------------------------------------*/ |
38 | 71 extern uint8_t write_gas(char *text, uint8_t oxygen, uint8_t helium); |
72 | |
73 /* Exported variables --------------------------------------------------------*/ | |
74 | |
75 /* Private variables ---------------------------------------------------------*/ | |
76 | |
77 GFX_DrawCfgScreen t7screen; | |
78 GFX_DrawCfgScreen t7screenCompass; | |
79 | |
80 /* left 3 fields | |
81 * right 3 fields | |
82 * centered one field on top of customview, one below | |
83 * customview header + customview + warning | |
84 */ | |
85 GFX_DrawCfgWindow t7l1, t7l2, t7l3; | |
86 GFX_DrawCfgWindow t7r1, t7r2, t7r3; | |
87 GFX_DrawCfgWindow t7c1, t7batt, t7c2, t7charge, t7voltage; | |
88 GFX_DrawCfgWindow t7cH, t7cC, t7cW, t7cY0free; | |
89 GFX_DrawCfgWindow t7pCompass; | |
90 GFX_DrawCfgWindow t7surfaceL, t7surfaceR; | |
91 | |
92 uint8_t selection_custom_field = 1; | |
93 uint8_t selection_customview = 1; | |
94 | |
95 uint8_t updateNecessary = 0; | |
96 | |
97 typedef struct{ | |
98 uint32_t pointer; | |
99 uint32_t x0; | |
100 uint32_t y0; | |
101 uint32_t width; | |
102 uint32_t height; | |
103 } SBackground; | |
104 | |
105 SBackground background = | |
106 { | |
166
255eedad4155
cleanup: get rid of some compile warnings
Jan Mulder <jlmulder@xs4all.nl>
parents:
149
diff
changeset
|
107 .pointer = 0, |
38 | 108 }; |
109 | |
110 | |
111 /* Private types -------------------------------------------------------------*/ | |
112 const uint8_t customviewsDiveStandard[] = | |
113 { | |
114 CVIEW_sensors, | |
115 CVIEW_Compass, | |
116 CVIEW_Decolist, | |
117 CVIEW_Tissues, | |
118 CVIEW_Profile, | |
119 CVIEW_Gaslist, | |
120 CVIEW_sensors_mV, | |
121 CVIEW_EADTime, | |
122 CVIEW_SummaryOfLeftCorner, | |
123 CVIEW_noneOrDebug, | |
124 CVIEW_END, | |
125 CVIEW_END | |
126 }; | |
127 | |
128 const uint8_t customviewsSurfaceStandard[] = | |
129 { | |
130 // CVIEW_CompassDebug, | |
131 CVIEW_Hello, | |
132 CVIEW_sensors, | |
133 CVIEW_Compass, | |
134 CVIEW_Tissues, | |
135 CVIEW_sensors_mV, | |
136 CVIEW_END, | |
137 CVIEW_END | |
138 }; | |
139 | |
140 const uint8_t *customviewsDive = customviewsDiveStandard; | |
141 const uint8_t *customviewsSurface = customviewsSurfaceStandard; | |
142 | |
143 #define TEXTSIZE 16 | |
144 /* offset includes line: 2 = line +1 | |
145 * box (line) is 300 px | |
146 * inside is 296 px | |
147 * left of box are 249 px ( 0..248) | |
148 * right of box are 249 px (551 .. 799) | |
149 */ | |
150 | |
151 #define CUSTOMBOX_LINE_LEFT (250) | |
152 #define CUSTOMBOX_LINE_RIGHT (549) | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
153 #define CUSTOMBOX_LINE_TOP (0) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
154 #define CUSTOMBOX_LINE_MIDDLE (142) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
155 #define CUSTOMBOX_LINE_BOTTOM (318) |
38 | 156 #define CUSTOMBOX_INSIDE_OFFSET (2) |
157 #define CUSTOMBOX_OUTSIDE_OFFSET (2) | |
158 #define CUSTOMBOX_SPACE_INSIDE (CUSTOMBOX_LINE_RIGHT + 1 - (CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + CUSTOMBOX_INSIDE_OFFSET)) | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
159 #define TOP_LINE_HIGHT (25) |
38 | 160 |
161 /* Exported functions --------------------------------------------------------*/ | |
162 | |
163 void t7_init(void) | |
164 { | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
165 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
166 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
167 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
168 |
38 | 169 selection_custom_field = 1; |
170 selection_customview = customviewsSurface[0]; | |
171 | |
172 t7screen.FBStartAdress = 0; | |
173 t7screen.ImageHeight = 480; | |
174 t7screen.ImageWidth = 800; | |
175 t7screen.LayerIndex = 1; | |
176 | |
177 t7screenCompass.FBStartAdress = 0; | |
178 t7screenCompass.ImageHeight = 240; | |
179 t7screenCompass.ImageWidth = 1600; | |
180 t7screenCompass.LayerIndex = 0; | |
181 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
182 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
183 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
184 t7l1.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
185 t7l1.WindowNumberOfTextLines = 2; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
186 t7l1.WindowLineSpacing = 19; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
187 t7l1.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
188 t7l1.WindowX0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
189 t7l1.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
190 t7l1.WindowY0 = 318; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
191 t7l1.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
192 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
193 t7l2.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
194 t7l2.WindowNumberOfTextLines = 2; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
195 t7l2.WindowLineSpacing = 22; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
196 t7l2.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
197 t7l2.WindowX0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
198 t7l2.WindowX1 = t7l1.WindowX1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
199 t7l2.WindowY0 = 142; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
200 t7l2.WindowY1 = t7l1.WindowY0 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
201 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
202 t7l3.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
203 t7l3.WindowNumberOfTextLines = 2; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
204 t7l3.WindowLineSpacing = 58; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
205 t7l3.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
206 t7l3.WindowX0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
207 t7l3.WindowX1 = t7l1.WindowX1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
208 t7l3.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
209 t7l3.WindowY1 = t7l2.WindowY0 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
210 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
211 t7r1.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
212 t7r1.WindowNumberOfTextLines = 2; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
213 t7r1.WindowLineSpacing = t7l1.WindowLineSpacing; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
214 t7r1.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
215 t7r1.WindowX0 = 550; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
216 t7r1.WindowX1 = 799; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
217 t7r1.WindowY0 = t7l1.WindowY0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
218 t7r1.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
219 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
220 t7r2.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
221 t7r2.WindowNumberOfTextLines = 2; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
222 t7r2.WindowLineSpacing = t7l2.WindowLineSpacing; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
223 t7r2.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
224 t7r2.WindowX0 = 550; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
225 t7r2.WindowX1 = 799; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
226 t7r2.WindowY0 = t7l2.WindowY0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
227 t7r2.WindowY1 = t7l2.WindowY1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
228 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
229 t7r3.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
230 t7r3.WindowNumberOfTextLines = 2; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
231 t7r3.WindowLineSpacing = 0;//t7l3.WindowLineSpacing; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
232 t7r3.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
233 t7r3.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
234 t7r3.WindowX1 = 799; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
235 t7r3.WindowY0 = t7l3.WindowY0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
236 t7r3.WindowY1 = t7l3.WindowY1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
237 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
238 t7cC.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
239 t7cC.WindowNumberOfTextLines = 3; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
240 t7cC.WindowLineSpacing = 95; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
241 t7cC.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
242 t7cC.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
243 t7cC.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
244 t7cC.WindowY0 = 90; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
245 t7cC.WindowY1 = 434 - 95; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
246 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
247 t7cH.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
248 t7cH.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
249 t7cH.WindowLineSpacing = 95; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
250 t7cH.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
251 t7cH.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
252 t7cH.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
253 t7cH.WindowY0 = 434 - 94; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
254 t7cH.WindowY1 = 434; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
255 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
256 t7cW.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
257 t7cW.WindowNumberOfTextLines = 3; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
258 t7cW.WindowLineSpacing = 95; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
259 t7cW.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
260 t7cW.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
261 t7cW.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
262 t7cW.WindowY0 = 90; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
263 t7cW.WindowY1 = 434 - 95; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
264 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
265 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
266 t7surfaceL.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
267 t7surfaceL.WindowNumberOfTextLines = 9; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
268 t7surfaceL.WindowLineSpacing = 53; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
269 t7surfaceL.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
270 t7surfaceL.WindowX0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
271 t7surfaceL.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
272 t7surfaceL.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
273 t7surfaceL.WindowY1 = 480; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
274 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
275 t7surfaceR.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
276 t7surfaceR.WindowNumberOfTextLines = 9; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
277 t7surfaceR.WindowLineSpacing = 53; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
278 t7surfaceR.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
279 t7surfaceR.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
280 t7surfaceR.WindowX1 = 800; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
281 t7surfaceR.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
282 t7surfaceR.WindowY1 = 480; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
283 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
284 t7cY0free.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
285 t7cY0free.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
286 t7cY0free.WindowLineSpacing = 95; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
287 t7cY0free.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
288 t7cY0free.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
289 t7cY0free.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
290 t7cY0free.WindowY0 = 90; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
291 t7cY0free.WindowY1 = 434 - 95; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
292 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
293 t7batt.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
294 t7batt.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
295 t7batt.WindowLineSpacing = 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
296 t7batt.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
297 t7batt.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
298 t7batt.WindowX0 = t7batt.WindowX1 - (52+52); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
299 t7batt.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
300 t7batt.WindowY0 = t7batt.WindowY1 - 25; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
301 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
302 t7charge.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
303 t7charge.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
304 t7charge.WindowLineSpacing = 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
305 t7charge.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
306 t7charge.WindowX1 = t7batt.WindowX1 - 18; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
307 t7charge.WindowX0 = t7charge.WindowX1 - 14; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
308 t7charge.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
309 t7charge.WindowY0 = t7batt.WindowY1 - 25; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
310 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
311 t7voltage.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
312 t7voltage.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
313 t7voltage.WindowLineSpacing = 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
314 t7voltage.WindowTab = 100; |
145 | 315 t7voltage.WindowX0 = t7charge.WindowX0 - 10; |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
316 t7voltage.WindowX1 = t7voltage.WindowX0 + (18*3)+ 9; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
317 t7voltage.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
318 t7voltage.WindowY0 = t7batt.WindowY1 - 25; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
319 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
320 t7c1.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
321 t7c1.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
322 t7c1.WindowLineSpacing = 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
323 t7c1.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
324 t7c1.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
325 t7c1.WindowX1 = t7batt.WindowX0 - 18; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
326 t7c1.WindowY0 = 435; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
327 t7c1.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
328 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
329 t7c2.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
330 t7c2.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
331 t7c2.WindowLineSpacing = 0; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
332 t7c2.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
333 t7c2.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
334 t7c2.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
335 t7c2.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
336 t7c2.WindowY1 = 69; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
337 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
338 t7pCompass.Image = &t7screenCompass; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
339 t7pCompass.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
340 t7pCompass.WindowLineSpacing = 100; // Abstand von Y0 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
341 t7pCompass.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
342 t7pCompass.WindowX0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
343 t7pCompass.WindowX1 = 1600-1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
344 t7pCompass.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
345 t7pCompass.WindowY1 = 100-1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
346 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
347 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
348 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
349 /* 6 segments (left / right) used to show data during dive */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
350 |
38 | 351 t7l1.Image = &t7screen; |
352 t7l1.WindowNumberOfTextLines = 2; | |
353 t7l1.WindowLineSpacing = 19; // Abstand von Y0 | |
354 t7l1.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
355 t7l1.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
356 t7l1.WindowX1 = 799; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
357 t7l1.WindowY0 = CUSTOMBOX_LINE_TOP; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
358 t7l1.WindowY1 = 150 + TOP_LINE_HIGHT; |
38 | 359 |
360 t7l2.Image = &t7screen; | |
361 t7l2.WindowNumberOfTextLines = 2; | |
362 t7l2.WindowLineSpacing = 22; // Abstand von Y0 | |
363 t7l2.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
364 t7l2.WindowX0 = t7l1.WindowX0; |
38 | 365 t7l2.WindowX1 = t7l1.WindowX1; |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
366 t7l2.WindowY0 = t7l1.WindowY1 + 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
367 t7l2.WindowY1 = t7l2.WindowY0 + 146; |
38 | 368 |
369 t7l3.Image = &t7screen; | |
370 t7l3.WindowNumberOfTextLines = 2; | |
371 t7l3.WindowLineSpacing = 58; // Abstand von Y0 | |
372 t7l3.WindowTab = 100; // vermtl. ohne Verwendung in diesem Fenster | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
373 t7l3.WindowX0 = t7l1.WindowX0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
374 t7l3.WindowX1 = t7l1.WindowX1;; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
375 t7l3.WindowY0 = 479 - 150; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
376 t7l3.WindowY1 = 479; |
38 | 377 |
378 t7r1.Image = &t7screen; | |
379 t7r1.WindowNumberOfTextLines = 2; | |
380 t7r1.WindowLineSpacing = t7l1.WindowLineSpacing; | |
381 t7r1.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
382 t7r1.WindowX0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
383 t7r1.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; |
38 | 384 t7r1.WindowY0 = t7l1.WindowY0; |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
385 t7r1.WindowY1 = t7l1.WindowY1; |
38 | 386 |
387 t7r2.Image = &t7screen; | |
388 t7r2.WindowNumberOfTextLines = 2; | |
389 t7r2.WindowLineSpacing = t7l2.WindowLineSpacing; | |
390 t7r2.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
391 t7r2.WindowX0 = t7r1.WindowX0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
392 t7r2.WindowX1 = t7r1.WindowX1; |
38 | 393 t7r2.WindowY0 = t7l2.WindowY0; |
394 t7r2.WindowY1 = t7l2.WindowY1; | |
395 | |
396 t7r3.Image = &t7screen; | |
397 t7r3.WindowNumberOfTextLines = 2; | |
398 t7r3.WindowLineSpacing = 0;//t7l3.WindowLineSpacing; | |
399 t7r3.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
400 t7r3.WindowX0 = t7r1.WindowX0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
401 t7r3.WindowX1 = t7r1.WindowX1; |
38 | 402 t7r3.WindowY0 = t7l3.WindowY0; |
403 t7r3.WindowY1 = t7l3.WindowY1; | |
404 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
405 /* screen for CustomText / serial number */ |
38 | 406 t7cC.Image = &t7screen; |
407 t7cC.WindowNumberOfTextLines = 3; | |
408 t7cC.WindowLineSpacing = 95; // Abstand von Y0 | |
409 t7cC.WindowTab = 100; | |
410 t7cC.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
411 t7cC.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
412 t7cC.WindowY0 = 165; //90; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
413 t7cC.WindowY1 = 415; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
414 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
415 /* used by warning message box */ |
38 | 416 t7cH.Image = &t7screen; |
417 t7cH.WindowNumberOfTextLines = 1; | |
418 t7cH.WindowLineSpacing = 95; // Abstand von Y0 | |
419 t7cH.WindowTab = 100; | |
420 t7cH.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
421 t7cH.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
422 t7cH.WindowY0 = 46; //480 - 434; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
423 t7cH.WindowY1 = 390 - 46;// - 90; //46 + 390; //480 - (434 - 94); //434; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
424 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
425 /* used by warning custom box */ |
38 | 426 t7cW.Image = &t7screen; |
427 t7cW.WindowNumberOfTextLines = 3; | |
428 t7cW.WindowLineSpacing = 95; // Abstand von Y0 | |
429 t7cW.WindowTab = 100; | |
430 t7cW.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
431 t7cW.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
432 t7cW.WindowY0 = 480 - (434 - 90); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
433 t7cW.WindowY1 = 480 - 90; //434 - 95; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
434 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
435 /* time and environment */ |
38 | 436 t7surfaceL.Image = &t7screen; |
437 t7surfaceL.WindowNumberOfTextLines = 9; | |
438 t7surfaceL.WindowLineSpacing = 53; | |
439 t7surfaceL.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
440 t7surfaceL.WindowX0 = CUSTOMBOX_LINE_RIGHT + CUSTOMBOX_OUTSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
441 t7surfaceL.WindowX1 = 799; |
38 | 442 t7surfaceL.WindowY0 = 0; |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
443 t7surfaceL.WindowY1 = 479; |
38 | 444 |
445 t7surfaceR.Image = &t7screen; | |
446 t7surfaceR.WindowNumberOfTextLines = 9; | |
447 t7surfaceR.WindowLineSpacing = 53; | |
448 t7surfaceR.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
449 t7surfaceR.WindowX0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
450 t7surfaceR.WindowX1 = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET; |
38 | 451 t7surfaceR.WindowY0 = 0; |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
452 t7surfaceR.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
453 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
454 /* info screen in the middle */ |
38 | 455 t7cY0free.Image = &t7screen; |
456 t7cY0free.WindowNumberOfTextLines = 1; | |
457 t7cY0free.WindowLineSpacing = 95; | |
458 t7cY0free.WindowTab = 100; | |
459 t7cY0free.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
460 t7cY0free.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
461 t7cY0free.WindowY0 = 115; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
462 t7cY0free.WindowY1 = 365; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
463 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
464 /* voltage value (V or %) */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
465 t7voltage.Image = &t7screen; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
466 t7voltage.WindowNumberOfTextLines = 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
467 t7voltage.WindowLineSpacing = 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
468 t7voltage.WindowTab = 100; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
469 t7voltage.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
470 t7voltage.WindowX1 = t7voltage.WindowX0 + (18*3) +9; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
471 t7voltage.WindowY1 = TOP_LINE_HIGHT; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
472 t7voltage.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
473 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
474 /* battery symbol */ |
38 | 475 t7batt.Image = &t7screen; |
476 t7batt.WindowNumberOfTextLines = 1; | |
477 t7batt.WindowLineSpacing = 10; | |
478 t7batt.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
479 t7batt.WindowX0 = t7voltage.WindowX1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
480 t7batt.WindowX1 = t7batt.WindowX0 + (52); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
481 t7batt.WindowY1 = TOP_LINE_HIGHT; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
482 t7batt.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
483 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
484 /* charger symbol */ |
38 | 485 t7charge.Image = &t7screen; |
486 t7charge.WindowNumberOfTextLines = 1; | |
487 t7charge.WindowLineSpacing = 10; | |
488 t7charge.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
489 t7charge.WindowX1 = t7batt.WindowX0 - 18; |
38 | 490 t7charge.WindowX0 = t7charge.WindowX1 - 14; |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
491 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
492 t7charge.WindowY1 = TOP_LINE_HIGHT; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
493 t7charge.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
494 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
495 /* show dive mode OC / CC */ |
38 | 496 t7c1.Image = &t7screen; |
497 t7c1.WindowNumberOfTextLines = 1; | |
498 t7c1.WindowLineSpacing = 10; | |
499 t7c1.WindowTab = 100; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
500 t7c1.WindowX0 = t7batt.WindowX1 + 18; //CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
501 t7c1.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; //t7batt.WindowX1 + 18; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
502 t7c1.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
503 t7c1.WindowY1 = 479 - 435; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
504 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
505 /* Gas warnings and exit Sim*/ |
38 | 506 t7c2.Image = &t7screen; |
507 t7c2.WindowNumberOfTextLines = 1; | |
508 t7c2.WindowLineSpacing = 0; // Abstand von Y0 | |
509 t7c2.WindowTab = 100; | |
510 t7c2.WindowX0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
511 t7c2.WindowX1 = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_INSIDE_OFFSET; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
512 t7c2.WindowY0 = 480 - 69; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
513 t7c2.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
514 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
515 /* Rotating compass */ |
38 | 516 t7pCompass.Image = &t7screenCompass; |
517 t7pCompass.WindowNumberOfTextLines = 1; | |
518 t7pCompass.WindowLineSpacing = 100; // Abstand von Y0 | |
519 t7pCompass.WindowTab = 100; | |
520 t7pCompass.WindowX0 = 0; | |
521 t7pCompass.WindowX1 = 1600-1; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
522 t7pCompass.WindowY0 = 479 - 75; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
523 t7pCompass.WindowY1 = 479; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
524 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
525 } |
38 | 526 |
527 init_t7_compass(); | |
528 } | |
529 | |
530 | |
531 void t7_refresh_sleepmode_fun(void) | |
532 { | |
533 uint32_t oldScreen; | |
534 | |
535 oldScreen = t7screen.FBStartAdress; | |
536 t7screen.FBStartAdress = getFrame(22); | |
537 | |
538 t7_refresh_sleep_design_fun(); | |
539 | |
540 if(get_globalState() == StStop) | |
541 { | |
166
255eedad4155
cleanup: get rid of some compile warnings
Jan Mulder <jlmulder@xs4all.nl>
parents:
149
diff
changeset
|
542 GFX_SetFramesTopBottom(t7screen.FBStartAdress, 0,480); |
38 | 543 } |
544 releaseFrame(22,oldScreen); | |
545 } | |
546 | |
547 | |
548 void t7_refresh(void) | |
549 { | |
550 static uint8_t last_mode = MODE_SURFACE; | |
551 SStateList status; | |
552 get_globalStateList(&status); | |
553 | |
554 t7screen.FBStartAdress = getFrame(22); | |
555 | |
556 background.pointer = 0; | |
557 | |
558 if(stateUsed->mode == MODE_DIVE) | |
559 { | |
560 if(last_mode != MODE_DIVE) | |
561 { | |
562 last_mode = MODE_DIVE; | |
563 /* lower left corner primary */ | |
564 selection_custom_field = settingsGetPointer()->tX_userselectedLeftLowerCornerPrimary; | |
565 /* custom view primary OR debug if automatic return is off */ | |
566 if((settingsGetPointer()->tX_customViewTimeout == 0) && (settingsGetPointer()->showDebugInfo)) | |
567 selection_customview = CVIEW_noneOrDebug; | |
568 else | |
569 selection_customview = settingsGetPointer()->tX_customViewPrimary; | |
570 } | |
571 | |
572 if(status.page == PageSurface) | |
573 set_globalState(StD); | |
574 | |
575 if(stateUsed->diveSettings.diveMode == DIVEMODE_Gauge) | |
576 { | |
577 settingsGetPointer()->design = 5; | |
578 releaseAllFramesExcept(22,t7screen.FBStartAdress); | |
579 releaseFrame(22,t7screen.FBStartAdress); | |
580 return; | |
581 } | |
582 else if(stateUsed->diveSettings.diveMode == DIVEMODE_Apnea) | |
583 { | |
584 settingsGetPointer()->design = 6; | |
585 releaseAllFramesExcept(22,t7screen.FBStartAdress); | |
586 releaseFrame(22,t7screen.FBStartAdress); | |
587 return; | |
588 } | |
589 else | |
590 { | |
591 t7_refresh_divemode(); | |
592 } | |
593 } | |
594 else // from if(stateUsed->mode == MODE_DIVE) | |
595 { | |
596 if(last_mode != MODE_SURFACE) | |
597 { | |
598 last_mode = MODE_SURFACE; | |
599 selection_customview = customviewsSurface[0]; | |
600 } | |
601 if(status.page == PageDive) | |
602 set_globalState(StS); | |
603 | |
604 if(settingsGetPointer()->showDebugInfo) | |
605 t7_refresh_surface_debugmode(); | |
606 else | |
607 t7_refresh_surface(); | |
608 } | |
609 | |
610 tHome_show_lost_connection_count(&t7screen); | |
611 | |
612 if(status.base == BaseHome) | |
613 { | |
614 if(background.pointer) | |
615 { | |
616 GFX_SetFrameTop(t7screen.FBStartAdress); | |
617 GFX_SetFrameBottom(background.pointer,background.x0 , background.y0, background.width, background.height); | |
618 } | |
619 else | |
166
255eedad4155
cleanup: get rid of some compile warnings
Jan Mulder <jlmulder@xs4all.nl>
parents:
149
diff
changeset
|
620 GFX_SetFramesTopBottom(t7screen.FBStartAdress, 0,480); |
38 | 621 } |
622 | |
623 releaseAllFramesExcept(22,t7screen.FBStartAdress); | |
624 } | |
625 | |
626 /* Private functions ---------------------------------------------------------*/ | |
627 | |
628 void t7_fill_surfacetime_helper(SSurfacetime *outArray, uint32_t inputMinutes, uint32_t inputSeconds) | |
629 { | |
630 inputSeconds += inputMinutes * 60; | |
631 | |
632 outArray->Total = inputSeconds; | |
633 | |
634 outArray->Days = inputSeconds / 86400;// (24*60*60); | |
635 inputSeconds -= 86400 * (uint32_t)outArray->Days; | |
636 | |
637 outArray->Hours = inputSeconds / 3600;// (60*60); | |
638 inputSeconds -= 3600 * (uint32_t)outArray->Hours; | |
639 | |
640 outArray->Minutes = inputSeconds / 60;; | |
641 inputSeconds -= 60 * (uint32_t)outArray->Minutes; | |
642 | |
643 outArray->Seconds = inputSeconds; | |
644 } | |
645 | |
646 void t7_refresh_sleep_design_fun(void) | |
647 { | |
648 static uint16_t state = 0; | |
649 uint16_t ytop = 0; | |
650 | |
651 state +=1; | |
652 if(state > 800) | |
653 state = 1; | |
654 | |
655 if(state > 400) | |
656 ytop = 800 - state; | |
657 else | |
658 ytop = 0 + state; | |
178
d36596281501
Minor: Replace stupid "Sleep Sleep Sleep" message with something more meaningful
heinrichsweikamp
parents:
174
diff
changeset
|
659 Gfx_write_label_var(&t7screen, 300,800, ytop,&FontT48,CLUT_Font020,"Shutting down..."); |
38 | 660 } |
661 | |
662 void t7_refresh_surface(void) | |
663 { | |
664 char text[256]; | |
665 uint8_t date[3], year,month,day; | |
666 uint32_t color; | |
667 uint8_t customview_warnings = 0; | |
668 | |
669 RTC_DateTypeDef Sdate; | |
670 RTC_TimeTypeDef Stime; | |
671 RTC_DateTypeDef SdateFirmware; | |
672 | |
673 uint8_t dateNotSet = 0; | |
674 | |
675 uint8_t oxygen_percentage, gasOffset, actualGasID; | |
676 // uint16_t bottleFirstGas_bar; | |
677 point_t start, stop;//, other; | |
678 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
679 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
680 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
681 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
682 |
38 | 683 // update in all customview modes |
684 if(DataEX_check_RTE_version__needs_update() || font_update_required()) | |
685 updateNecessary = 1; | |
686 else | |
687 updateNecessary = 0; | |
688 | |
689 /* buttons */ | |
690 text[0] = TXT_2BYTE; | |
691 text[1] = TXT2BYTE_ButtonLogbook; | |
692 text[2] = 0; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
693 write_content_simple(&t7screen, 0, 799, 479-TOP_LINE_HIGHT, &FontT24,text,CLUT_ButtonSurfaceScreen); |
38 | 694 |
695 text[0] = '\001'; | |
696 text[1] = TXT_2BYTE; | |
697 text[2] = TXT2BYTE_ButtonView; | |
698 text[3] = 0; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
699 write_content_simple(&t7screen, 0, 799, 479-TOP_LINE_HIGHT, &FontT24,text,CLUT_ButtonSurfaceScreen); |
38 | 700 |
701 text[0] = '\002'; | |
702 text[1] = TXT_2BYTE; | |
703 text[2] = TXT2BYTE_ButtonMenu; | |
704 text[3] = 0; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
705 write_content_simple(&t7screen, 0, 799, 479-TOP_LINE_HIGHT, &FontT24,text,CLUT_ButtonSurfaceScreen); |
38 | 706 |
707 /* was power on reset */ | |
708 //..... | |
709 /* removed hw 160802 in V1.1.1 | |
710 if(errorsInSettings) | |
711 { | |
712 sprintf(text,"Settings: %u",errorsInSettings); | |
713 GFX_write_string_color(&FontT42,&t7surfaceR,text,4,CLUT_WarningRed); | |
714 } | |
715 else | |
716 */ | |
717 if(DataEX_was_power_on()) | |
718 GFX_write_string_color(&FontT42,&t7surfaceR,"cold start",4,CLUT_WarningRed); | |
719 | |
720 /* time and date */ | |
721 translateDate(stateUsed->lifeData.dateBinaryFormat, &Sdate); | |
722 translateTime(stateUsed->lifeData.timeBinaryFormat, &Stime); | |
723 | |
724 firmwareGetDate(&SdateFirmware); | |
725 if(tHome_DateCode(&Sdate) < tHome_DateCode(&SdateFirmware)) | |
726 dateNotSet = 1; | |
727 else | |
728 dateNotSet = 0; | |
729 /* | |
730 if(Stime.Seconds % 2) | |
731 snprintf(text,255,"\001%02d:%02d",Stime.Hours,Stime.Minutes); | |
732 else | |
733 snprintf(text,255,"\001%02d\021:\020%02d",Stime.Hours,Stime.Minutes); | |
734 GFX_write_string(&FontT54,&t7surfaceR,text,3); | |
735 */ | |
736 // debug version: | |
737 if(Stime.Seconds % 2) | |
738 snprintf(text,255,"\001%02d:%02d:%02d",Stime.Hours,Stime.Minutes,Stime.Seconds); | |
739 else if(dateNotSet) | |
740 snprintf(text,255,"\001\021%02d:%02d:%02d\020",Stime.Hours,Stime.Minutes,Stime.Seconds); | |
741 else | |
742 snprintf(text,255,"\001%02d\021:\020%02d:%02d",Stime.Hours,Stime.Minutes,Stime.Seconds); | |
743 GFX_write_string(&FontT54,&t7surfaceR,text,3); | |
744 | |
745 if(settingsGetPointer()->date_format == DDMMYY) | |
746 { | |
747 day = 0; | |
748 month = 1; | |
749 year = 2; | |
750 } | |
751 else | |
752 if(settingsGetPointer()->date_format == MMDDYY) | |
753 { | |
754 day = 1; | |
755 month = 0; | |
756 year = 2; | |
757 } | |
758 else | |
759 { | |
760 day = 2; | |
761 month = 1; | |
762 year = 0; | |
763 } | |
764 date[day] = Sdate.Date; | |
765 date[month] = Sdate.Month; | |
766 date[year] = Sdate.Year; | |
767 | |
768 if((Stime.Seconds % 2) || (dateNotSet == 0)) | |
769 snprintf(text,255,"\001%02d.%02d.%02d",date[0],date[1],date[2]); | |
770 else | |
771 snprintf(text,255,"\001\021%02d.%02d.%02d",date[0],date[1],date[2]); | |
772 | |
773 GFX_write_string(&FontT54,&t7surfaceR,text,5); | |
774 | |
775 if(!DataEX_was_power_on() && !errorsInSettings) | |
776 { | |
777 text[0] = '\001'; | |
778 text[1] = '\004'; | |
779 text[2] = TXT_2BYTE; | |
780 text[3] = TXT2BYTE_Sunday; | |
781 text[4] = 0; | |
782 if(Sdate.WeekDay != RTC_WEEKDAY_SUNDAY) | |
783 text[3] += Sdate.WeekDay; | |
784 | |
785 if(!(Stime.Seconds % 2) && (dateNotSet == 1)) | |
786 text[1] = '\021'; | |
787 | |
788 GFX_write_string(&FontT24,&t7surfaceR,text,4); | |
789 } | |
790 | |
791 /* DEBUG uTick Pressure and Compass */ | |
792 /* | |
793 snprintf(text,255,"\001%u",stateRealGetPointer()->pressure_uTick_new - stateRealGetPointer()->pressure_uTick_old); | |
794 GFX_write_string(&FontT42,&t7surfaceR,text,1); | |
795 snprintf(text,255,"\001%u",HAL_GetTick() - stateRealGetPointer()->pressure_uTick_local_new); | |
796 GFX_write_string(&FontT42,&t7surfaceR,text,2); | |
797 | |
798 snprintf(text,255,"\001%u",stateRealGetPointer()->compass_uTick_new - stateRealGetPointer()->compass_uTick_old); | |
799 GFX_write_string(&FontT42,&t7surfaceR,text,6); | |
800 snprintf(text,255,"\001%u",HAL_GetTick() - stateRealGetPointer()->compass_uTick_local_new); | |
801 GFX_write_string(&FontT42,&t7surfaceR,text,7); | |
802 | |
803 static uint32_t bildschirmRefresh = 0; | |
804 snprintf(text,255,"\001%u",HAL_GetTick() - bildschirmRefresh); | |
805 GFX_write_string(&FontT42,&t7surfaceR,text,8); | |
806 bildschirmRefresh = HAL_GetTick(); | |
807 | |
808 static uint16_t bildschirmRefreshCount = 1; | |
809 if(bildschirmRefreshCount>10) | |
810 bildschirmRefreshCount = 1; | |
811 for(int i=0;i<bildschirmRefreshCount;i++) | |
812 text[i] = '.'; | |
813 text[bildschirmRefreshCount++] = 0; | |
814 GFX_write_string(&FontT42,&t7surfaceR,text,4); | |
815 */ | |
816 | |
817 /* noFlyTime or DesaturationTime */ | |
818 | |
819 if((!display_count_high_time) && (stateUsed->lifeData.no_fly_time_minutes)) | |
820 { | |
821 SSurfacetime NoFlyTime = {0,0,0,0}; | |
822 t7_fill_surfacetime_helper(&NoFlyTime,stateUsed->lifeData.no_fly_time_minutes, 0); | |
823 | |
824 if(NoFlyTime.Days) | |
825 { | |
826 snprintf(text,30,"\001%02d\016\016d\017 %02d\016\016h\017",NoFlyTime.Days, NoFlyTime.Hours); | |
827 } | |
828 else | |
829 { | |
830 snprintf(text,20,"\001%02d:%02d",NoFlyTime.Hours, NoFlyTime.Minutes); | |
831 } | |
832 | |
833 GFX_write_string(&FontT54,&t7surfaceR,text,7); | |
834 | |
835 text[0] = '\001'; | |
836 text[1] = '\022'; | |
837 text[2] = '\016'; | |
838 text[3] = '\016'; | |
839 text[4] = TXT_2BYTE; | |
840 text[5] = TXT2BYTE_noFly; | |
841 text[6] = 0; | |
842 GFX_write_string(&FontT48,&t7surfaceR,text,6); | |
843 } | |
844 else | |
845 if(stateUsed->lifeData.desaturation_time_minutes) | |
846 { | |
847 SSurfacetime DesatTime = {0,0,0,0}; | |
848 t7_fill_surfacetime_helper(&DesatTime,stateUsed->lifeData.desaturation_time_minutes, 0); | |
849 | |
850 if(DesatTime.Days) | |
851 { | |
852 snprintf(text,30,"\001%02d\016\016d\017 %02d\016\016h\017",DesatTime.Days, DesatTime.Hours); | |
853 } | |
854 else | |
855 { | |
856 snprintf(text,20,"\001%02d:%02d",DesatTime.Hours, DesatTime.Minutes); | |
857 } | |
858 GFX_write_string(&FontT54,&t7surfaceR,text,7); | |
859 | |
860 text[0] = '\001'; | |
861 text[1] = '\022'; | |
862 text[2] = '\016'; | |
863 text[3] = '\016'; | |
864 text[4] = TXT_2BYTE; | |
865 text[5] = TXT2BYTE_Desaturation; | |
866 text[6] = 0; | |
867 GFX_write_string(&FontT48,&t7surfaceR,text,6); | |
868 } | |
869 | |
870 /* Time since last dive */ | |
871 if(stateUsed->lifeData.surface_time_seconds) | |
872 { | |
873 SSurfacetime SurfTime = {0,0,0,0}; | |
874 t7_fill_surfacetime_helper(&SurfTime, 0, stateUsed->lifeData.surface_time_seconds); | |
875 | |
876 if(SurfTime.Days == 0) | |
877 { | |
878 snprintf(text,20,"\001\022%02d:%02d",SurfTime.Hours, SurfTime.Minutes); | |
879 } | |
880 else | |
881 { | |
882 snprintf(text,30,"\001\022%02d\016\016d\017 %02d\016\016h\017",SurfTime.Days, SurfTime.Hours); | |
883 } | |
884 | |
885 GFX_write_string(&FontT54,&t7surfaceR,text,2); | |
886 | |
887 | |
888 text[0] = '\001'; | |
889 text[1] = '\022'; | |
890 text[2] = '\016'; | |
891 text[3] = '\016'; | |
892 text[4] = TXT_2BYTE; | |
893 text[5] = TXT2BYTE_TimeSinceLastDive; | |
894 text[6] = 0; | |
895 GFX_write_string(&FontT48,&t7surfaceR,text,1); | |
896 } | |
897 | |
898 /* beta version */ | |
899 if( firmwareDataGetPointer()->versionBeta ) | |
900 { | |
901 snprintf(text,255,"\025 BETA"); | |
902 GFX_write_string(&FontT48,&t7surfaceL,text,2); | |
903 } | |
904 | |
905 /* surface pressure and temperature */ | |
906 if(stateUsed->sensorErrorsRTE == 0) | |
907 { | |
103
f5d2f02dc73f
Generalize TEXT of pressure unit
Dmitry Romanov <kitt@bk.ru>
parents:
102
diff
changeset
|
908 snprintf(text,30,"%01.0f\022\016\016 %s", stateUsed->lifeData.pressure_surface_bar * 1000.0f,TEXT_PRESSURE_UNIT); |
38 | 909 GFX_write_string(&FontT48,&t7surfaceL,text,3); |
910 | |
911 if(settingsGetPointer()->nonMetricalSystem) | |
912 snprintf(text,40,"%01.0f\140\022\016\016 fahrenheit",unit_temperature_float(stateUsed->lifeData.temperature_celsius)); | |
913 else | |
914 snprintf(text,30,"%01.0f\140\022\016\016 celsius",stateUsed->lifeData.temperature_celsius); | |
915 GFX_write_string(&FontT48,&t7surfaceL,text,4); | |
916 } | |
917 else | |
918 { | |
103
f5d2f02dc73f
Generalize TEXT of pressure unit
Dmitry Romanov <kitt@bk.ru>
parents:
102
diff
changeset
|
919 snprintf(text,30,"ERR\022\016\016 %s",TEXT_PRESSURE_UNIT); |
38 | 920 GFX_write_string(&FontT48,&t7surfaceL,text,3); |
921 | |
922 if(settingsGetPointer()->nonMetricalSystem) | |
923 snprintf(text,40,"ERR\022\016\016 fahrenheit"); | |
924 else | |
925 snprintf(text,30,"ERR\022\016\016 celsius"); | |
926 GFX_write_string(&FontT48,&t7surfaceL,text,4); | |
927 } | |
928 | |
929 | |
930 /* gas mix and selection */ | |
931 if((stateUsed->diveSettings.diveMode == DIVEMODE_Gauge) || (stateUsed->diveSettings.diveMode == DIVEMODE_Apnea)) | |
932 { | |
933 if(stateUsed->diveSettings.diveMode == DIVEMODE_Gauge) | |
934 text[0] = TXT_Gauge; | |
935 else | |
936 text[0] = TXT_Apnoe; | |
937 | |
938 text[1] = 0; | |
939 GFX_write_string(&FontT48,&t7surfaceL,text,6); | |
940 } | |
941 else | |
942 { | |
943 text[0] = '\021'; | |
944 text[1] = '1'; | |
945 text[2] = '\177'; | |
946 text[3] = '\177'; | |
947 text[4] = 10; | |
948 text[5] = '\021'; | |
949 text[6] = '2'; | |
950 text[7] = '\177'; | |
951 text[8] = '\177'; | |
952 text[9] = 10; | |
953 text[10] = '\021'; | |
954 text[11] = '3'; | |
955 text[12] = '\177'; | |
956 text[13] = '\177'; | |
957 text[14] = 10; | |
958 text[15] = '\021'; | |
959 text[16] = '4'; | |
960 text[17] = '\177'; | |
961 text[18] = '\177'; | |
962 text[19] = 10; | |
963 text[20] = '\021'; | |
964 text[21] = '5'; | |
965 text[22] = 0; | |
966 | |
967 if(stateUsed->diveSettings.diveMode == DIVEMODE_CCR) | |
968 gasOffset = NUM_OFFSET_DILUENT; | |
969 else | |
970 gasOffset = 0; | |
971 for(int i=1;i<=5;i++) | |
972 { | |
973 if(stateUsed->diveSettings.gas[i+gasOffset].note.ub.active) | |
974 text[(i-1)*5] -= 1; | |
975 } | |
976 GFX_write_string(&FontT48,&t7surfaceL,text,6); | |
977 | |
978 | |
979 oxygen_percentage = 100; | |
980 oxygen_percentage -= stateUsed->lifeData.actualGas.nitrogen_percentage; | |
981 oxygen_percentage -= stateUsed->lifeData.actualGas.helium_percentage; | |
982 | |
983 tHome_gas_writer(oxygen_percentage,stateUsed->lifeData.actualGas.helium_percentage,&text[0]); | |
984 GFX_write_string(&FontT48,&t7surfaceL,text,7); | |
985 | |
986 actualGasID = stateUsed->lifeData.actualGas.GasIdInSettings; | |
987 /* | |
988 bottleFirstGas_bar = stateUsed->lifeData.bottle_bar[actualGasID]; | |
989 if(bottleFirstGas_bar) | |
990 { | |
991 snprintf(text,255,"%3u\022\016\016 bar",bottleFirstGas_bar); | |
992 GFX_write_string(&FontT48,&t7surfaceL,text,8); | |
993 } | |
994 */ | |
995 // after gas name :-) | |
996 if(actualGasID > gasOffset) // security | |
997 { | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
998 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
999 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1000 start.y = t7surfaceL.WindowY0 + (3 * t7surfaceL.WindowLineSpacing); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1001 start.x = t7surfaceL.WindowX0 + ((stateUsed->lifeData.actualGas.GasIdInSettings - gasOffset - 1) * 35); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1002 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1003 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1004 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1005 start.y = t7surfaceR.WindowY0 + (3 * t7surfaceR.WindowLineSpacing); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1006 start.x = t7surfaceR.WindowX0 + ((stateUsed->lifeData.actualGas.GasIdInSettings - gasOffset - 1) * 35); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1007 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1008 |
38 | 1009 stop.x = start.x + 25; |
1010 stop.y = start.y + 52; | |
1011 GFX_draw_box2(&t7screen, start, stop, CLUT_Font020, 1); | |
1012 } | |
1013 } | |
1014 | |
1015 /* dive mode */ | |
193
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1016 switch (stateUsed->diveSettings.diveMode) { |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1017 case DIVEMODE_CCR: |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1018 GFX_write_string(&FontT24, &t7c1, "\f\002" "CCR", 0); |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1019 break; |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1020 case DIVEMODE_OC: |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1021 GFX_write_string(&FontT24, &t7c1, "\f\002" "OC", 0); |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1022 break; |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1023 case DIVEMODE_Gauge: |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1024 GFX_write_string(&FontT24, &t7c1, "\f\002" "Gauge", 0); |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1025 break; |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1026 case DIVEMODE_Apnea: |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1027 GFX_write_string(&FontT24, &t7c1, "\f\002" "Apnea", 0); |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1028 break; |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1029 default: |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1030 GFX_write_string(&FontT24, &t7c1, "\f\002" "OC", 0); |
255326edf00b
Bugfix: show proper dive mode
Jan Mulder <jlmulder@xs4all.nl>
parents:
189
diff
changeset
|
1031 } |
38 | 1032 |
1033 /*battery */ | |
1034 | |
1035 text[0] = '3'; | |
1036 text[1] = '1'; | |
1037 text[2] = '1'; | |
1038 text[3] = '1'; | |
1039 text[4] = '1'; | |
1040 text[5] = '1'; | |
1041 text[6] = '1'; | |
1042 text[7] = '1'; | |
1043 text[8] = '1'; | |
1044 text[9] = '1'; | |
1045 text[10] = '1'; | |
1046 text[11] = '0'; | |
1047 text[12] = 0; | |
1048 | |
1049 for(int i=1;i<=10;i++) | |
1050 { | |
1051 if( stateUsed->lifeData.battery_charge > (9 * i)) | |
1052 text[i] += 1; | |
1053 } | |
1054 | |
1055 if(stateUsed->chargeStatus == CHARGER_off) | |
1056 { | |
1057 if(stateUsed->warnings.lowBattery) | |
1058 { | |
1059 if(warning_count_high_time) | |
1060 { | |
1061 for(int i=1;i<=10;i++) | |
1062 text[i] = '1'; | |
1063 } | |
1064 else | |
1065 { | |
1066 text[1] = '2'; | |
1067 } | |
1068 GFX_write_string_color(&Batt24,&t7batt,text,0,CLUT_WarningRed); | |
1069 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | |
1070 { | |
1071 snprintf(text,16,"\004\025\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | |
1072 if(warning_count_high_time) | |
1073 text[0] = '\a'; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1074 GFX_write_string(&FontT24,&t7voltage,text,0); |
38 | 1075 } |
1076 else | |
1077 { | |
1078 snprintf(text,6,"\f%.1fV",stateUsed->lifeData.battery_voltage); | |
1079 GFX_write_string(&FontT24,&t7voltage,text,0); | |
1080 } | |
1081 } | |
1082 else | |
1083 { | |
1084 GFX_write_string_color(&Batt24,&t7batt,text,0,CLUT_BatteryStandard); | |
1085 | |
1086 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | |
1087 { | |
1088 snprintf(text,16,"\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1089 // GFX_write_string(&FontT24,&t7batt,text,0); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1090 GFX_write_string(&FontT24,&t7voltage,text,0); |
38 | 1091 } |
1092 else | |
1093 { | |
1094 snprintf(text,6,"\f%.1fV",stateUsed->lifeData.battery_voltage); | |
1095 GFX_write_string(&FontT24,&t7voltage,text,0); | |
1096 } | |
1097 } | |
1098 } | |
1099 else | |
1100 { | |
1101 GFX_write_string_color(&Batt24,&t7batt,text,0,CLUT_BatteryCharging); | |
1102 | |
1103 switch(stateUsed->chargeStatus) | |
1104 { | |
1105 case CHARGER_running: | |
1106 default: | |
1107 color = CLUT_BatteryStandard; | |
1108 break; | |
1109 case CHARGER_complete: | |
1110 color = CLUT_BatteryCharging; | |
1111 break; | |
1112 case CHARGER_lostConnection: | |
1113 color = CLUT_BatteryProblem; | |
1114 break; | |
1115 } | |
1116 text[0] = '4'; | |
1117 text[1] = 0; | |
1118 GFX_write_string_color(&Batt24,&t7charge,text,0,color); | |
1119 } | |
1120 | |
1121 | |
1122 | |
1123 customview_warnings = t7_test_customview_warnings_surface_mode(); | |
1124 if(customview_warnings && warning_count_high_time) | |
1125 t7_show_customview_warnings_surface_mode(); | |
1126 else | |
1127 t7_refresh_customview(); | |
1128 draw_frame(0,0, CLUT_pluginboxSurface, CLUT_Font020); | |
1129 } | |
1130 | |
1131 void t7_refresh_surface_debugmode_wireless_info(void) | |
1132 { | |
1133 char text[400]; | |
1134 uint8_t colorDataLost = 0; | |
1135 int txtPointer = 0; | |
1136 uint8_t numberOfBytes = 0; | |
1137 | |
1138 GFX_DrawCfgWindow textWindow = | |
1139 { | |
1140 .Image = &t7screen, | |
1141 .WindowNumberOfTextLines = 5, | |
1142 .WindowLineSpacing = 70, | |
1143 .WindowTab = 220, | |
1144 .WindowX0 = 10, | |
1145 .WindowX1 = 790, | |
1146 .WindowY0 = 10, | |
1147 .WindowY1 = 380 | |
1148 }; | |
1149 | |
1150 Gfx_write_label_var(&t7screen, 10,600, 10,&FontT42,CLUT_DiveMainLabel,"Wireless Data"); | |
1151 | |
1152 if(stateUsed->data_old__lost_connection_to_slave) | |
1153 { | |
1154 Gfx_write_label_var(&t7screen, 600,800,10,&FontT42,CLUT_Font020,"CPU2?"); | |
1155 colorDataLost = 1; | |
1156 } | |
1157 | |
1158 txtPointer = 0; | |
1159 for(int i=0;i<4;i++) | |
1160 { | |
1161 if((!stateUsed->lifeData.wireless_data[i].ageInMilliSeconds) || colorDataLost) | |
1162 text[txtPointer++] = '\021'; | |
1163 | |
1164 numberOfBytes = stateUsed->lifeData.wireless_data[i].numberOfBytes; | |
1165 if((numberOfBytes > 0) && (numberOfBytes <= 10)) | |
1166 { | |
1167 txtPointer += snprintf(&text[txtPointer],20,"%02u s %02u\t" | |
1168 ,(stateUsed->lifeData.wireless_data[i].ageInMilliSeconds)/1000 | |
1169 ,stateUsed->lifeData.wireless_data[i].status | |
1170 ); | |
1171 if(numberOfBytes > 8) ///< lifeData.wireless_data[i].data[j] has only size of 8 | |
1172 numberOfBytes = 8; | |
1173 for(int j=0;j<numberOfBytes;j++) | |
1174 { | |
1175 txtPointer += snprintf(&text[txtPointer],4," %02X" | |
1176 ,stateUsed->lifeData.wireless_data[i].data[j] | |
1177 ); | |
1178 } | |
1179 } | |
1180 text[txtPointer++] = '\n'; | |
1181 text[txtPointer++] = '\r'; | |
1182 text[txtPointer++] = '\020'; | |
1183 text[txtPointer] = 0; | |
1184 } | |
1185 GFX_write_string(&FontT48,&textWindow,text,1); | |
1186 | |
1187 } | |
1188 | |
1189 | |
1190 void t7_refresh_surface_debugmode(void) | |
1191 { | |
1192 if(selection_customview%2 == 1) | |
1193 { | |
1194 t7_refresh_surface_debugmode_wireless_info(); | |
1195 return; | |
1196 } | |
1197 | |
1198 // could be warning, now just to set RTE variables | |
1199 DataEX_check_RTE_version__needs_update(); | |
1200 | |
1201 | |
1202 char TextL1[4*TEXTSIZE]; | |
1203 uint32_t color; | |
1204 // uint8_t gasIdFirst; | |
1205 SSettings* pSettings = settingsGetPointer(); | |
198
878dc9e0dbc5
cleanup: another cleanup session (data_exchange_main.c)
Jan Mulder <jlmulder@xs4all.nl>
parents:
196
diff
changeset
|
1206 SDataExchangeSlaveToMaster *dataIn = get_dataInPointer(); |
38 | 1207 |
1208 SWindowGimpStyle windowGimp; | |
1209 | |
1210 RTC_DateTypeDef Sdate; | |
1211 RTC_TimeTypeDef Stime; | |
1212 | |
1213 translateDate(stateUsed->lifeData.dateBinaryFormat, &Sdate); | |
1214 translateTime(stateUsed->lifeData.timeBinaryFormat, &Stime); | |
1215 | |
1216 | |
1217 if(stateUsed->data_old__lost_connection_to_slave) | |
1218 { | |
1219 Gfx_write_label_var(&t7screen, 500,800, 0,&FontT42,CLUT_DiveMainLabel,"old"); | |
198
878dc9e0dbc5
cleanup: another cleanup session (data_exchange_main.c)
Jan Mulder <jlmulder@xs4all.nl>
parents:
196
diff
changeset
|
1220 snprintf(TextL1,TEXTSIZE,"%X %X %X %X",dataIn->header.checkCode[0],dataIn->header.checkCode[1],dataIn->header.checkCode[2],dataIn->header.checkCode[3]); |
38 | 1221 Gfx_write_label_var(&t7screen, 500,800, 45,&FontT48,CLUT_Font020,TextL1); |
1222 } | |
1223 else | |
1224 if(DataEX_lost_connection_count()) | |
1225 { | |
1226 snprintf(TextL1,TEXTSIZE,"\002%i",DataEX_lost_connection_count()); | |
1227 Gfx_write_label_var(&t7screen, 600,800, 45,&FontT48,CLUT_Font020,TextL1); | |
1228 } | |
1229 | |
1230 snprintf(TextL1,TEXTSIZE,"\002%i",blockedFramesCount()); | |
1231 Gfx_write_label_var(&t7screen, 600,800, 0,&FontT48,CLUT_Font020,TextL1); | |
1232 | |
1233 if(stateUsed->lifeData.compass_DX_f | stateUsed->lifeData.compass_DY_f | stateUsed->lifeData.compass_DZ_f) | |
1234 { | |
1235 snprintf(TextL1,TEXTSIZE,"X %i",stateUsed->lifeData.compass_DX_f); | |
1236 Gfx_write_label_var(&t7screen, 0,400, 45,&FontT48,CLUT_Font020,TextL1); | |
1237 snprintf(TextL1,TEXTSIZE,"Y %i",stateUsed->lifeData.compass_DY_f); | |
1238 Gfx_write_label_var(&t7screen, 0,400,145,&FontT48,CLUT_Font020,TextL1); | |
1239 snprintf(TextL1,TEXTSIZE,"Z %i",stateUsed->lifeData.compass_DZ_f); | |
1240 Gfx_write_label_var(&t7screen, 0,400,255,&FontT48,CLUT_Font020,TextL1); | |
1241 return; | |
1242 } | |
103
f5d2f02dc73f
Generalize TEXT of pressure unit
Dmitry Romanov <kitt@bk.ru>
parents:
102
diff
changeset
|
1243 snprintf(TextL1,TEXTSIZE,"%01.0f %s",stateUsed->lifeData.pressure_ambient_bar * 1000.0f,TEXT_PRESSURE_UNIT); |
38 | 1244 Gfx_write_label_var(&t7screen, 0,400, 0,&FontT42,CLUT_DiveMainLabel,"Ambient Pressure"); |
1245 Gfx_write_label_var(&t7screen, 0,400, 45,&FontT48,CLUT_Font020,TextL1); | |
1246 | |
1247 snprintf(TextL1,TEXTSIZE,"%01.2f C",stateUsed->lifeData.temperature_celsius); | |
1248 Gfx_write_label_var(&t7screen, 0,400,100,&FontT42,CLUT_DiveMainLabel,"Temperature"); | |
1249 Gfx_write_label_var(&t7screen, 0,400,145,&FontT48,CLUT_Font020,TextL1); | |
1250 | |
1251 snprintf(TextL1,TEXTSIZE,"%03.0f %03.0f %03.0f",stateUsed->lifeData.compass_heading,stateUsed->lifeData.compass_roll,stateUsed->lifeData.compass_pitch); | |
1252 Gfx_write_label_var(&t7screen, 0,400,200,&FontT42,CLUT_DiveMainLabel,"Heading Roll Pitch"); | |
1253 Gfx_write_label_var(&t7screen, 0,400,255,&FontT48,CLUT_Font020,TextL1); | |
1254 | |
103
f5d2f02dc73f
Generalize TEXT of pressure unit
Dmitry Romanov <kitt@bk.ru>
parents:
102
diff
changeset
|
1255 snprintf(TextL1,TEXTSIZE,"%01.0f %s",stateUsed->lifeData.pressure_surface_bar * 1000.0f,TEXT_PRESSURE_UNIT); |
38 | 1256 Gfx_write_label_var(&t7screen, 0,400,310,&FontT42,CLUT_DiveMainLabel,"Surface Pressure"); |
1257 Gfx_write_label_var(&t7screen, 0,400,355,&FontT48,CLUT_Font020,TextL1); | |
1258 | |
1259 // gasIdFirst = stateUsed->lifeData.actualGas.GasIdInSettings; | |
198
878dc9e0dbc5
cleanup: another cleanup session (data_exchange_main.c)
Jan Mulder <jlmulder@xs4all.nl>
parents:
196
diff
changeset
|
1260 snprintf(TextL1,TEXTSIZE,"%u.%u",dataIn->RTE_VERSION_high,dataIn->RTE_VERSION_low); |
38 | 1261 Gfx_write_label_var(&t7screen, 320,500,100,&FontT42,CLUT_DiveMainLabel,"RTE"); |
1262 Gfx_write_label_var(&t7screen, 320,500,145,&FontT48,CLUT_Font020,TextL1); | |
1263 | |
1264 Gfx_write_label_var(&t7screen, 500,800,100,&FontT42,CLUT_DiveMainLabel,"Battery"); | |
1265 snprintf(TextL1,TEXTSIZE,"%01.4f V",stateUsed->lifeData.battery_voltage); | |
1266 Gfx_write_label_var(&t7screen, 500,800,145,&FontT48,CLUT_Font020,TextL1); | |
1267 snprintf(TextL1,TEXTSIZE,"%03.1f %%",stateUsed->lifeData.battery_charge); | |
1268 Gfx_write_label_var(&t7screen, 500,800,200,&FontT48,CLUT_Font020,TextL1); | |
1269 if(stateUsed->chargeStatus != CHARGER_off) | |
1270 { | |
1271 switch(stateUsed->chargeStatus) | |
1272 { | |
1273 case CHARGER_running: | |
1274 default: | |
1275 color = CLUT_BatteryStandard; | |
1276 break; | |
1277 case CHARGER_complete: | |
1278 color = CLUT_BatteryCharging; | |
1279 break; | |
1280 case CHARGER_lostConnection: | |
1281 color = CLUT_BatteryProblem; | |
1282 break; | |
1283 } | |
1284 TextL1[0] = '4'; | |
1285 TextL1[1] = 0; | |
1286 Gfx_write_label_var(&t7screen, 660,800,200,&Batt24,color,TextL1); | |
1287 } | |
1288 | |
1289 extern uint32_t base_tempLightLevel; | |
1290 | |
1291 snprintf(TextL1,TEXTSIZE,"# %u (%u)",stateUsed->lifeData.ambient_light_level, base_tempLightLevel); | |
1292 Gfx_write_label_var(&t7screen, 401,600,310,&FontT42,CLUT_DiveMainLabel,"Light"); | |
1293 Gfx_write_label_var(&t7screen, 401,800,355,&FontT48,CLUT_Font020,TextL1); | |
1294 | |
1295 // snprintf(TextL1,TEXTSIZE,"# %u",stateUsed->lifeData.ambient_light_level); | |
1296 // Gfx_write_label_var(&t7screen, 601,800,310,&FontT42,CLUT_DiveMainLabel,"Light"); | |
1297 // Gfx_write_label_var(&t7screen, 601,800,355,&FontT48,CLUT_Font020,TextL1); | |
1298 | |
1299 | |
1300 | |
1301 if(Sdate.Year < 15) | |
1302 { | |
1303 if(warning_count_high_time) | |
1304 { | |
1305 snprintf(TextL1,4*TEXTSIZE,"\017 %02d-%02d-%02d %02d:%02d:%02d", Sdate.Date, Sdate.Month, 2000 + Sdate.Year,Stime.Hours, Stime.Minutes, Stime.Seconds); | |
1306 Gfx_write_label_var(&t7screen, 0,800,420,&FontT48,CLUT_Font020,TextL1); | |
1307 } | |
1308 } | |
1309 else | |
1310 { | |
1311 if(pSettings->customtext[0]) | |
1312 { | |
1313 if(pSettings->customtext[59]) | |
1314 pSettings->customtext[59] = 0; | |
1315 Gfx_write_label_var(&t7screen, 0,400,420,&FontT24,CLUT_Font020,pSettings->customtext); | |
1316 } | |
1317 else | |
1318 { | |
1319 snprintf(TextL1,4*TEXTSIZE,"\017 %02d-%02d-%02d %02d:%02d:%02d Dives: %u", Sdate.Date, Sdate.Month, 2000 + Sdate.Year,Stime.Hours, Stime.Minutes, Stime.Seconds,pSettings->totalDiveCounter ); | |
1320 Gfx_write_label_var(&t7screen, 0,800,420,&FontT48,CLUT_Font020,TextL1); | |
1321 } | |
1322 } | |
1323 | |
1324 windowGimp.left = 400; | |
1325 windowGimp.top = 0; | |
1326 GFX_draw_image_monochrome(&t7screen, windowGimp, &ImgOSTC, 0); | |
1327 } | |
1328 | |
1329 /* CUSTOMVIEW | |
1330 * in the middle of the screen | |
1331 */ | |
1332 | |
1333 uint8_t t7_test_customview_warnings(void) | |
1334 { | |
1335 uint8_t count = 0; | |
1336 | |
1337 count = 0; | |
1338 count += stateUsed->warnings.decoMissed; | |
1339 count += stateUsed->warnings.ppO2Low; | |
1340 count += stateUsed->warnings.ppO2High; | |
1341 //count += stateUsed->warnings.lowBattery; | |
1342 count += stateUsed->warnings.sensorLinkLost; | |
1343 count += stateUsed->warnings.fallback; | |
1344 return count; | |
1345 } | |
1346 | |
1347 | |
1348 uint8_t t7_test_customview_warnings_surface_mode(void) | |
1349 { | |
1350 uint8_t count = 0; | |
1351 count = 0; | |
1352 count += stateUsed->cnsHigh_at_the_end_of_dive; | |
1353 count += stateUsed->decoMissed_at_the_end_of_dive; | |
1354 return count; | |
1355 } | |
1356 | |
1357 | |
1358 void t7_show_customview_warnings_surface_mode(void) | |
1359 { | |
1360 char text[256]; | |
1361 uint8_t textpointer, lineFree; | |
1362 | |
1363 text[0] = '\025'; | |
1364 text[1] = '\f'; | |
1365 text[2] = '\001'; | |
1366 text[3] = TXT_Warning; | |
1367 text[4] = 0; | |
1368 GFX_write_string(&FontT42,&t7cH,text,0); | |
1369 | |
1370 textpointer = 0; | |
1371 lineFree = 5; | |
1372 | |
1373 if(stateUsed->decoMissed_at_the_end_of_dive) | |
1374 { | |
1375 text[textpointer++] = TXT_2BYTE; | |
1376 text[textpointer++] = TXT2BYTE_WarnDecoMissed; | |
1377 text[textpointer++] = '\n'; | |
1378 text[textpointer++] = '\r'; | |
1379 text[textpointer] = 0; | |
1380 lineFree--; | |
1381 } | |
1382 | |
1383 if(stateUsed->cnsHigh_at_the_end_of_dive) | |
1384 { | |
1385 text[textpointer++] = TXT_2BYTE; | |
1386 text[textpointer++] = TXT2BYTE_WarnCnsHigh; | |
1387 text[textpointer++] = '\n'; | |
1388 text[textpointer++] = '\r'; | |
1389 text[textpointer] = 0; | |
1390 lineFree--; | |
1391 } | |
1392 if(textpointer != 0) | |
1393 GFX_write_string(&FontT48,&t7cW,text,1); | |
1394 } | |
1395 | |
1396 | |
1397 void t7_show_customview_warnings(void) | |
1398 { | |
1399 char text[256]; | |
1400 uint8_t textpointer, lineFree; | |
1401 | |
1402 text[0] = '\025'; | |
1403 text[1] = '\f'; | |
1404 text[2] = '\001'; | |
1405 text[3] = TXT_Warning; | |
1406 text[4] = 0; | |
1407 GFX_write_string(&FontT42,&t7cH,text,0); | |
1408 | |
1409 textpointer = 0; | |
1410 lineFree = 5; | |
1411 | |
1412 if(lineFree && stateUsed->warnings.decoMissed) | |
1413 { | |
1414 text[textpointer++] = TXT_2BYTE; | |
1415 text[textpointer++] = TXT2BYTE_WarnDecoMissed; | |
1416 text[textpointer++] = '\n'; | |
1417 text[textpointer++] = '\r'; | |
1418 text[textpointer] = 0; | |
1419 lineFree--; | |
1420 } | |
1421 | |
1422 if(lineFree && stateUsed->warnings.fallback) | |
1423 { | |
1424 text[textpointer++] = TXT_2BYTE; | |
1425 text[textpointer++] = TXT2BYTE_WarnFallback; | |
1426 text[textpointer++] = '\n'; | |
1427 text[textpointer++] = '\r'; | |
1428 text[textpointer] = 0; | |
1429 lineFree--; | |
1430 } | |
1431 | |
1432 if(lineFree && stateUsed->warnings.ppO2Low) | |
1433 { | |
1434 text[textpointer++] = TXT_2BYTE; | |
1435 text[textpointer++] = TXT2BYTE_WarnPPO2Low; | |
1436 text[textpointer++] = '\n'; | |
1437 text[textpointer++] = '\r'; | |
1438 text[textpointer] = 0; | |
1439 lineFree--; | |
1440 } | |
1441 | |
1442 if(lineFree && stateUsed->warnings.ppO2High) | |
1443 { | |
1444 text[textpointer++] = TXT_2BYTE; | |
1445 text[textpointer++] = TXT2BYTE_WarnPPO2High; | |
1446 text[textpointer++] = '\n'; | |
1447 text[textpointer++] = '\r'; | |
1448 text[textpointer] = 0; | |
1449 lineFree--; | |
1450 } | |
1451 | |
1452 if(lineFree && stateUsed->warnings.sensorLinkLost) | |
1453 { | |
1454 text[textpointer++] = TXT_2BYTE; | |
1455 text[textpointer++] = TXT2BYTE_WarnSensorLinkLost; | |
1456 text[textpointer++] = '\n'; | |
1457 text[textpointer++] = '\r'; | |
1458 text[textpointer] = 0; | |
1459 lineFree--; | |
1460 } | |
1461 /* | |
1462 if(lineFree && stateUsed->warnings.lowBattery) | |
1463 { | |
1464 text[textpointer++] = TXT_2BYTE; | |
1465 text[textpointer++] = TXT2BYTE_WarnBatteryLow; | |
1466 text[textpointer++] = '\n'; | |
1467 text[textpointer++] = '\r'; | |
1468 text[textpointer] = 0; | |
1469 lineFree--; | |
1470 } | |
1471 */ | |
1472 GFX_write_string(&FontT48,&t7cW,text,1); | |
1473 } | |
1474 | |
1475 | |
1476 void t7_set_customview_to_primary(void) | |
1477 { | |
1478 if(stateUsed->mode == MODE_DIVE) | |
1479 selection_customview = settingsGetPointer()->tX_customViewPrimary; | |
1480 } | |
1481 | |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1482 void t7_change_customview(uint8_t action) |
38 | 1483 { |
1484 const uint8_t *pViews; | |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1485 uint8_t *pStartView,*pCurView, *pLastView; |
38 | 1486 _Bool cv_disabled = 0; |
1487 | |
1488 if(stateUsed->mode == MODE_DIVE) | |
1489 pViews = customviewsDive; | |
1490 else | |
1491 pViews = customviewsSurface; | |
1492 | |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1493 pStartView = pViews; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1494 /* set pointer to currently selected view and count number of entries */ |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1495 while((*pViews != CVIEW_END)) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1496 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1497 if (*pViews == selection_customview) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1498 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1499 pCurView = pViews; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1500 } |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1501 pViews++; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1502 } |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1503 pLastView = pViews; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1504 pViews = pCurView; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1505 |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1506 if((action == ACTION_BUTTON_ENTER) || (action == ACTION_SHAKE_POS)) |
38 | 1507 { |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1508 if(*pViews < CVIEW_END) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1509 pViews++; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1510 |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1511 if(*pViews == CVIEW_END) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1512 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1513 pViews = pStartView; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1514 } |
38 | 1515 } |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1516 else |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1517 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1518 pViews--; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1519 if(pViews = pStartView) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1520 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1521 pViews = pLastView - 1; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1522 } |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1523 } |
38 | 1524 if(stateUsed->mode == MODE_DIVE) |
1525 { | |
1526 do | |
1527 { | |
1528 cv_disabled = 0; | |
1529 for(int i=0;i<6;i++) | |
1530 { | |
210
b2a9e9b02df0
New feature: make selected customviews persistent
Jan Mulder <jlmulder@xs4all.nl>
parents:
198
diff
changeset
|
1531 if((*pViews == cv_changelist[i]) && !CHECK_BIT_THOME(settingsGetPointer()->cv_configuration, cv_changelist[i])) |
38 | 1532 { |
1533 cv_disabled = 1; | |
1534 break; | |
1535 } | |
1536 } | |
211
85bd5fea5e08
New feature: do not show sensor customviews when no sensors attached
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
1537 |
85bd5fea5e08
New feature: do not show sensor customviews when no sensors attached
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
1538 if ((*pViews == CVIEW_sensors || *pViews == CVIEW_sensors_mV) && |
85bd5fea5e08
New feature: do not show sensor customviews when no sensors attached
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
1539 stateUsed->diveSettings.ppo2sensors_deactivated) |
85bd5fea5e08
New feature: do not show sensor customviews when no sensors attached
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
1540 { |
85bd5fea5e08
New feature: do not show sensor customviews when no sensors attached
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
1541 cv_disabled = 1; |
85bd5fea5e08
New feature: do not show sensor customviews when no sensors attached
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
1542 } |
85bd5fea5e08
New feature: do not show sensor customviews when no sensors attached
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
1543 |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1544 if(cv_disabled) /* view is disabled => jump to next view */ |
38 | 1545 { |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1546 if((action == ACTION_BUTTON_ENTER) || (action == ACTION_SHAKE_POS)) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1547 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1548 pViews++; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1549 if(*pViews == CVIEW_END) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1550 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1551 pViews = pStartView; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1552 } |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1553 } |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1554 else |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1555 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1556 pViews--; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1557 if(pViews == pStartView) |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1558 { |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1559 pViews = pLastView - 1; |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1560 } |
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1561 } |
38 | 1562 } |
1563 } while(cv_disabled); | |
1564 } | |
1565 selection_customview = *pViews; | |
1566 } | |
1567 | |
1568 | |
1569 uint8_t t7_get_length_of_customtext(void) | |
1570 { | |
1571 uint8_t i = 0; | |
1572 settingsGetPointer()->customtext[60-1] = 0; | |
1573 while(settingsGetPointer()->customtext[i] > 0) | |
1574 i++; | |
1575 return i; | |
1576 } | |
1577 | |
1578 | |
1579 void t7_refresh_customview(void) | |
1580 { | |
1581 | |
1582 char text[256]; | |
1583 uint16_t textpointer = 0; | |
1584 int16_t start; | |
51
8f8ea3a32e82
Resolved warnings pointing to possible invalid memory access
Ideenmodellierer
parents:
38
diff
changeset
|
1585 uint8_t lineCountCustomtext = 0; |
38 | 1586 int16_t shiftWindowY0; |
1587 RTC_DateTypeDef Sdate; | |
1588 RTC_TimeTypeDef Stime; | |
1589 float fPpO2limitHigh, fPpO2limitLow, fPpO2ofGasAtThisDepth; // CVIEW_Gaslist | |
1590 const SGasLine * pGasLine; // CVIEW_Gaslist | |
1591 uint8_t oxygen, helium; // CVIEW_Gaslist | |
1592 float depth, surface, fraction_nitrogen, fraction_helium, ead, end; // CVIEW_EADTime | |
1593 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1594 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1595 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1596 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1597 if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1598 t7_change_customview(ACTION_BUTTON_ENTER); |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1599 if((selection_customview == CVIEW_sensors_mV) &&(stateUsed->diveSettings.ccrOption == 0)) |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1600 t7_change_customview(ACTION_BUTTON_ENTER); |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1601 if((selection_customview == CVIEW_sensors) &&(stateUsed->diveSettings.ccrOption == 0)) |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
247
diff
changeset
|
1602 t7_change_customview(ACTION_BUTTON_ENTER); |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1603 |
38 | 1604 switch(selection_customview) |
1605 { | |
1606 case CVIEW_noneOrDebug: | |
1607 if(settingsGetPointer()->showDebugInfo) | |
1608 { | |
1609 // header | |
1610 strcpy(text,"\032\f\001Debug"); | |
1611 GFX_write_string(&FontT42,&t7cH,text,0); | |
1612 // content | |
1613 t7_debug(); | |
1614 } | |
1615 break; | |
1616 | |
1617 case CVIEW_SummaryOfLeftCorner: | |
1618 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Summary); | |
1619 GFX_write_string(&FontT42,&t7cH,text,0); | |
1620 // content | |
1621 t7_SummaryOfLeftCorner(); | |
1622 break; | |
1623 | |
1624 case CVIEW_CompassDebug: | |
1625 snprintf(text,100,"\032\f\001Compass raw"); | |
1626 GFX_write_string(&FontT42,&t7cH,text,0); | |
1627 /* | |
1628 pStateReal->lifeData.compass_heading = dataIn.data[dataIn.boolCompassData].compass_heading; | |
1629 pStateReal->lifeData.compass_roll = dataIn.data[dataIn.boolCompassData].compass_roll; | |
1630 pStateReal->lifeData.compass_pitch = dataIn.data[dataIn.boolCompassData].compass_pitch; | |
1631 | |
1632 pStateReal->lifeData.compass_DX_f = dataIn.data[dataIn.boolCompassData].compass_DX_f; | |
1633 pStateReal->lifeData.compass_DY_f = dataIn.data[dataIn.boolCompassData].compass_DY_f; | |
1634 pStateReal->lifeData.compass_DZ_f = dataIn.data[dataIn.boolCompassData].compass_DZ_f; | |
1635 */ | |
1636 snprintf(text,255,"%1.1f\n\r%1.1f\n\r%1.1f\n\r%i\n\r%i\n\r%i" | |
1637 ,stateUsed->lifeData.compass_heading | |
1638 ,stateUsed->lifeData.compass_roll | |
1639 ,stateUsed->lifeData.compass_pitch | |
1640 ,stateUsed->lifeData.compass_DX_f | |
1641 ,stateUsed->lifeData.compass_DY_f | |
1642 ,stateUsed->lifeData.compass_DZ_f | |
1643 ); | |
1644 | |
1645 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
1646 t7cY0free.WindowLineSpacing = 48; | |
1647 t7cY0free.WindowNumberOfTextLines = 6; | |
1648 GFX_write_string(&FontT42, &t7cY0free, text, 1); | |
1649 break; | |
1650 | |
1651 case CVIEW_Hello: | |
1652 t7_logo_OSTC(); | |
1653 t7cC.WindowLineSpacing = 53; | |
1654 t7cC.WindowNumberOfTextLines = 5; | |
1655 shiftWindowY0 = 18; | |
1656 | |
1657 if(updateNecessary)//if(DataEX_check_RTE_version__needs_update() || font_update_required()) | |
1658 { | |
1659 if(warning_count_high_time) | |
1660 { | |
1661 shiftWindowY0 += 20; | |
1662 t7cC.WindowY0 -= shiftWindowY0; | |
1663 textpointer = 0; | |
1664 text[textpointer++] = TXT_2BYTE; | |
1665 text[textpointer++] = TXT2BYTE_PleaseUpdate; | |
1666 text[textpointer++] = '\n'; | |
1667 text[textpointer++] = '\r'; | |
1668 if(DataEX_check_RTE_version__needs_update()) | |
1669 { | |
1670 text[textpointer++] = TXT_2BYTE; | |
1671 text[textpointer++] = TXT2BYTE_RTE; | |
1672 text[textpointer++] = '\n'; | |
1673 text[textpointer++] = '\r'; | |
1674 } | |
1675 if(font_update_required()) | |
1676 { | |
1677 text[textpointer++] = TXT_2BYTE; | |
1678 text[textpointer++] = TXT2BYTE_Fonts; | |
1679 } | |
1680 text[textpointer++] = 0; | |
1681 GFX_write_string_color(&FontT42,&t7cC,text,1, CLUT_WarningRed); | |
1682 t7cC.WindowY0 += shiftWindowY0; | |
1683 } | |
1684 t7cC.WindowNumberOfTextLines = 3; | |
1685 } | |
1686 else // customtext | |
1687 { | |
1688 lineCountCustomtext = t7_customtextPrepare(text); | |
1689 if(lineCountCustomtext <= 2) | |
1690 shiftWindowY0 += 20+26; // nach unten | |
1691 else | |
1692 if(lineCountCustomtext <= 3) | |
1693 shiftWindowY0 += 20; // nach unten | |
1694 t7cC.WindowY0 -= shiftWindowY0; | |
1695 | |
1696 GFX_write_string(&FontT42,&t7cC,text,1); | |
1697 t7cC.WindowNumberOfTextLines = 3; | |
1698 t7cC.WindowY0 += shiftWindowY0; | |
1699 } | |
1700 if(lineCountCustomtext <= 4) | |
1701 { | |
1702 snprintf(text,100,"\001#%0u V%01u.%01u.%01u", | |
1703 settingsGetPointer()->serialLow + (256 * settingsGetPointer()->serialHigh), | |
1704 firmwareDataGetPointer()->versionFirst, | |
1705 firmwareDataGetPointer()->versionSecond, | |
1706 firmwareDataGetPointer()->versionThird | |
1707 ); | |
1708 GFX_write_string(&FontT24,&t7cC,text,0); | |
1709 } | |
1710 break; | |
1711 | |
1712 case CVIEW_Gaslist: | |
1713 // a lot of code taken from tMenuGas.c | |
1714 // header | |
1715 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Gaslist); | |
1716 GFX_write_string(&FontT42,&t7cH,text,0); | |
1717 // content | |
1718 textpointer = 0; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1719 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1720 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1721 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1722 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1723 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1724 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1725 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1726 t7cY0free.WindowY1 = 400; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1727 } |
38 | 1728 t7cY0free.WindowLineSpacing = 48+9; |
1729 t7cY0free.WindowNumberOfTextLines = 5; // NUM_GASES == 5 | |
1730 t7cY0free.WindowTab = 420; | |
1731 | |
1732 pGasLine = settingsGetPointer()->gas; | |
1733 if(actualLeftMaxDepth(stateUsed)) | |
1734 fPpO2limitHigh = (float)(settingsGetPointer()->ppO2_max_deco) / 100; | |
1735 else | |
1736 fPpO2limitHigh = (float)(settingsGetPointer()->ppO2_max_std) / 100; | |
1737 fPpO2limitLow = (float)(settingsGetPointer()->ppO2_min) / 100; | |
1738 for(int gasId=1;gasId<=NUM_GASES;gasId++) | |
1739 { | |
1740 textpointer = 0; | |
1741 fPpO2ofGasAtThisDepth = (stateUsed->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * pGasLine[gasId].oxygen_percentage / 100; | |
1742 if(pGasLine[gasId].note.ub.active == 0) | |
1743 strcpy(&text[textpointer++],"\021"); | |
1744 else if((fPpO2ofGasAtThisDepth > fPpO2limitHigh) || (fPpO2ofGasAtThisDepth < fPpO2limitLow)) | |
1745 strcpy(&text[textpointer++],"\025"); | |
1746 else | |
1747 strcpy(&text[textpointer++],"\030"); | |
1748 | |
1749 text[textpointer++] = ' '; | |
1750 oxygen = pGasLine[gasId].oxygen_percentage; | |
1751 helium = pGasLine[gasId].helium_percentage; | |
1752 textpointer += write_gas(&text[textpointer], oxygen, helium); | |
1753 // Wechseltiefe | |
1754 if(pGasLine[gasId].depth_meter) | |
1755 { | |
1756 textpointer += snprintf(&text[textpointer],7,"\t%u %c%c",unit_depth_integer(pGasLine[gasId].depth_meter), unit_depth_char1(), unit_depth_char2()); | |
1757 } | |
1758 GFX_write_string(&FontT42, &t7cY0free, text, gasId); | |
1759 } | |
1760 break; | |
1761 | |
1762 case CVIEW_EADTime: | |
1763 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Info ); | |
1764 GFX_write_string(&FontT42,&t7cH,text,0); | |
1765 textpointer = 0; | |
1766 | |
1767 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1768 if(pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1769 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1770 t7cY0free.WindowY1 = 400; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1771 } |
38 | 1772 t7cY0free.WindowLineSpacing = 48; |
1773 t7cY0free.WindowNumberOfTextLines = 6; | |
1774 | |
1775 // time | |
1776 snprintf(text,100,"\032\001%c%c",TXT_2BYTE,TXT2BYTE_Clock ); | |
1777 GFX_write_string(&FontT42, &t7cY0free, text, 1); | |
1778 | |
1779 translateDate(stateRealGetPointer()->lifeData.dateBinaryFormat, &Sdate); | |
1780 translateTime(stateRealGetPointer()->lifeData.timeBinaryFormat, &Stime); | |
1781 if(Stime.Seconds % 2) | |
1782 textpointer += snprintf(&text[textpointer],100,"\030\001%02d:%02d",Stime.Hours,Stime.Minutes); | |
1783 else | |
1784 textpointer += snprintf(&text[textpointer],100,"\030\001%02d\031:\030%02d",Stime.Hours,Stime.Minutes); | |
1785 GFX_write_string(&FontT42, &t7cY0free, text, 2); | |
1786 | |
1787 // EAD / END | |
1788 // The equivalent air depth can be calculated for depths in metres as follows: | |
1789 // EAD = (Depth + 10) � Fraction of N2 / 0.79 - 10 (wikipedia) | |
1790 // The equivalent narcotic depth can be calculated for depths in metres as follows: | |
1791 // END = (Depth + 10) � (1 - Fraction of helium) - 10 (wikipedia) | |
1792 decom_get_inert_gases((float)stateUsed->lifeData.pressure_ambient_bar,&(stateUsed->lifeData.actualGas),&fraction_nitrogen,&fraction_helium); | |
1793 depth = stateUsed->lifeData.pressure_ambient_bar; | |
1794 surface = stateUsed->lifeData.pressure_surface_bar; | |
1795 ead = 10.f * ((depth * fraction_nitrogen/0.79f) - surface); | |
1796 end = 10.0f * ((depth * (1.f - fraction_helium)) - surface); | |
1797 if(ead < 0) | |
1798 ead = 0; | |
1799 if(end < 0) | |
1800 end = 0; | |
1801 | |
1802 snprintf(text,100,"\032\001EAD"); | |
1803 GFX_write_string(&FontT42, &t7cY0free, text, 3); | |
1804 snprintf(text,100,"\030\001%01.1f %c%c" | |
1805 , unit_depth_float(ead) | |
1806 , unit_depth_char1() | |
1807 , unit_depth_char2() | |
1808 ); | |
1809 GFX_write_string(&FontT42, &t7cY0free, text, 4); | |
1810 | |
1811 snprintf(text,100,"\032\001END"); | |
1812 GFX_write_string(&FontT42, &t7cY0free, text, 5); | |
1813 snprintf(text,100,"\030\001%01.1f %c%c" | |
1814 , unit_depth_float(ead) | |
1815 , unit_depth_char1() | |
1816 , unit_depth_char2() | |
1817 ); | |
1818 GFX_write_string(&FontT42, &t7cY0free, text, 6); | |
1819 break; | |
1820 | |
1821 case CVIEW_Profile: | |
1822 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Profile); | |
1823 GFX_write_string(&FontT42,&t7cH,text,0); | |
1824 textpointer = 0; | |
1825 t7_miniLiveLogProfile(); | |
1826 break; | |
1827 | |
1828 case CVIEW_Tissues: | |
1829 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Tissues); | |
1830 GFX_write_string(&FontT42,&t7cH,text,0); | |
1831 textpointer = 0; | |
1832 t7_tissues(stateUsed); | |
1833 break; | |
1834 | |
1835 case CVIEW_sensors: | |
1836 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_O2monitor); | |
1837 GFX_write_string(&FontT42,&t7cH,text,0); | |
1838 textpointer = 0; | |
1839 text[textpointer++] = '\030'; // main color | |
1840 for(int i=0;i<3;i++) | |
1841 { | |
1842 if(stateUsed->diveSettings.ppo2sensors_deactivated & (1<<i)) | |
1843 { | |
1844 text[textpointer++] = '\031'; // labelcolor | |
1845 text[textpointer++] = '\001'; | |
1846 text[textpointer++] = '-'; | |
1847 text[textpointer++] = '\n'; | |
1848 text[textpointer++] = '\r'; | |
1849 text[textpointer++] = '\030'; // main color | |
1850 text[textpointer] = 0; | |
1851 } | |
1852 else | |
1853 { | |
1854 if(stateUsed->warnings.sensorOutOfBounds[i]) | |
1855 text[textpointer++] = '\025'; // Warning Red | |
1856 textpointer += snprintf(&text[textpointer],100,"\001%01.2f\n\r\030",stateUsed->lifeData.ppO2Sensor_bar[i]); | |
1857 } | |
1858 } | |
1859 t7cC.WindowLineSpacing = 95; | |
1860 t7cC.WindowNumberOfTextLines = 3; | |
1861 text[textpointer] = 0; | |
1862 GFX_write_string(&FontT105,&t7cC,text,1); | |
1863 break; | |
1864 | |
1865 case CVIEW_sensors_mV: | |
1866 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_O2voltage); | |
1867 GFX_write_string(&FontT42,&t7cH,text,0); | |
1868 textpointer = 0; | |
1869 text[textpointer++] = '\030'; | |
1870 for(int i=0;i<3;i++) | |
1871 { | |
1872 if(stateUsed->diveSettings.ppo2sensors_deactivated & (1<<i)) | |
1873 { | |
1874 text[textpointer++] = '\031'; | |
1875 text[textpointer++] = '\001'; | |
1876 text[textpointer++] = '-'; | |
1877 text[textpointer++] = '\n'; | |
1878 text[textpointer++] = '\r'; | |
1879 text[textpointer++] = '\030'; | |
1880 text[textpointer] = 0; | |
1881 } | |
1882 else | |
1883 { | |
1884 if(stateUsed->warnings.sensorOutOfBounds[i]) | |
1885 text[textpointer++] = '\025'; | |
1886 textpointer += snprintf(&text[textpointer],100,"\001%01.1f mV\n\r\030",(stateUsed->lifeData.sensorVoltage_mV[i])); | |
1887 } | |
1888 } | |
1889 t7cC.WindowLineSpacing = 95; | |
1890 t7cC.WindowNumberOfTextLines = 3; | |
1891 text[textpointer] = 0; | |
1892 GFX_write_string(&FontT48,&t7cC,text,1); | |
1893 break; | |
1894 | |
1895 case CVIEW_Compass: | |
1896 default: | |
1897 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE, TXT2BYTE_Compass); | |
1898 GFX_write_string(&FontT42,&t7cH,text,0); | |
1899 t7_compass((uint16_t)stateUsed->lifeData.compass_heading, stateUsed->diveSettings.compassHeading); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1900 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1901 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1902 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1903 t7cY0free.WindowX0 += 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1904 t7cY0free.WindowY0 = 230; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1905 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1906 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1907 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1908 t7cY0free.WindowX0 -= 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1909 t7cY0free.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1910 t7cY0free.WindowY1 = 250; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1911 } |
38 | 1912 snprintf(text,100,"\030\001%03i`",(uint16_t)stateUsed->lifeData.compass_heading); |
1913 GFX_write_string(&FontT54,&t7cY0free,text,0); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1914 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1915 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1916 t7cY0free.WindowX0 -= 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1917 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1918 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1919 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1920 t7cY0free.WindowX0 += 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1921 } |
38 | 1922 break; |
1923 | |
1924 case CVIEW_Decolist: | |
1925 snprintf(text,100,"\032\f\001 %c%c", TXT_2BYTE, TXT2BYTE_Decolist); | |
1926 GFX_write_string(&FontT42,&t7cH,text,0); | |
1927 | |
1928 const SDecoinfo * pDecoinfo; | |
1929 uint8_t depthNext, depthLast, depthSecond, depthInc; | |
1930 | |
1931 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
1932 pDecoinfo = &stateUsed->decolistBuehlmann; | |
1933 else | |
1934 pDecoinfo = &stateUsed->decolistVPM; | |
1935 | |
1936 depthLast = (uint8_t)(stateUsed->diveSettings.last_stop_depth_bar * 10); | |
1937 depthSecond = (uint8_t)(stateUsed->diveSettings.input_second_to_last_stop_depth_bar * 10); | |
1938 depthInc = (uint8_t)(stateUsed->diveSettings.input_next_stop_increment_depth_bar * 10); | |
1939 | |
1940 if(settingsGetPointer()->nonMetricalSystem) | |
1941 { | |
1942 depthLast = (uint8_t)unit_depth_integer(depthLast); | |
1943 depthSecond = (uint8_t)unit_depth_integer(depthSecond); | |
1944 depthInc = (uint8_t)unit_depth_integer(depthInc); | |
1945 } | |
1946 | |
1947 for(start=DECOINFO_STRUCT_MAX_STOPS-1; start>0; start--) | |
1948 if(pDecoinfo->output_stop_length_seconds[start]) break; | |
1949 start -= 6; | |
1950 if(start < 0) start = 0; | |
1951 | |
1952 textpointer = 0; | |
1953 for(int i=start;i<6+start;i++) | |
1954 { | |
1955 if(i == 0) | |
1956 depthNext = depthLast; | |
1957 else | |
1958 depthNext = depthSecond + (( i - 1 )* depthInc); | |
1959 | |
1960 if(pDecoinfo->output_stop_length_seconds[i]) | |
1961 textpointer += snprintf(&text[textpointer],20,"\030\034 %2u\016\016%c%c\017%3i'\n\r",depthNext, unit_depth_char1(), unit_depth_char2(), (pDecoinfo->output_stop_length_seconds[i]+59)/60); | |
1962 else | |
1963 textpointer += snprintf(&text[textpointer],20,"\031\034 %2u\016\016%c%c\017\n\r",depthNext, unit_depth_char1(), unit_depth_char2()); | |
1964 if(textpointer > 200) break; | |
1965 } | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1966 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1967 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1968 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1969 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1970 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1971 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1972 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1973 t7cY0free.WindowY1 = 400; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1974 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1975 |
38 | 1976 t7cY0free.WindowLineSpacing = 48; |
1977 t7cY0free.WindowNumberOfTextLines = 6; | |
1978 GFX_write_string(&FontT42, &t7cY0free, text, 1); | |
1979 break; | |
1980 } | |
1981 } | |
1982 | |
1983 | |
1984 | |
1985 /* DIVE MODE | |
1986 */ | |
1987 void t7_refresh_divemode(void) | |
1988 { | |
1989 char TextL1[TEXTSIZE]; | |
1990 char TextL2[TEXTSIZE]; | |
1991 | |
1992 char TextR1[TEXTSIZE]; | |
1993 char TextR2[TEXTSIZE]; | |
1994 char TextR3[TEXTSIZE]; | |
1995 | |
1996 char TextC1[2*TEXTSIZE]; | |
1997 char TextC2[TEXTSIZE]; | |
1998 uint8_t textPointer; | |
1999 | |
2000 point_t start, stop; | |
2001 uint8_t color; | |
2002 int textlength; | |
2003 | |
2004 uint16_t nextstopLengthSeconds = 0; | |
2005 uint8_t nextstopDepthMeter = 0; | |
2006 uint8_t oxygen_percentage = 0; | |
2007 SDivetime Divetime = {0,0,0, 0}; | |
2008 SDivetime SafetyStopTime = {0,0,0,0}; | |
2009 SDivetime TimeoutTime = {0,0,0,0}; | |
2010 uint8_t customview_warnings = 0; | |
2011 const SDecoinfo * pDecoinfo; | |
2012 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2013 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2014 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2015 |
38 | 2016 Divetime.Total = stateUsed->lifeData.dive_time_seconds_without_surface_time; |
2017 Divetime.Minutes = Divetime.Total / 60; | |
2018 Divetime.Seconds = Divetime.Total - ( Divetime.Minutes * 60 ); | |
2019 | |
2020 SafetyStopTime.Total = timer_Safetystop_GetCountDown(); | |
2021 SafetyStopTime.Minutes = SafetyStopTime.Total / 60; | |
2022 SafetyStopTime.Seconds = SafetyStopTime.Total - (SafetyStopTime.Minutes * 60); | |
2023 | |
2024 TimeoutTime.Total = settingsGetPointer()->timeoutDiveReachedZeroDepth - stateUsed->lifeData.counterSecondsShallowDepth; | |
2025 if(TimeoutTime.Total > settingsGetPointer()->timeoutDiveReachedZeroDepth) | |
2026 { | |
2027 TimeoutTime.Total = 0; | |
2028 } | |
2029 TimeoutTime.Minutes = TimeoutTime.Total / 60; | |
2030 TimeoutTime.Seconds = TimeoutTime.Total - (TimeoutTime.Minutes * 60); | |
2031 | |
2032 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
2033 pDecoinfo = &stateUsed->decolistBuehlmann; | |
2034 else | |
2035 pDecoinfo = &stateUsed->decolistVPM; | |
2036 | |
2037 if(pDecoinfo->output_time_to_surface_seconds) | |
2038 { | |
2039 tHome_findNextStop(pDecoinfo->output_stop_length_seconds, &nextstopDepthMeter, &nextstopLengthSeconds); | |
2040 } | |
2041 else | |
2042 { | |
2043 nextstopDepthMeter = 0; | |
2044 nextstopLengthSeconds = 0; | |
2045 } | |
2046 | |
2047 /* depth */ | |
174
ecb71521d004
Bugfix: make max depth move with current depth (part 2)
Jan Mulder <jlmulder@xs4all.nl>
parents:
166
diff
changeset
|
2048 float depth = unit_depth_float(stateUsed->lifeData.depth_meter); |
38 | 2049 |
2050 if(depth <= 0.3f) | |
2051 depth = 0; | |
2052 | |
2053 if(settingsGetPointer()->nonMetricalSystem) | |
2054 snprintf(TextL1,TEXTSIZE,"\032\f[feet]"); | |
2055 else | |
2056 snprintf(TextL1,TEXTSIZE,"\032\f%c",TXT_Depth); | |
2057 GFX_write_string(&FontT24,&t7l1,TextL1,0); | |
2058 | |
2059 if((stateUsed->lifeData.ascent_rate_meter_per_min > 8) || (stateUsed->lifeData.ascent_rate_meter_per_min < -10)) | |
2060 { | |
2061 snprintf(TextL1,TEXTSIZE,"\f\002%.0f %c%c/min " | |
2062 , unit_depth_float(stateUsed->lifeData.ascent_rate_meter_per_min) | |
2063 , unit_depth_char1() | |
2064 , unit_depth_char2() | |
2065 ); | |
2066 GFX_write_string(&FontT24,&t7l1,TextL1,0); | |
2067 } | |
2068 | |
2069 if( depth < 100) | |
2070 snprintf(TextL1,TEXTSIZE,"\020%01.1f",depth); | |
2071 else | |
2072 snprintf(TextL1,TEXTSIZE,"\020%01.0f",depth); | |
2073 | |
2074 t7_colorscheme_mod(TextL1); | |
2075 GFX_write_string(&FontT144,&t7l1,TextL1,1); | |
2076 | |
2077 /* max depth */ | |
2078 snprintf(TextL2,TEXTSIZE,"\032\f%c",TXT_MaxDepth); | |
2079 GFX_write_string(&FontT42,&t7l2,TextL2,0); | |
2080 | |
2081 if(unit_depth_float(stateUsed->lifeData.max_depth_meter) < 100) | |
2082 snprintf(TextL2,TEXTSIZE,"\020%01.1f",unit_depth_float(stateUsed->lifeData.max_depth_meter)); | |
2083 else | |
2084 snprintf(TextL2,TEXTSIZE,"\020%01.0f",unit_depth_float(stateUsed->lifeData.max_depth_meter)); | |
2085 | |
2086 t7_colorscheme_mod(TextL2); | |
2087 GFX_write_string(&FontT105,&t7l2,TextL2,1); | |
2088 | |
187
485c5135cf7f
cleanup: forgotten cleanup from 9da7dd50e2ec
Jan Mulder <jlmulder@xs4all.nl>
parents:
178
diff
changeset
|
2089 /* ascent rate graph */ |
38 | 2090 if(stateUsed->lifeData.ascent_rate_meter_per_min > 0) |
2091 { | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2092 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2093 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2094 start.y = t7l1.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2095 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2096 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2097 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2098 start.y = t7l3.WindowY0 - 25; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2099 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2100 |
38 | 2101 for(int i = 0; i<4;i++) |
2102 { | |
2103 start.y += 5*6; | |
2104 stop.y = start.y; | |
2105 start.x = CUSTOMBOX_LINE_LEFT - 1; | |
2106 stop.x = start.x - 17; | |
2107 GFX_draw_line(&t7screen, start, stop, 0); | |
2108 // start.x = CUSTOMBOX_LINE_RIGHT + 2; old right too | |
2109 // stop.x = start.x + 17; | |
2110 // GFX_draw_line(&t7screen, start, stop, 0); | |
2111 } | |
2112 // new thick bar design Sept. 2015 | |
2113 start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 3 - 5; | |
2114 stop.x = start.x; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2115 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2116 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2117 start.y = t7l1.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2118 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2119 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2120 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2121 start.y = t7l3.WindowY0 - 25; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2122 } |
38 | 2123 stop.y = start.y + (uint16_t)(stateUsed->lifeData.ascent_rate_meter_per_min * 6); |
2124 stop.y -= 3; // wegen der Liniendicke von 12 anstelle von 9 | |
2125 if(stop.y >= 470) | |
2126 stop.y = 470; | |
2127 start.y += 7; // starte etwas weiter oben | |
2128 if(stateUsed->lifeData.ascent_rate_meter_per_min <= 10) | |
2129 color = CLUT_EverythingOkayGreen; | |
2130 else | |
2131 if(stateUsed->lifeData.ascent_rate_meter_per_min <= 15) | |
2132 color = CLUT_WarningYellow; | |
2133 else | |
2134 color = CLUT_WarningRed; | |
2135 | |
2136 GFX_draw_thick_line(12,&t7screen, start, stop, color); | |
2137 } | |
2138 //snprintf(TextL2,TEXTSIZE,"\f%.1f m/min",stateUsed->lifeData.ascent_rate_meter_per_min); | |
2139 | |
2140 /* divetime */ | |
2141 if(stateUsed->lifeData.counterSecondsShallowDepth) | |
2142 { | |
2143 snprintf(TextR1,TEXTSIZE,"\f\002\136 %u:%02u",TimeoutTime.Minutes, TimeoutTime.Seconds); | |
2144 GFX_write_string(&FontT42,&t7r1,TextR1,0); | |
2145 } | |
2146 else | |
2147 { | |
2148 snprintf(TextR1,TEXTSIZE,"\032\f\002%c",TXT_Divetime); | |
2149 GFX_write_string(&FontT42,&t7r1,TextR1,0); | |
2150 } | |
2151 | |
2152 if(Divetime.Minutes < 1000) | |
2153 snprintf(TextR1,TEXTSIZE,"\020\016\002%u:%02u",Divetime.Minutes, Divetime.Seconds); | |
2154 else | |
2155 snprintf(TextR1,TEXTSIZE,"\020\016\002%u'",Divetime.Minutes); | |
2156 t7_colorscheme_mod(TextR1); | |
2157 GFX_write_string(&FontT105,&t7r1,TextR1,1); | |
2158 | |
2159 /* next deco stop */ | |
2160 if(nextstopDepthMeter) | |
2161 { | |
2162 snprintf(TextR2,TEXTSIZE,"\032\f\002%c",TXT_Decostop); | |
2163 GFX_write_string(&FontT42,&t7r2,TextR2,0); | |
2164 textlength = snprintf(TextR2,TEXTSIZE,"\020\002%u%c%c %u'" | |
2165 , unit_depth_integer(nextstopDepthMeter) | |
2166 , unit_depth_char1_T105() | |
2167 , unit_depth_char2_T105() | |
2168 , (nextstopLengthSeconds+59)/60); | |
2169 t7_colorscheme_mod(TextR2); | |
2170 if(time_elapsed_ms(pDecoinfo->tickstamp, HAL_GetTick()) > MAX_AGE_DECOINFO_MS) | |
2171 TextR2[0] = '\021'; | |
2172 if(textlength <= 9) | |
2173 GFX_write_string(&FontT105,&t7r2,TextR2,1); | |
2174 else | |
2175 GFX_write_string(&FontT54,&t7r2,TextR2,1); | |
2176 } | |
2177 else if(SafetyStopTime.Total && (depth > timer_Safetystop_GetDepthUpperLimit())) | |
2178 { | |
2179 snprintf(TextR2,TEXTSIZE,"\032\f\002%c%c",TXT_2BYTE,TXT2BYTE_SafetyStop2); | |
2180 GFX_write_string(&FontT42,&t7r2,TextR2,0); | |
2181 snprintf(TextR2,TEXTSIZE,"\020\016\002%u:%02u",SafetyStopTime.Minutes,SafetyStopTime.Seconds); | |
2182 t7_colorscheme_mod(TextR2); | |
2183 GFX_write_string(&FontT105,&t7r2,TextR2,1); | |
2184 } | |
2185 | |
2186 /* tts - option 1 | |
2187 * ndl - option 2 | |
2188 * empty - option 3 */ | |
2189 if(pDecoinfo->output_time_to_surface_seconds) | |
2190 { | |
2191 snprintf(TextR3,TEXTSIZE,"\032\f\002%c",TXT_TTS); | |
2192 GFX_write_string(&FontT42,&t7r3,TextR3,0); | |
2193 if(pDecoinfo->output_time_to_surface_seconds < 1000 * 60) | |
214
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2194 snprintf(TextR3,TEXTSIZE,"\020\002%i'",(pDecoinfo->output_time_to_surface_seconds + 59)/ 60); |
38 | 2195 else |
214
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2196 snprintf(TextR3,TEXTSIZE,"\020\002%ih",(pDecoinfo->output_time_to_surface_seconds + 59)/ 3600); |
38 | 2197 t7_colorscheme_mod(TextR3); |
2198 if(time_elapsed_ms(pDecoinfo->tickstamp, HAL_GetTick()) > MAX_AGE_DECOINFO_MS) | |
2199 TextR2[0] = '\021'; | |
2200 GFX_write_string(&FontT105,&t7r3,TextR3,1); | |
2201 } | |
2202 else if(pDecoinfo->output_ndl_seconds) | |
2203 { | |
2204 snprintf(TextR3,TEXTSIZE,"\032\f\002%c",TXT_Nullzeit); | |
2205 GFX_write_string(&FontT42,&t7r3,TextR3,0); | |
2206 if(pDecoinfo->output_ndl_seconds < 1000 * 60) | |
2207 snprintf(TextR3,TEXTSIZE,"\020\002%i'",pDecoinfo->output_ndl_seconds/60); | |
2208 else | |
2209 snprintf(TextR3,TEXTSIZE,"\020\002%ih",pDecoinfo->output_ndl_seconds/3600); | |
2210 t7_colorscheme_mod(TextR3); | |
2211 if(time_elapsed_ms(pDecoinfo->tickstamp, HAL_GetTick()) > MAX_AGE_DECOINFO_MS) | |
2212 TextR2[0] = '\021'; | |
2213 GFX_write_string(&FontT105,&t7r3,TextR3,1); | |
2214 } | |
2215 | |
2216 /* Menu Selection (and gas mix) */ | |
2217 if(get_globalState() == StDMGAS) | |
2218 { | |
2219 textPointer = 0; | |
2220 TextR1[textPointer++] = '\a'; | |
2221 // TextR1[textPointer++] = '\f'; | |
2222 TextR1[textPointer++] = '\001'; | |
2223 TextR1[textPointer++] = ' '; | |
2224 textPointer += tHome_gas_writer(stateUsed->diveSettings.gas[actualBetterGasId()].oxygen_percentage,stateUsed->diveSettings.gas[actualBetterGasId()].helium_percentage,&TextR1[textPointer]); | |
2225 TextR1[textPointer++] = '?'; | |
2226 TextR1[textPointer++] = ' '; | |
2227 TextR1[textPointer++] = 0; | |
2228 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2229 } | |
2230 else if(get_globalState() == StDMSPT) | |
2231 { | |
2232 textPointer = 0; | |
2233 TextR1[textPointer++] = '\a'; | |
2234 TextR1[textPointer++] = '\001'; | |
2235 TextR1[textPointer++] = ' '; | |
2236 textPointer += snprintf(&TextR1[textPointer],5,"%f01.2",((float)(stateUsed->diveSettings.setpoint[actualBetterSetpointId()].setpoint_cbar))/100); | |
2237 TextR1[textPointer++] = '?'; | |
2238 TextR1[textPointer++] = ' '; | |
2239 TextR1[textPointer++] = 0; | |
2240 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2241 } | |
2242 else if(get_globalState() == StDMENU) | |
2243 { | |
2244 snprintf(TextR1,TEXTSIZE,"\a\001%c%c", TXT_2BYTE, TXT2BYTE_DiveMenuQ); | |
2245 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2246 } | |
2247 else if(get_globalState() == StDSIM1) | |
2248 { | |
2249 snprintf(TextR1,TEXTSIZE,"\a\001%c%c", TXT_2BYTE, TXT2BYTE_DiveQuitQ); | |
2250 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2251 } | |
2252 else if(get_globalState() == StDSIM2) | |
2253 { | |
2254 if(settingsGetPointer()->nonMetricalSystem) | |
2255 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:-3.33ft "); | |
2256 else | |
2257 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:-1m "); | |
2258 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2259 | |
2260 snprintf(TextR1,TEXTSIZE,"\a\f %u %c%c" | |
2261 , unit_depth_integer(simulation_get_aim_depth()) | |
2262 , unit_depth_char1() | |
2263 , unit_depth_char2() | |
2264 ); | |
2265 GFX_write_string_color(&FontT42,&t7l1,TextR1,0,CLUT_WarningYellow); | |
2266 | |
2267 } | |
2268 else if(get_globalState() == StDSIM3) | |
2269 { | |
2270 if(settingsGetPointer()->nonMetricalSystem) | |
2271 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:+3.33ft "); | |
2272 else | |
2273 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:+1m "); | |
2274 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2275 snprintf(TextR1,TEXTSIZE,"\a\f %u %c%c" | |
2276 , unit_depth_integer(simulation_get_aim_depth()) | |
2277 , unit_depth_char1() | |
2278 , unit_depth_char2() | |
2279 ); | |
2280 GFX_write_string_color(&FontT42,&t7l1,TextR1,0,CLUT_WarningYellow); | |
2281 } | |
2282 else if(get_globalState() == StDSIM4) | |
2283 { | |
2284 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:+5' "); | |
2285 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2286 snprintf(TextR1,TEXTSIZE,"\a\f %u %c%c" | |
2287 , unit_depth_integer(simulation_get_aim_depth()) | |
2288 , unit_depth_char1() | |
2289 , unit_depth_char2() | |
2290 ); | |
2291 GFX_write_string_color(&FontT42,&t7l1,TextR1,0,CLUT_WarningYellow); | |
2292 } | |
2293 else | |
2294 { | |
2295 /* gas mix */ | |
2296 oxygen_percentage = 100; | |
2297 oxygen_percentage -= stateUsed->lifeData.actualGas.nitrogen_percentage; | |
2298 oxygen_percentage -= stateUsed->lifeData.actualGas.helium_percentage; | |
2299 | |
2300 textPointer = 0; | |
2301 TextC2[textPointer++] = '\020'; | |
2302 if(stateUsed->warnings.betterGas && warning_count_high_time) | |
2303 { | |
2304 TextC2[textPointer++] = '\a'; | |
2305 } | |
2306 else | |
2307 { | |
2308 float fPpO2limitHigh, fPpO2now; | |
2309 | |
2310 if(actualLeftMaxDepth(stateUsed)) | |
2311 fPpO2limitHigh = settingsGetPointer()->ppO2_max_deco; | |
2312 else | |
2313 fPpO2limitHigh = settingsGetPointer()->ppO2_max_std; | |
2314 | |
2315 fPpO2now = (stateUsed->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * oxygen_percentage; | |
2316 | |
2317 if((fPpO2now > fPpO2limitHigh) || (fPpO2now < (float)(settingsGetPointer()->ppO2_min))) | |
2318 TextC2[textPointer++] = '\025'; | |
2319 } | |
2320 TextC2[textPointer++] = '\002'; | |
2321 textPointer += tHome_gas_writer(oxygen_percentage,stateUsed->lifeData.actualGas.helium_percentage,&TextC2[textPointer]); | |
2322 | |
2323 if(stateUsed->warnings.betterGas && warning_count_high_time) | |
2324 { | |
2325 if(TextC2[0] == '\020') | |
2326 { | |
2327 TextC2[0] = '\004'; // NOP | |
2328 } | |
2329 GFX_write_string_color(&FontT48,&t7c2,TextC2,0,CLUT_WarningYellow); | |
2330 } | |
2331 else | |
2332 { | |
2333 t7_colorscheme_mod(TextC2); | |
2334 GFX_write_string(&FontT48,&t7c2,TextC2,0); // T54 has only numbers | |
2335 } | |
2336 | |
2337 if(stateUsed->diveSettings.ccrOption) | |
2338 { | |
2339 if(stateUsed->diveSettings.diveMode == DIVEMODE_CCR) | |
2340 { | |
2341 snprintf(TextC2,TEXTSIZE,"\020%01.2f",stateUsed->lifeData.ppO2); | |
2342 if(stateUsed->warnings.betterSetpoint && warning_count_high_time && (stateUsed->diveSettings.diveMode == DIVEMODE_CCR)) | |
2343 { | |
2344 TextC2[0] = '\a'; // inverse instead of color \020 | |
2345 GFX_write_string_color(&FontT48,&t7c2,TextC2,0,CLUT_WarningYellow); | |
2346 } | |
2347 else | |
2348 { | |
2349 t7_colorscheme_mod(TextC2); | |
2350 GFX_write_string(&FontT48,&t7c2,TextC2,0); | |
2351 } | |
2352 } | |
2353 } | |
2354 else if(settingsGetPointer()->alwaysShowPPO2) | |
2355 { | |
2356 snprintf(TextC2,TEXTSIZE,"\020%01.2f",stateUsed->lifeData.ppO2); | |
2357 t7_colorscheme_mod(TextC2); | |
2358 GFX_write_string(&FontT48,&t7c2,TextC2,0); | |
2359 } | |
2360 } | |
2361 | |
2362 /* algorithm, ccr, bailout and battery */ | |
2363 /* and permanent warnings (CNS) */ | |
2364 | |
2365 if((stateUsed->warnings.cnsHigh) && display_count_high_time) | |
2366 { | |
2367 TextC2[0] = '\f'; | |
2368 TextC2[1] = TXT_2BYTE; | |
2369 TextC2[2] = TXT2BYTE_WarnCnsHigh; | |
2370 TextC2[3] = 0; | |
2371 GFX_write_string_color(&FontT48,&t7c1,TextC2,0,CLUT_WarningRed); | |
2372 } | |
2373 else | |
2374 { | |
2375 if(stateUsed->warnings.aGf) | |
2376 { | |
2377 GFX_write_string_color(&FontT48,&t7c1,"\f" "aGF",0,CLUT_WarningYellow); | |
2378 } | |
2379 else if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
2380 { | |
2381 GFX_write_string(&FontT48,&t7c1,"\027\f" "GF",0); | |
2382 } | |
2383 else | |
2384 { | |
2385 GFX_write_string(&FontT48,&t7c1,"\027\f" "VPM",0); | |
2386 } | |
2387 | |
2388 if(stateUsed->diveSettings.diveMode == DIVEMODE_CCR) | |
2389 GFX_write_string(&FontT24,&t7c1,"\027\f\002" "CCR",0); | |
2390 // GFX_write_string(&FontT24,&t7c1,"\f\177\177\x80" "CCR",0); | |
2391 else | |
2392 if(stateUsed->diveSettings.ccrOption) | |
2393 GFX_write_string(&FontT24,&t7c1,"\f\002\024" "Bailout",0); | |
2394 // GFX_write_string(&FontT24,&t7c1,"\f\177\177\x80\024" "Bailout",0); | |
2395 } | |
2396 TextC1[0] = '\020'; | |
2397 TextC1[1] = '3'; | |
2398 TextC1[2] = '1'; | |
2399 TextC1[3] = '1'; | |
2400 TextC1[4] = '1'; | |
2401 TextC1[5] = '1'; | |
2402 TextC1[6] = '1'; | |
2403 TextC1[7] = '1'; | |
2404 TextC1[8] = '1'; | |
2405 TextC1[9] = '1'; | |
2406 TextC1[10] = '1'; | |
2407 TextC1[11] = '1'; | |
2408 TextC1[12] = '0'; | |
2409 TextC1[13] = 0; | |
2410 | |
2411 for(int i=1;i<=10;i++) | |
2412 { | |
2413 if( stateUsed->lifeData.battery_charge > (9 * i)) | |
2414 TextC1[i+1] += 1; | |
2415 } | |
2416 | |
2417 if(stateUsed->warnings.lowBattery) | |
2418 { | |
2419 TextC1[0] = '\025'; | |
2420 if(warning_count_high_time) | |
2421 { | |
2422 for(int i=2;i<=11;i++) | |
2423 TextC1[i] = '1'; | |
2424 } | |
2425 else | |
2426 { | |
2427 TextC1[2] = '2'; | |
2428 } | |
2429 GFX_write_string(&Batt24,&t7batt,TextC1,0); | |
2430 | |
2431 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | |
2432 { | |
2433 snprintf(TextC1,16,"\004\025\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | |
2434 if(warning_count_high_time) | |
2435 TextC1[0] = '\a'; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2436 GFX_write_string(&FontT24,&t7voltage,TextC1,0); |
38 | 2437 } |
2438 } | |
2439 else | |
2440 { | |
2441 t7_colorscheme_mod(TextC1); | |
2442 GFX_write_string(&Batt24,&t7batt,TextC1,0); | |
2443 | |
2444 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | |
2445 { | |
2446 snprintf(TextC1,16,"\020\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | |
2447 t7_colorscheme_mod(TextC1); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2448 GFX_write_string(&FontT24,&t7voltage,TextC1,0); // t7batt |
38 | 2449 } |
2450 } | |
2451 | |
2452 /* customizable left lower corner */ | |
2453 t7_refresh_divemode_userselected_left_lower_corner(); | |
2454 | |
2455 | |
2456 /* customview - option 1 | |
2457 * warning - option 2 */ | |
2458 if(stateUsed->warnings.numWarnings) | |
2459 customview_warnings = t7_test_customview_warnings(); | |
2460 | |
166
255eedad4155
cleanup: get rid of some compile warnings
Jan Mulder <jlmulder@xs4all.nl>
parents:
149
diff
changeset
|
2461 background.pointer = 0; |
38 | 2462 if(customview_warnings && warning_count_high_time) |
2463 t7_show_customview_warnings(); | |
2464 else | |
2465 t7_refresh_customview(); | |
2466 | |
2467 /* the frame */ | |
2468 draw_frame(1,1, CLUT_DIVE_pluginbox, CLUT_DIVE_FieldSeperatorLines); | |
2469 } | |
2470 | |
2471 void t7_set_field_to_primary(void) | |
2472 { | |
2473 if(stateUsed->mode == MODE_DIVE) | |
2474 selection_custom_field = settingsGetPointer()->tX_userselectedLeftLowerCornerPrimary; | |
2475 } | |
2476 | |
2477 void t7_change_field(void) | |
2478 { | |
2479 const uint8_t minVal = 0; | |
2480 const uint8_t maxValGF = 8; | |
2481 const uint8_t maxValVPM = 7; | |
2482 uint8_t maxNow = maxValGF; | |
2483 | |
2484 selection_custom_field++; | |
2485 | |
2486 if(stateUsed->diveSettings.deco_type.ub.standard == VPM_MODE) | |
2487 maxNow = maxValVPM; | |
2488 | |
2489 if(selection_custom_field > maxNow) | |
2490 selection_custom_field = minVal; | |
2491 } | |
2492 | |
2493 | |
2494 void t7_refresh_divemode_userselected_left_lower_corner(void) | |
2495 { | |
2496 if(!selection_custom_field) | |
2497 return; | |
2498 | |
2499 char headerText[10]; | |
2500 char text[TEXTSIZE]; | |
2501 uint8_t textpointer = 0; | |
2502 _Bool tinyHeaderFont = 0; | |
2503 uint8_t line = 0; | |
2504 | |
2505 SDivetime Stopwatch = {0,0,0,0}; | |
2506 float fAverageDepth, fAverageDepthAbsolute; | |
2507 const SDecoinfo * pDecoinfoStandard; | |
2508 const SDecoinfo * pDecoinfoFuture; | |
2509 float fCNS; | |
2510 float temperature; | |
2511 | |
2512 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
2513 { | |
2514 pDecoinfoStandard = &stateUsed->decolistBuehlmann; | |
2515 pDecoinfoFuture = &stateUsed->decolistFutureBuehlmann; | |
2516 } | |
2517 else | |
2518 { | |
2519 pDecoinfoStandard = &stateUsed->decolistVPM; | |
2520 pDecoinfoFuture = &stateUsed->decolistFutureVPM; | |
2521 } | |
2522 | |
2523 Stopwatch.Total = timer_Stopwatch_GetTime(); | |
2524 Stopwatch.Minutes = Stopwatch.Total / 60; | |
2525 Stopwatch.Seconds = Stopwatch.Total - ( Stopwatch.Minutes * 60 ); | |
2526 fAverageDepth = timer_Stopwatch_GetAvarageDepth_Meter(); | |
2527 fAverageDepthAbsolute = stateUsed->lifeData.average_depth_meter; | |
2528 | |
2529 headerText[0] = '\032'; | |
2530 headerText[1] = '\f'; | |
2531 | |
2532 switch(selection_custom_field) | |
2533 { | |
2534 /* Temperature */ | |
2535 case 1: | |
2536 default: | |
189
8b8074080d7b
Bugfix: average temperature on arrival from RTE instead of display time
Jan Mulder <jlmulder@xs4all.nl>
parents:
187
diff
changeset
|
2537 temperature = unit_temperature_float(stateUsed->lifeData.temperature_celsius); |
38 | 2538 headerText[2] = TXT_Temperature; |
2539 textpointer = snprintf(text,TEXTSIZE,"\020\016%01.1f \140",temperature); // "\016\016%01.1f `" + C or F | |
2540 if(settingsGetPointer()->nonMetricalSystem == 0) | |
2541 text[textpointer++] = 'C'; | |
2542 else | |
2543 text[textpointer++] = 'F'; | |
2544 text[textpointer++] = 0; | |
2545 tinyHeaderFont = 0; | |
2546 break; | |
2547 | |
2548 /* Average Depth */ | |
2549 case 2: | |
2550 headerText[2] = TXT_AvgDepth; | |
2551 if(settingsGetPointer()->nonMetricalSystem) | |
2552 snprintf(text,TEXTSIZE,"\020%01.0f",unit_depth_float(fAverageDepthAbsolute)); | |
2553 else | |
2554 snprintf(text,TEXTSIZE,"\020%01.1f",fAverageDepthAbsolute); | |
2555 break; | |
2556 | |
2557 /* ppO2 */ | |
2558 case 3: | |
2559 headerText[2] = TXT_ppO2; | |
2560 snprintf(text,TEXTSIZE,"\020%01.2f",stateUsed->lifeData.ppO2); | |
2561 break; | |
2562 | |
2563 /* Stop Uhr */ | |
2564 case 4: | |
2565 headerText[2] = TXT_Stopwatch; | |
2566 if(settingsGetPointer()->nonMetricalSystem) | |
2567 snprintf(text,TEXTSIZE,"\020\016\016%u:%02u\n\r%01.0f",Stopwatch.Minutes, Stopwatch.Seconds,unit_depth_float(fAverageDepth)); | |
2568 else | |
2569 snprintf(text,TEXTSIZE,"\020\016\016%u:%02u\n\r%01.1f",Stopwatch.Minutes, Stopwatch.Seconds,fAverageDepth); | |
2570 tinyHeaderFont = 1; | |
2571 line = 1; | |
2572 break; | |
2573 | |
2574 /* Ceiling */ | |
2575 case 5: | |
2576 headerText[2] = TXT_Ceiling; | |
2577 if((pDecoinfoStandard->output_ceiling_meter > 99.9f) || (settingsGetPointer()->nonMetricalSystem)) | |
2578 snprintf(text,TEXTSIZE,"\020%01.0f",unit_depth_float(pDecoinfoStandard->output_ceiling_meter)); | |
2579 else | |
2580 snprintf(text,TEXTSIZE,"\020%01.1f",pDecoinfoStandard->output_ceiling_meter); | |
2581 break; | |
2582 | |
2583 /* Future TTS */ | |
2584 case 6: | |
2585 headerText[2] = TXT_FutureTTS; | |
214
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2586 if (pDecoinfoFuture->output_time_to_surface_seconds < 1000 * 60) |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2587 snprintf(text,TEXTSIZE,"\020\016\016@+%u'\n\r" "%i' TTS",settingsGetPointer()->future_TTS, (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 60); |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2588 else |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2589 snprintf(text,TEXTSIZE,"\020\016\016@+%u'\n\r" "%ih TTS",settingsGetPointer()->future_TTS, (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 3600); |
38 | 2590 tinyHeaderFont = 1; |
2591 line = 1; | |
2592 break; | |
2593 | |
2594 /* CNS */ | |
2595 case 7: | |
2596 headerText[2] = TXT_CNS; | |
2597 fCNS = stateUsed->lifeData .cns; | |
2598 if(fCNS > 999) | |
2599 fCNS = 999; | |
2600 snprintf(text,TEXTSIZE,"\020%.0f\016\016%%\017",fCNS); | |
2601 break; | |
2602 | |
2603 /* actual GF */ | |
2604 case 8: | |
2605 headerText[2] = TXT_ActualGradient; | |
247
3949781096d4
feature: Relative GF to Saturation renames
Jan Mulder <jlmulder@xs4all.nl>
parents:
225
diff
changeset
|
2606 snprintf(text,TEXTSIZE,"\020%.0f\016\016%%\017",100 * pDecoinfoStandard->super_saturation); |
38 | 2607 break; |
2608 } | |
2609 headerText[3] = 0; | |
2610 | |
2611 if(tinyHeaderFont) | |
2612 GFX_write_string(&FontT24,&t7l3,headerText,0); | |
2613 else | |
2614 GFX_write_string(&FontT42,&t7l3,headerText,0); | |
2615 | |
2616 t7_colorscheme_mod(text); | |
2617 GFX_write_string(&FontT105,&t7l3,text,line); | |
2618 } | |
2619 | |
2620 /* Private functions ---------------------------------------------------------*/ | |
2621 | |
2622 uint8_t t7_customtextPrepare(char * text) | |
2623 { | |
2624 uint8_t i, j, textptr, lineCount; | |
2625 char nextChar; | |
2626 | |
2627 textptr = 0; | |
2628 lineCount = 0; | |
2629 | |
2630 text[textptr++] = TXT_MINIMAL; | |
2631 | |
2632 j = 0; | |
2633 i = 0; | |
2634 do | |
2635 { | |
2636 j += i; | |
2637 i = 0; | |
2638 do | |
2639 { | |
2640 nextChar = settingsGetPointer()->customtext[i+j]; | |
2641 i++; | |
2642 if((!nextChar) || (nextChar =='\n') || (nextChar =='\r')) | |
2643 break; | |
2644 text[textptr++] = nextChar; | |
2645 } while (i < 12); | |
2646 | |
2647 if(!nextChar) | |
2648 break; | |
2649 | |
2650 if(lineCount < 3) | |
2651 { | |
2652 text[textptr++] = '\n'; | |
2653 text[textptr++] = '\r'; | |
2654 } | |
2655 lineCount++; | |
2656 for(uint8_t k=0;k<2;k++) | |
2657 { | |
2658 nextChar = settingsGetPointer()->customtext[i+j+k]; | |
2659 if((nextChar =='\n') || (nextChar =='\r')) | |
2660 i++; | |
2661 else | |
2662 break; | |
2663 } | |
2664 | |
2665 } while (lineCount < 4); | |
2666 | |
2667 text[textptr] = 0; | |
2668 return lineCount; | |
2669 } | |
2670 | |
196
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2671 static void t7_colorscheme_mod(char *text) { |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2672 char *p = text; |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2673 while (*p) { |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2674 if ((*p == '\020') && !GFX_is_colorschemeDiveStandard()) |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2675 *p = '\027'; |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2676 p++; |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2677 } |
38 | 2678 } |
2679 | |
2680 void draw_frame(_Bool PluginBoxHeader, _Bool LinesOnTheSides, uint8_t colorBox, uint8_t colorLinesOnTheSide) | |
2681 { | |
2682 point_t LeftLow, WidthHeight; | |
2683 point_t start, stop; | |
2684 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2685 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2686 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2687 |
38 | 2688 // plugin box |
2689 LeftLow.x = CUSTOMBOX_LINE_LEFT; | |
2690 WidthHeight.x = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_LINE_LEFT; | |
2691 LeftLow.y = 60; | |
2692 WidthHeight.y = 440 - LeftLow.y; | |
2693 GFX_draw_box(&t7screen, LeftLow, WidthHeight, 1, colorBox); | |
2694 | |
2695 if(PluginBoxHeader) | |
2696 { | |
2697 // plugin box - header | |
2698 start.x = CUSTOMBOX_LINE_LEFT; | |
2699 stop.x = CUSTOMBOX_LINE_RIGHT; | |
2700 stop.y = start.y = 440 - 60; | |
2701 GFX_draw_line(&t7screen, start, stop, colorBox); | |
2702 } | |
2703 | |
2704 if(LinesOnTheSides) | |
2705 { | |
2706 // aufteilung links | |
2707 start.x = 0; | |
2708 stop.x = CUSTOMBOX_LINE_LEFT; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2709 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2710 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2711 stop.y = start.y = t7l1.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2712 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2713 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2714 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2715 stop.y = start.y = 480 - t7l1.WindowY1 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2716 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2717 |
38 | 2718 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2719 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2720 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2721 stop.y = start.y = t7l2.WindowY0 -1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2722 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2723 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2724 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2725 stop.y = start.y = 480 - t7l2.WindowY1 -1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2726 } |
38 | 2727 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
2728 | |
2729 // aufteilung rechts | |
2730 start.x = CUSTOMBOX_LINE_RIGHT; | |
2731 stop.x = 799; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2732 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2733 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2734 stop.y = start.y = t7l1.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2735 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2736 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2737 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2738 stop.y = start.y = 480 - t7l1.WindowY1 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2739 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2740 |
38 | 2741 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2742 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2743 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2744 stop.y = start.y = t7l2.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2745 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2746 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2747 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2748 stop.y = start.y = 480 - t7l2.WindowY1 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2749 } |
38 | 2750 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
2751 } | |
2752 } | |
2753 | |
2754 | |
2755 /* Compass like TCOS shellfish | |
2756 * input is 0 to 359 | |
2757 * 2 px / 1 degree | |
2758 * Range is 148 degree with CUSTOMBOX_SPACE_INSIDE = 296 | |
2759 * one side is 74 degree (less than 90 degree) | |
2760 * internal 360 + 180 degree of freedom | |
2761 * use positive values only, shift by 360 below 90 mid position | |
2762 */ | |
2763 | |
2764 | |
2765 point_t t7_compass_circle(uint8_t id, uint16_t degree) | |
2766 { | |
2767 float fCos, fSin; | |
2768 const float piMult = ((2 * 3.14159) / 360); | |
2769 // const int radius[4] = {95,105,115,60}; | |
2770 const int radius[4] = {95,105,115,100}; | |
2771 const point_t offset = {.x = 400, .y = 250}; | |
2772 | |
2773 static point_t r[4][360] = { 0 }; | |
2774 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2775 if(r[0][0].y == 0) /* calc table at first call only */ |
38 | 2776 { |
2777 for(int i=0;i<360;i++) | |
2778 { | |
2779 fCos = cos(i * piMult); | |
2780 fSin = sin(i * piMult); | |
2781 for(int j=0;j<4;j++) | |
2782 { | |
2783 r[j][i].x = offset.x + (int)(fSin * radius[j]); | |
2784 r[j][i].y = offset.y + (int)(fCos * radius[j]); | |
2785 } | |
2786 } | |
2787 } | |
2788 if(id > 3) id = 0; | |
2789 if(degree > 359) degree = 0; | |
2790 return r[id][degree]; | |
2791 } | |
2792 | |
2793 /* range should be 0 to 30 bar if 300 meter with 100% of nitrogen or helium | |
2794 * T24 is 28 high | |
2795 */ | |
2796 void t7_tissues(const SDiveState * pState) | |
2797 { | |
2798 point_t start, change, stop; | |
2799 float value; | |
2800 uint16_t front, cns100pixel; | |
2801 char text[256]; | |
2802 uint8_t textpointer = 0; | |
2803 uint8_t color; | |
2804 | |
2805 float percent_N2; | |
2806 float percent_He; | |
2807 float partial_pressure_N2; | |
2808 float partial_pressure_He; | |
2809 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2810 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2811 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2812 |
38 | 2813 |
2814 /* N2 */ | |
2815 t7cY0free.WindowLineSpacing = 28 + 48 + 14; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2816 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2817 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2818 t7cY0free.WindowY0 = t7cH.WindowY0 - 5 - 2 * t7cY0free.WindowLineSpacing; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2819 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2820 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2821 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2822 t7cY0free.WindowY0 = t7cH.WindowY0 + 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2823 t7cY0free.WindowY1 = t7cY0free.WindowY0 + 250; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2824 } |
38 | 2825 t7cY0free.WindowNumberOfTextLines = 3; |
2826 | |
2827 text[textpointer++] = '\030'; | |
2828 text[textpointer++] = TXT_2BYTE; | |
2829 text[textpointer++] = TXT2BYTE_Nitrogen; | |
2830 text[textpointer++] = '\n'; | |
2831 text[textpointer++] = '\r'; | |
2832 text[textpointer++] = TXT_2BYTE; | |
2833 text[textpointer++] = TXT2BYTE_Helium; | |
2834 text[textpointer++] = '\n'; | |
2835 text[textpointer++] = '\r'; | |
2836 text[textpointer++] = TXT_2BYTE; | |
2837 text[textpointer++] = TXT2BYTE_CNS; | |
2838 text[textpointer++] = 0; | |
2839 | |
2840 GFX_write_string(&FontT24, &t7cY0free, text, 1); | |
2841 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2842 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2843 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2844 start.y = t7cH.WindowY0 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2845 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2846 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2847 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2848 start.y = t7cH.WindowY1 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2849 } |
38 | 2850 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
2851 stop.x = start.x + CUSTOMBOX_SPACE_INSIDE; | |
2852 | |
2853 for(int i=0;i<16;i++) | |
2854 { | |
2855 stop.y = start.y; | |
2856 change.y = start.y; | |
2857 | |
2858 value = pState->lifeData.tissue_nitrogen_bar[i] - 0.7512f; | |
222
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
2859 value *= 80; |
38 | 2860 |
2861 if(value < 0) | |
2862 front = 0; | |
2863 else | |
2864 if(value > CUSTOMBOX_SPACE_INSIDE) | |
2865 front = CUSTOMBOX_SPACE_INSIDE; | |
2866 else | |
2867 front = (uint16_t)value; | |
2868 | |
2869 change.x = start.x + front; | |
2870 if(change.x != start.x) | |
2871 GFX_draw_thick_line(1,&t7screen, start, change, CLUT_Font030); | |
2872 if(change.x != stop.x) | |
2873 GFX_draw_thick_line(1,&t7screen, change, stop, CLUT_Font031); | |
2874 | |
2875 start.y -= 3; | |
2876 } | |
2877 | |
2878 /* He */ | |
2879 start.y -= 28 + 14; | |
2880 for(int i=0;i<16;i++) | |
2881 { | |
2882 stop.y = start.y; | |
2883 change.y = start.y; | |
2884 | |
2885 value = pState->lifeData.tissue_helium_bar[i]; | |
2886 value *= 80;//20 | |
2887 | |
2888 if(value < 0) | |
2889 front = 0; | |
2890 else if(value > CUSTOMBOX_SPACE_INSIDE) | |
2891 front = CUSTOMBOX_SPACE_INSIDE; | |
2892 else | |
2893 front = (uint16_t)value; | |
2894 | |
2895 change.x = start.x + front; | |
2896 if(change.x != start.x) | |
2897 GFX_draw_thick_line(1,&t7screen, start, change, CLUT_Font030); | |
2898 if(change.x != stop.x) | |
2899 GFX_draw_thick_line(1,&t7screen, change, stop, CLUT_Font031); | |
2900 | |
2901 start.y -= 3; | |
2902 } | |
2903 | |
2904 /* CNS == Oxygen */ | |
2905 start.y -= 28 + 14; | |
2906 | |
2907 cns100pixel = (8 * CUSTOMBOX_SPACE_INSIDE) / 10; | |
2908 value = pState->lifeData.cns; | |
2909 value *= cns100pixel; | |
2910 value /= 100; | |
2911 | |
2912 if(value < 0) | |
2913 front = 0; | |
2914 else if(value > CUSTOMBOX_SPACE_INSIDE) | |
2915 front = CUSTOMBOX_SPACE_INSIDE; | |
2916 else | |
2917 front = (uint16_t)value; | |
2918 | |
2919 if(pState->lifeData.cns < 95) | |
2920 color = CLUT_Font030; | |
2921 else if(pState->lifeData.cns < 100) | |
2922 color = CLUT_WarningYellow; | |
2923 else | |
2924 color = CLUT_WarningRed; | |
2925 | |
2926 for(int i=0;i<16;i++) | |
2927 { | |
2928 stop.y = start.y; | |
2929 change.y = start.y; | |
2930 | |
2931 change.x = start.x + front; | |
2932 if(change.x != start.x) | |
2933 GFX_draw_thick_line(1,&t7screen, start, change, color); | |
2934 if(change.x != stop.x) | |
2935 GFX_draw_thick_line(1,&t7screen, change, stop, CLUT_Font031); | |
2936 | |
2937 start.y -= 3; | |
2938 } | |
2939 | |
2940 /* where is the onload/offload limit for N2 and He */ | |
2941 decom_get_inert_gases(pState->lifeData.pressure_ambient_bar, &pState->lifeData.actualGas, &percent_N2, &percent_He); | |
2942 partial_pressure_N2 = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_N2; | |
2943 partial_pressure_He = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_He; | |
2944 | |
2945 // Nitrogen vertical bar | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2946 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2947 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2948 start.y = t7cH.WindowY0 + 1 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2949 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2950 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2951 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2952 start.y = t7cH.WindowY1 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2953 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2954 |
38 | 2955 stop.y = start.y - (3 * 15) - 1; |
222
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
2956 if((percent_N2 > 0) && (partial_pressure_N2 > 0.7512f)) |
38 | 2957 { |
222
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
2958 value = partial_pressure_N2 - 0.7512f; |
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
2959 value *= 80; |
38 | 2960 |
2961 if(value < 0) | |
2962 front = 3; | |
2963 else if(value + 5 > CUSTOMBOX_SPACE_INSIDE) | |
2964 front = CUSTOMBOX_SPACE_INSIDE - 3; | |
2965 else | |
2966 front = (uint16_t)value; | |
2967 } | |
2968 else | |
2969 { | |
2970 front = 1; | |
2971 } | |
2972 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + front; | |
2973 stop.x = start.x; | |
2974 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); | |
2975 | |
2976 | |
2977 // Helium vertical bar | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2978 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2979 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2980 start.y = t7cH.WindowY0 + 1 - 5 - 3*16 - 28 - 14; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2981 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2982 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2983 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2984 start.y = t7cH.WindowY1 - 5 - 3*16 - 28 - 14; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2985 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2986 |
38 | 2987 stop.y = start.y - (3 * 15) - 1; |
2988 if((percent_He > 0) && (partial_pressure_He > 0.01f)) // 0.5f | |
2989 { | |
2990 | |
2991 value = partial_pressure_He; | |
222
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
2992 value *= 80; |
38 | 2993 |
2994 if(value < 0) | |
2995 front = 3; | |
2996 else if(value + 5 > CUSTOMBOX_SPACE_INSIDE) | |
2997 front = CUSTOMBOX_SPACE_INSIDE - 3; | |
2998 else | |
2999 front = (uint16_t)value; | |
3000 } | |
3001 else | |
3002 { | |
3003 front = 1; | |
3004 } | |
3005 | |
3006 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + front; | |
3007 stop.x = start.x; | |
3008 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); | |
3009 | |
3010 // Oxygen vertical bar | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3011 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3012 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3013 start.y = t7cH.WindowY0 + 1 - 5 - 6*16 - 2*28 - 2*14; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3014 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3015 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3016 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3017 start.y = t7cH.WindowY1 - 5 - 6*16 - 2*28 - 2*14; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3018 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3019 |
38 | 3020 stop.y = start.y - (3 * 15) - 1; |
3021 | |
3022 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + cns100pixel; | |
3023 stop.x = start.x; | |
3024 GFX_draw_thick_line(2, &t7screen, start, stop, CLUT_WarningRed); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3025 |
38 | 3026 } |
3027 | |
3028 | |
3029 void t7_debug(void) | |
3030 { | |
3031 char text[256+50]; | |
3032 uint8_t textpointer = 0; | |
3033 | |
3034 t7cY0free.WindowLineSpacing = 28 + 48 + 14; | |
3035 t7cY0free.WindowY0 = t7cH.WindowY0 - 5 - 2 * t7cY0free.WindowLineSpacing; | |
3036 t7cY0free.WindowNumberOfTextLines = 3; | |
3037 | |
3038 textpointer += snprintf(&text[textpointer],50,"Ambient [bar]\n\r"); | |
3039 textpointer += snprintf(&text[textpointer],50,"Surface [bar] + salt\n\r"); | |
3040 // textpointer += snprintf(&text[textpointer],50,"Difference [mbar]\n\r"); | |
3041 textpointer += snprintf(&text[textpointer],50,"ShallowCounter [s]\n\r"); | |
3042 GFX_write_string(&FontT24, &t7cY0free, text, 1); | |
3043 | |
3044 t7cY0free.WindowY0 -= 52; | |
3045 // snprintf(text,60,"%0.2f\n\r%0.2f %u%%\n\r%0.0f",stateUsed->lifeData.pressure_ambient_bar, stateUsed->lifeData.pressure_surface_bar, settingsGetPointer()->salinity, 1000 * (stateUsed->lifeData.pressure_ambient_bar-stateUsed->lifeData.pressure_surface_bar)); | |
3046 snprintf(text,60, | |
3047 "%0.2f\n\r" | |
3048 "%0.2f %u%%\n\r" | |
3049 "%u" | |
3050 ,stateUsed->lifeData.pressure_ambient_bar | |
3051 ,stateUsed->lifeData.pressure_surface_bar | |
3052 ,settingsGetPointer()->salinity | |
3053 ,stateUsed->lifeData.counterSecondsShallowDepth); | |
3054 GFX_write_string(&FontT42, &t7cY0free, text, 1); | |
3055 } | |
3056 | |
3057 | |
3058 void t7_SummaryOfLeftCorner(void) | |
3059 { | |
3060 char text[256+60]; | |
3061 uint8_t textpointer = 0; | |
3062 | |
3063 const SDecoinfo * pDecoinfoStandard; | |
3064 const SDecoinfo * pDecoinfoFuture; | |
3065 float fCNS; | |
3066 | |
3067 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
3068 { | |
3069 pDecoinfoStandard = &stateUsed->decolistBuehlmann; | |
3070 pDecoinfoFuture = &stateUsed->decolistFutureBuehlmann; | |
3071 } | |
3072 else | |
3073 { | |
3074 pDecoinfoStandard = &stateUsed->decolistVPM; | |
3075 pDecoinfoFuture = &stateUsed->decolistFutureVPM; | |
3076 } | |
3077 | |
3078 fCNS = stateUsed->lifeData .cns; | |
3079 if(fCNS > 999) | |
3080 fCNS = 999; | |
3081 | |
3082 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
3083 t7cY0free.WindowLineSpacing = 48; | |
3084 t7cY0free.WindowNumberOfTextLines = 6; | |
3085 t7cY0free.WindowTab = 420; | |
3086 | |
3087 // header | |
3088 textpointer = 0; | |
3089 text[textpointer++] = '\032'; | |
3090 text[textpointer++] = '\016'; | |
3091 text[textpointer++] = '\016'; | |
3092 text[textpointer++] = TXT_ppO2; | |
3093 text[textpointer++] = '\n'; | |
3094 text[textpointer++] = '\r'; | |
3095 text[textpointer++] = TXT_Ceiling; | |
3096 text[textpointer++] = '\n'; | |
3097 text[textpointer++] = '\r'; | |
3098 text[textpointer++] = TXT_ActualGradient; | |
3099 text[textpointer++] = '\n'; | |
3100 text[textpointer++] = '\r'; | |
3101 text[textpointer++] = TXT_CNS; | |
3102 text[textpointer++] = '\n'; | |
3103 text[textpointer++] = '\r'; | |
3104 text[textpointer++] = TXT_FutureTTS; | |
3105 text[textpointer++] = '\017'; | |
3106 text[textpointer++] = 0; | |
3107 t7cY0free.WindowX0 += 10; | |
3108 t7cY0free.WindowY0 += 10; | |
3109 GFX_write_string(&FontT24, &t7cY0free, text, 1); | |
3110 t7cY0free.WindowX0 -= 10; | |
3111 t7cY0free.WindowY0 -= 10; | |
3112 | |
3113 textpointer = 0; | |
3114 text[textpointer++] = '\t'; | |
3115 textpointer += snprintf(&text[textpointer],10,"\020%01.2f", stateUsed->lifeData.ppO2); | |
3116 text[textpointer++] = '\n'; | |
3117 text[textpointer++] = '\r'; | |
3118 text[textpointer++] = '\t'; | |
3119 if((pDecoinfoStandard->output_ceiling_meter > 99.9f) || (settingsGetPointer()->nonMetricalSystem)) | |
215
4a0ebade04f5
Bugfix, trivial: correctly present avg depth in overview custom
Jan Mulder <jlmulder@xs4all.nl>
parents:
214
diff
changeset
|
3120 textpointer += snprintf(&text[textpointer],10,"\020%01.0f",unit_depth_float(pDecoinfoStandard->output_ceiling_meter)); |
38 | 3121 else |
215
4a0ebade04f5
Bugfix, trivial: correctly present avg depth in overview custom
Jan Mulder <jlmulder@xs4all.nl>
parents:
214
diff
changeset
|
3122 textpointer += snprintf(&text[textpointer],10,"\020%01.1f",pDecoinfoStandard->output_ceiling_meter); |
38 | 3123 text[textpointer++] = '\n'; |
3124 text[textpointer++] = '\r'; | |
3125 text[textpointer++] = '\t'; | |
247
3949781096d4
feature: Relative GF to Saturation renames
Jan Mulder <jlmulder@xs4all.nl>
parents:
225
diff
changeset
|
3126 textpointer += snprintf(&text[textpointer],10,"\020%.0f\016\016%%\017", 100 * pDecoinfoStandard->super_saturation); |
38 | 3127 text[textpointer++] = '\n'; |
3128 text[textpointer++] = '\r'; | |
3129 text[textpointer++] = '\t'; | |
3130 textpointer += snprintf(&text[textpointer],10,"\020%.0f\016\016%%\017",fCNS); | |
3131 text[textpointer++] = '\n'; | |
3132 text[textpointer++] = '\r'; | |
3133 text[textpointer++] = '\t'; | |
214
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
3134 if (pDecoinfoFuture->output_time_to_surface_seconds < 1000 * 60) |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
3135 textpointer += snprintf(&text[textpointer],10,"\020%i'", (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 60); |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
3136 else |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
3137 textpointer += snprintf(&text[textpointer],10,"\020%ih", (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 3600); |
38 | 3138 text[textpointer++] = 0; |
196
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
3139 t7_colorscheme_mod(text); |
38 | 3140 GFX_write_string(&FontT42, &t7cY0free, text, 1); |
3141 } | |
3142 | |
3143 void t7_compass(uint16_t ActualHeading, uint16_t UserSetHeading) | |
3144 { | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3145 uint16_t ActualHeadingRose; |
38 | 3146 uint16_t LeftBorderHeading, LineHeading; |
3147 uint32_t offsetPicture; | |
3148 point_t start, stop, center; | |
3149 static int32_t LastHeading = 0; | |
3150 int32_t newHeading = 0; | |
3151 int32_t diff = 0; | |
3152 int32_t diff2 = 0; | |
3153 | |
3154 int32_t diffAbs = 0; | |
3155 int32_t diffAbs2 = 0; | |
3156 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3157 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3158 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3159 |
38 | 3160 newHeading = ActualHeading; |
3161 | |
3162 diff = newHeading - LastHeading; | |
3163 | |
3164 if(newHeading < LastHeading) | |
3165 diff2 = newHeading + 360 - LastHeading; | |
3166 else | |
3167 diff2 = newHeading - 360 - LastHeading; | |
3168 | |
3169 diffAbs = diff; | |
3170 if(diffAbs < 0) | |
3171 diffAbs *= -1; | |
3172 | |
3173 diffAbs2 = diff2; | |
3174 if(diffAbs2 < 0) | |
3175 diffAbs2 *= -1; | |
3176 | |
3177 | |
3178 if(diffAbs <= diffAbs2) | |
3179 newHeading = LastHeading + (diff / 2); | |
3180 else | |
3181 newHeading = LastHeading + (diff2 / 2); | |
3182 | |
3183 if(newHeading < 0) | |
3184 newHeading += 360; | |
3185 else | |
3186 if(newHeading >= 360) | |
3187 newHeading -= 360; | |
3188 | |
3189 LastHeading = newHeading; | |
3190 ActualHeading = newHeading; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3191 ActualHeadingRose = ActualHeading; |
225
2bb1db22b5f5
cleanup: random set of cleanups
Jan Mulder <jlmulder@xs4all.nl>
parents:
222
diff
changeset
|
3192 |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3193 if(pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3194 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3195 ActualHeadingRose = 360 - ActualHeadingRose; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3196 if (ActualHeadingRose < 170) ActualHeadingRose += 360; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3197 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3198 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3199 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3200 if (ActualHeadingRose < 90) ActualHeadingRose += 360; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3201 ActualHeading = ActualHeadingRose; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3202 } |
38 | 3203 |
3204 // new hw 160822 | |
3205 // if (ActualHeading >= 360 + 90) | |
3206 // ActualHeading = 360; | |
3207 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3208 LeftBorderHeading = 2 * (ActualHeadingRose - (CUSTOMBOX_SPACE_INSIDE/4)); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3209 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3210 if(pSettings->FlipDisplay) /* add offset caused by mirrowed drawing */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3211 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3212 LeftBorderHeading += 2 * 80; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3213 } |
38 | 3214 |
3215 offsetPicture = LeftBorderHeading * t7screenCompass.ImageHeight * 2; | |
3216 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3217 /* the background is used to draw the rotating compass rose */ |
38 | 3218 background.pointer = t7screenCompass.FBStartAdress+offsetPicture; |
3219 background.x0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3220 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3221 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3222 background.y0 = 65; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3223 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3224 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3225 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3226 background.y0 = 480 - t7screenCompass.ImageHeight - 65; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3227 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3228 |
38 | 3229 background.width = CUSTOMBOX_SPACE_INSIDE; |
3230 background.height = t7screenCompass.ImageHeight; | |
3231 | |
3232 | |
3233 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + (CUSTOMBOX_SPACE_INSIDE/2); | |
3234 stop.x = start.x; | |
3235 start.y = 65; | |
3236 stop.y = start.y + 55; | |
3237 GFX_draw_line(&t7screen, start, stop, CLUT_Font030); | |
3238 | |
3239 | |
3240 center.x = start.x; | |
3241 center.y = 300; | |
3242 | |
3243 stop.x = center.x + 44; | |
3244 stop.y = center.y + 24; | |
3245 | |
3246 | |
3247 while(ActualHeading > 359) ActualHeading -= 360; | |
3248 | |
3249 LineHeading = 360 - ActualHeading; | |
3250 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(0,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font030); // North | |
3251 LineHeading += 90; | |
3252 if(LineHeading > 359) LineHeading -= 360; | |
3253 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Maintick | |
3254 LineHeading += 90; | |
3255 if(LineHeading > 359) LineHeading -= 360; | |
3256 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3257 LineHeading += 90; | |
3258 if(LineHeading > 359) LineHeading -= 360; | |
3259 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3260 | |
3261 LineHeading = 360 - ActualHeading; | |
3262 LineHeading += 45; | |
3263 if(LineHeading > 359) LineHeading -= 360; | |
3264 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Subtick | |
3265 LineHeading += 90; | |
3266 if(LineHeading > 359) LineHeading -= 360; | |
3267 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3268 LineHeading += 90; | |
3269 if(LineHeading > 359) LineHeading -= 360; | |
3270 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3271 LineHeading += 90; | |
3272 if(LineHeading > 359) LineHeading -= 360; | |
3273 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3274 | |
3275 LineHeading = 360 - ActualHeading; | |
3276 LineHeading += 22; | |
3277 if(LineHeading > 359) LineHeading -= 360; | |
3278 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Subtick | |
3279 LineHeading += 45; | |
3280 if(LineHeading > 359) LineHeading -= 360; | |
3281 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3282 LineHeading += 45; | |
3283 if(LineHeading > 359) LineHeading -= 360; | |
3284 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3285 LineHeading += 45; | |
3286 if(LineHeading > 359) LineHeading -= 360; | |
3287 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3288 LineHeading += 45; | |
3289 if(LineHeading > 359) LineHeading -= 360; | |
3290 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Subtick | |
3291 LineHeading += 45; | |
3292 if(LineHeading > 359) LineHeading -= 360; | |
3293 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3294 LineHeading += 45; | |
3295 if(LineHeading > 359) LineHeading -= 360; | |
3296 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3297 LineHeading += 45; | |
3298 if(LineHeading > 359) LineHeading -= 360; | |
3299 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3300 | |
3301 if(UserSetHeading) | |
3302 { | |
3303 LineHeading = UserSetHeading + 360 - ActualHeading; | |
3304 if(LineHeading > 359) LineHeading -= 360; | |
3305 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(3,LineHeading), t7_compass_circle(2,LineHeading), CLUT_CompassUserHeadingTick); | |
3306 | |
3307 // R�ckpeilung, User Back Heading | |
3308 LineHeading = UserSetHeading + 360 + 180 - ActualHeading; | |
3309 if(LineHeading > 359) LineHeading -= 360; | |
3310 if(LineHeading > 359) LineHeading -= 360; | |
3311 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(3,LineHeading), t7_compass_circle(2,LineHeading), CLUT_CompassUserBackHeadingTick); | |
3312 } | |
3313 | |
3314 center.x = start.x; | |
3315 center.y = 250; | |
3316 GFX_draw_circle(&t7screen, center, 116, CLUT_Font030); | |
3317 GFX_draw_circle(&t7screen, center, 118, CLUT_Font030); | |
3318 GFX_draw_circle(&t7screen, center, 117, CLUT_Font030); | |
3319 | |
3320 | |
3321 } | |
3322 | |
3323 | |
3324 /* Font_T42: N is 27 px, S is 20 px, W is 36 px, E is 23 px | |
3325 * max is NW with 63 px | |
3326 * Font_T24: N is 15 px, S is 12 px, W is 20 px, E is 13 px | |
3327 * max is NW with 35 px | |
3328 * NE is 28 px | |
3329 * SW is 32 px | |
3330 * SE is 25 px | |
3331 * space between each is 45 px * 2 | |
3332 * FirstItem List | |
3333 * \177 \177 prepare for size | |
3334 */ | |
3335 void init_t7_compass(void) | |
3336 { | |
3337 t7screenCompass.FBStartAdress = getFrame(21); | |
3338 | |
3339 char text[256]; | |
3340 uint8_t textpointer = 0; | |
3341 | |
3342 text[textpointer++] = '\030'; | |
3343 text[textpointer++] = '\177'; | |
3344 text[textpointer++] = '\177'; | |
3345 text[textpointer++] = 76; // 90 - 14 | |
3346 text[textpointer++] = '\016'; | |
3347 text[textpointer++] = '\016'; | |
3348 text[textpointer++] = 'N'; | |
3349 text[textpointer++] = 'E'; // 96 + 28 = 124 total | |
3350 text[textpointer++] = '\017'; | |
3351 text[textpointer++] = '\177'; | |
3352 text[textpointer++] = '\177'; | |
3353 text[textpointer++] = 64; // 90 - 14 - 12 | |
3354 text[textpointer++] = 'E'; // 124 + 74 + 23 = 221 total | |
3355 text[textpointer++] = '\177'; | |
3356 text[textpointer++] = '\177'; | |
3357 text[textpointer++] = 66; // 90 - 11 - 13 | |
3358 text[textpointer++] = '\016'; | |
3359 text[textpointer++] = '\016'; | |
3360 text[textpointer++] = 'S'; | |
3361 text[textpointer++] = 'E'; | |
3362 text[textpointer++] = '\017'; | |
3363 text[textpointer++] = '\177'; | |
3364 text[textpointer++] = '\177'; | |
3365 text[textpointer++] = 68; // 90 - 12 - 10 | |
3366 text[textpointer++] = 'S'; | |
3367 text[textpointer++] = '\177'; | |
3368 text[textpointer++] = '\177'; | |
3369 text[textpointer++] = 64; // 90 - 10 - 16 | |
3370 text[textpointer++] = '\016'; | |
3371 text[textpointer++] = '\016'; | |
3372 text[textpointer++] = 'S'; | |
3373 text[textpointer++] = 'W'; | |
3374 text[textpointer++] = '\017'; | |
3375 text[textpointer++] = '\177'; | |
3376 text[textpointer++] = '\177'; | |
3377 text[textpointer++] = 56; // 90 - 16 - 18 | |
3378 text[textpointer++] = 'W'; | |
3379 text[textpointer++] = '\177'; | |
3380 text[textpointer++] = '\177'; | |
3381 text[textpointer++] = 54; // 90 - 18 - 18 | |
3382 text[textpointer++] = '\016'; | |
3383 text[textpointer++] = '\016'; | |
3384 text[textpointer++] = 'N'; | |
3385 text[textpointer++] = 'W'; | |
3386 text[textpointer++] = '\017'; | |
3387 text[textpointer++] = '\177'; | |
3388 text[textpointer++] = '\177'; | |
3389 text[textpointer++] = 59; // 90 - 17 - 14 | |
3390 text[textpointer++] = 'N'; | |
3391 text[textpointer++] = '\177'; | |
3392 text[textpointer++] = '\177'; | |
3393 text[textpointer++] = 63; // 90 - 13 - 14 | |
3394 text[textpointer++] = '\016'; | |
3395 text[textpointer++] = '\016'; | |
3396 text[textpointer++] = 'N'; | |
3397 text[textpointer++] = 'E'; | |
3398 text[textpointer++] = '\017'; | |
3399 text[textpointer++] = '\177'; | |
3400 text[textpointer++] = '\177'; | |
3401 text[textpointer++] = 64; // 90 - 14 - 12 | |
3402 text[textpointer++] = 'E'; | |
3403 text[textpointer++] = '\177'; | |
3404 text[textpointer++] = '\177'; | |
3405 text[textpointer++] = 66; // 90 - 11 - 13 | |
3406 text[textpointer++] = '\016'; | |
3407 text[textpointer++] = '\016'; | |
3408 text[textpointer++] = 'S'; | |
3409 text[textpointer++] = 'E'; | |
3410 text[textpointer++] = '\017'; | |
3411 text[textpointer++] = '\177'; | |
3412 text[textpointer++] = '\177'; | |
3413 text[textpointer++] = 68; // 90 - 12 - 10 | |
3414 text[textpointer++] = 'S'; | |
3415 text[textpointer++] = '\177'; | |
3416 text[textpointer++] = '\177'; | |
3417 text[textpointer++] = 64; // 90 - 10 - 16 | |
3418 text[textpointer++] = '\016'; | |
3419 text[textpointer++] = '\016'; | |
3420 text[textpointer++] = 'S'; | |
3421 text[textpointer++] = 'W'; | |
3422 text[textpointer++] = '\017'; | |
3423 text[textpointer++] = 0; // end | |
3424 | |
3425 GFX_write_string(&FontT42,&t7pCompass,text,1); | |
3426 | |
3427 releaseAllFramesExcept(21,t7screenCompass.FBStartAdress); | |
3428 } | |
3429 | |
3430 | |
3431 void t7_miniLiveLogProfile(void) | |
3432 { | |
3433 SWindowGimpStyle wintemp; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3434 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3435 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3436 |
38 | 3437 wintemp.left = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
3438 wintemp.right = wintemp.left + CUSTOMBOX_SPACE_INSIDE; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3439 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3440 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3441 wintemp.top = 480 - t7l1.WindowY0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3442 wintemp.bottom = wintemp. top + 200; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3443 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3444 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3445 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3446 wintemp.top = t7l1.WindowY1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3447 wintemp.bottom = wintemp. top + 200; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3448 } |
38 | 3449 |
3450 uint16_t max_depth = (uint16_t)(stateUsed->lifeData.max_depth_meter * 10); | |
3451 | |
3452 GFX_graph_print(&t7screen, &wintemp, 0,1,0, max_depth, getMiniLiveLogbookPointerToData(), getMiniLiveLogbookActualDataLength(), CLUT_Font030, NULL); | |
3453 } | |
3454 | |
3455 void t7_logo_OSTC(void) | |
3456 { | |
3457 SWindowGimpStyle windowGimp; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3458 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3459 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3460 |
38 | 3461 /* OSTC logo */ |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3462 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3463 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3464 windowGimp.left = t7l1.WindowX1 + 32; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3465 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3466 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3467 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3468 windowGimp.left = t7r1.WindowX1 + 32; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3469 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3470 |
38 | 3471 windowGimp.top = 40 + 32; |
3472 GFX_draw_image_monochrome(&t7screen, windowGimp, &ImgOSTC, 0); | |
3473 } |