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