Mercurial > public > ostc4
annotate Discovery/Src/t7.c @ 518:0a09afac969f
Added T3_gaslist:
Big font gas list was shown in gauge mode only. The previous version used the font48. To increase readability the gases are not shown in T42 double size.
Added color coding for cv gas list:
In previous version only a warning was highlighted using the red color. Now a better gas selection is highlighted in green. Gas without notification is blue while the active gas is shown in white
author | Ideenmodellierer |
---|---|
date | Sun, 06 Sep 2020 21:17:59 +0200 |
parents | 85e0945552ce |
children | 962d7b2c18c6 |
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 |
495 | 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; | |
510
0004704906d0
Display warning in t7 using centered strings
Ideenmodellierer
parents:
495
diff
changeset
|
1413 text[textpointer++] = '\001'; |
38 | 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 { | |
495 | 1588 switch(action) |
1589 { | |
1590 case ACTION_BUTTON_ENTER: | |
1591 case ACTION_PITCH_POS: | |
510
0004704906d0
Display warning in t7 using centered strings
Ideenmodellierer
parents:
495
diff
changeset
|
1592 if(*pViews != CVIEW_END) |
495 | 1593 pViews++; |
510
0004704906d0
Display warning in t7 using centered strings
Ideenmodellierer
parents:
495
diff
changeset
|
1594 if(*pViews == CVIEW_END) |
366 | 1595 { |
1596 pViews = pStartView; | |
1597 } | |
495 | 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"); | |
517 | 1800 else if(stateUsed->lifeData.actualGas.GasIdInSettings == gasId) /* actual selected gas */ |
1801 { | |
1802 strcpy(&text[textpointer++],"\030"); | |
1803 } | |
38 | 1804 else if((fPpO2ofGasAtThisDepth > fPpO2limitHigh) || (fPpO2ofGasAtThisDepth < fPpO2limitLow)) |
1805 strcpy(&text[textpointer++],"\025"); | |
517 | 1806 else if(actualBetterGasId() == gasId) |
1807 { | |
1808 strcpy(&text[textpointer++],"\026"); /* Highlight better gas */ | |
1809 } | |
38 | 1810 else |
517 | 1811 strcpy(&text[textpointer++],"\023"); |
38 | 1812 |
1813 text[textpointer++] = ' '; | |
1814 oxygen = pGasLine[gasId].oxygen_percentage; | |
1815 helium = pGasLine[gasId].helium_percentage; | |
1816 textpointer += write_gas(&text[textpointer], oxygen, helium); | |
1817 // Wechseltiefe | |
1818 if(pGasLine[gasId].depth_meter) | |
1819 { | |
1820 textpointer += snprintf(&text[textpointer],7,"\t%u %c%c",unit_depth_integer(pGasLine[gasId].depth_meter), unit_depth_char1(), unit_depth_char2()); | |
1821 } | |
1822 GFX_write_string(&FontT42, &t7cY0free, text, gasId); | |
1823 } | |
1824 break; | |
1825 | |
1826 case CVIEW_EADTime: | |
1827 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Info ); | |
1828 GFX_write_string(&FontT42,&t7cH,text,0); | |
1829 textpointer = 0; | |
1830 | |
1831 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1832 if(pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1833 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1834 t7cY0free.WindowY1 = 400; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1835 } |
38 | 1836 t7cY0free.WindowLineSpacing = 48; |
1837 t7cY0free.WindowNumberOfTextLines = 6; | |
1838 | |
1839 // time | |
1840 snprintf(text,100,"\032\001%c%c",TXT_2BYTE,TXT2BYTE_Clock ); | |
1841 GFX_write_string(&FontT42, &t7cY0free, text, 1); | |
1842 | |
1843 translateDate(stateRealGetPointer()->lifeData.dateBinaryFormat, &Sdate); | |
1844 translateTime(stateRealGetPointer()->lifeData.timeBinaryFormat, &Stime); | |
1845 if(Stime.Seconds % 2) | |
1846 textpointer += snprintf(&text[textpointer],100,"\030\001%02d:%02d",Stime.Hours,Stime.Minutes); | |
1847 else | |
1848 textpointer += snprintf(&text[textpointer],100,"\030\001%02d\031:\030%02d",Stime.Hours,Stime.Minutes); | |
1849 GFX_write_string(&FontT42, &t7cY0free, text, 2); | |
1850 | |
1851 // EAD / END | |
1852 // The equivalent air depth can be calculated for depths in metres as follows: | |
1853 // EAD = (Depth + 10) � Fraction of N2 / 0.79 - 10 (wikipedia) | |
1854 // The equivalent narcotic depth can be calculated for depths in metres as follows: | |
1855 // END = (Depth + 10) � (1 - Fraction of helium) - 10 (wikipedia) | |
1856 decom_get_inert_gases((float)stateUsed->lifeData.pressure_ambient_bar,&(stateUsed->lifeData.actualGas),&fraction_nitrogen,&fraction_helium); | |
1857 depth = stateUsed->lifeData.pressure_ambient_bar; | |
1858 surface = stateUsed->lifeData.pressure_surface_bar; | |
1859 ead = 10.f * ((depth * fraction_nitrogen/0.79f) - surface); | |
1860 end = 10.0f * ((depth * (1.f - fraction_helium)) - surface); | |
1861 if(ead < 0) | |
1862 ead = 0; | |
1863 if(end < 0) | |
1864 end = 0; | |
1865 | |
1866 snprintf(text,100,"\032\001EAD"); | |
1867 GFX_write_string(&FontT42, &t7cY0free, text, 3); | |
1868 snprintf(text,100,"\030\001%01.1f %c%c" | |
1869 , unit_depth_float(ead) | |
1870 , unit_depth_char1() | |
1871 , unit_depth_char2() | |
1872 ); | |
1873 GFX_write_string(&FontT42, &t7cY0free, text, 4); | |
1874 | |
1875 snprintf(text,100,"\032\001END"); | |
1876 GFX_write_string(&FontT42, &t7cY0free, text, 5); | |
1877 snprintf(text,100,"\030\001%01.1f %c%c" | |
1878 , unit_depth_float(ead) | |
1879 , unit_depth_char1() | |
1880 , unit_depth_char2() | |
1881 ); | |
1882 GFX_write_string(&FontT42, &t7cY0free, text, 6); | |
1883 break; | |
1884 | |
1885 case CVIEW_Profile: | |
1886 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Profile); | |
1887 GFX_write_string(&FontT42,&t7cH,text,0); | |
1888 textpointer = 0; | |
1889 t7_miniLiveLogProfile(); | |
1890 break; | |
1891 | |
1892 case CVIEW_Tissues: | |
1893 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_Tissues); | |
1894 GFX_write_string(&FontT42,&t7cH,text,0); | |
1895 textpointer = 0; | |
1896 t7_tissues(stateUsed); | |
1897 break; | |
1898 | |
1899 case CVIEW_sensors: | |
1900 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_O2monitor); | |
1901 GFX_write_string(&FontT42,&t7cH,text,0); | |
1902 textpointer = 0; | |
1903 text[textpointer++] = '\030'; // main color | |
1904 for(int i=0;i<3;i++) | |
1905 { | |
1906 if(stateUsed->diveSettings.ppo2sensors_deactivated & (1<<i)) | |
1907 { | |
1908 text[textpointer++] = '\031'; // labelcolor | |
1909 text[textpointer++] = '\001'; | |
1910 text[textpointer++] = '-'; | |
1911 text[textpointer++] = '\n'; | |
1912 text[textpointer++] = '\r'; | |
1913 text[textpointer++] = '\030'; // main color | |
1914 text[textpointer] = 0; | |
1915 } | |
1916 else | |
1917 { | |
1918 if(stateUsed->warnings.sensorOutOfBounds[i]) | |
1919 text[textpointer++] = '\025'; // Warning Red | |
1920 textpointer += snprintf(&text[textpointer],100,"\001%01.2f\n\r\030",stateUsed->lifeData.ppO2Sensor_bar[i]); | |
1921 } | |
1922 } | |
1923 t7cC.WindowLineSpacing = 95; | |
1924 t7cC.WindowNumberOfTextLines = 3; | |
1925 text[textpointer] = 0; | |
315
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1926 if(pSettings->FlipDisplay) |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1927 { |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1928 t7cC.WindowY1 -= 40; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1929 } |
38 | 1930 GFX_write_string(&FontT105,&t7cC,text,1); |
315
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1931 if(pSettings->FlipDisplay) |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1932 { |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1933 t7cC.WindowY1 += 40; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1934 } |
38 | 1935 break; |
1936 | |
1937 case CVIEW_sensors_mV: | |
1938 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE,TXT2BYTE_O2voltage); | |
1939 GFX_write_string(&FontT42,&t7cH,text,0); | |
1940 textpointer = 0; | |
1941 text[textpointer++] = '\030'; | |
1942 for(int i=0;i<3;i++) | |
1943 { | |
1944 if(stateUsed->diveSettings.ppo2sensors_deactivated & (1<<i)) | |
1945 { | |
1946 text[textpointer++] = '\031'; | |
1947 text[textpointer++] = '\001'; | |
1948 text[textpointer++] = '-'; | |
1949 text[textpointer++] = '\n'; | |
1950 text[textpointer++] = '\r'; | |
1951 text[textpointer++] = '\030'; | |
1952 text[textpointer] = 0; | |
1953 } | |
1954 else | |
1955 { | |
1956 if(stateUsed->warnings.sensorOutOfBounds[i]) | |
1957 text[textpointer++] = '\025'; | |
1958 textpointer += snprintf(&text[textpointer],100,"\001%01.1f mV\n\r\030",(stateUsed->lifeData.sensorVoltage_mV[i])); | |
1959 } | |
1960 } | |
1961 t7cC.WindowLineSpacing = 95; | |
1962 t7cC.WindowNumberOfTextLines = 3; | |
1963 text[textpointer] = 0; | |
315
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1964 if(pSettings->FlipDisplay) |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1965 { |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1966 t7cC.WindowY1 -= 40; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1967 } |
38 | 1968 GFX_write_string(&FontT48,&t7cC,text,1); |
315
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1969 if(pSettings->FlipDisplay) |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1970 { |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1971 t7cC.WindowY1 += 40; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
1972 } |
38 | 1973 break; |
1974 | |
1975 case CVIEW_Compass: | |
1976 default: | |
1977 snprintf(text,100,"\032\f\001%c%c",TXT_2BYTE, TXT2BYTE_Compass); | |
1978 GFX_write_string(&FontT42,&t7cH,text,0); | |
1979 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
|
1980 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1981 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1982 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1983 t7cY0free.WindowX0 += 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1984 t7cY0free.WindowY0 = 230; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1985 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1986 else |
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 t7cY0free.WindowY0 = 0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1990 t7cY0free.WindowY1 = 250; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1991 } |
38 | 1992 snprintf(text,100,"\030\001%03i`",(uint16_t)stateUsed->lifeData.compass_heading); |
1993 GFX_write_string(&FontT54,&t7cY0free,text,0); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1994 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1995 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1996 t7cY0free.WindowX0 -= 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1997 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1998 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
1999 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2000 t7cY0free.WindowX0 += 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2001 } |
38 | 2002 break; |
2003 | |
2004 case CVIEW_Decolist: | |
2005 snprintf(text,100,"\032\f\001 %c%c", TXT_2BYTE, TXT2BYTE_Decolist); | |
2006 GFX_write_string(&FontT42,&t7cH,text,0); | |
2007 | |
2008 const SDecoinfo * pDecoinfo; | |
2009 uint8_t depthNext, depthLast, depthSecond, depthInc; | |
2010 | |
2011 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
2012 pDecoinfo = &stateUsed->decolistBuehlmann; | |
2013 else | |
2014 pDecoinfo = &stateUsed->decolistVPM; | |
2015 | |
2016 depthLast = (uint8_t)(stateUsed->diveSettings.last_stop_depth_bar * 10); | |
2017 depthSecond = (uint8_t)(stateUsed->diveSettings.input_second_to_last_stop_depth_bar * 10); | |
2018 depthInc = (uint8_t)(stateUsed->diveSettings.input_next_stop_increment_depth_bar * 10); | |
2019 | |
2020 if(settingsGetPointer()->nonMetricalSystem) | |
2021 { | |
2022 depthLast = (uint8_t)unit_depth_integer(depthLast); | |
2023 depthSecond = (uint8_t)unit_depth_integer(depthSecond); | |
2024 depthInc = (uint8_t)unit_depth_integer(depthInc); | |
2025 } | |
2026 | |
2027 for(start=DECOINFO_STRUCT_MAX_STOPS-1; start>0; start--) | |
2028 if(pDecoinfo->output_stop_length_seconds[start]) break; | |
2029 start -= 6; | |
2030 if(start < 0) start = 0; | |
2031 | |
2032 textpointer = 0; | |
2033 for(int i=start;i<6+start;i++) | |
2034 { | |
2035 if(i == 0) | |
2036 depthNext = depthLast; | |
2037 else | |
2038 depthNext = depthSecond + (( i - 1 )* depthInc); | |
2039 | |
2040 if(pDecoinfo->output_stop_length_seconds[i]) | |
2041 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); | |
2042 else | |
2043 textpointer += snprintf(&text[textpointer],20,"\031\034 %2u\016\016%c%c\017\n\r",depthNext, unit_depth_char1(), unit_depth_char2()); | |
2044 if(textpointer > 200) break; | |
2045 } | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2046 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2047 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2048 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2049 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2050 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2051 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2052 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2053 t7cY0free.WindowY1 = 400; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2054 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2055 |
38 | 2056 t7cY0free.WindowLineSpacing = 48; |
2057 t7cY0free.WindowNumberOfTextLines = 6; | |
2058 GFX_write_string(&FontT42, &t7cY0free, text, 1); | |
2059 break; | |
2060 } | |
2061 } | |
2062 | |
2063 | |
2064 | |
2065 /* DIVE MODE | |
2066 */ | |
2067 void t7_refresh_divemode(void) | |
2068 { | |
2069 char TextL1[TEXTSIZE]; | |
2070 char TextL2[TEXTSIZE]; | |
2071 | |
2072 char TextR1[TEXTSIZE]; | |
2073 char TextR2[TEXTSIZE]; | |
2074 char TextR3[TEXTSIZE]; | |
2075 | |
2076 char TextC1[2*TEXTSIZE]; | |
2077 char TextC2[TEXTSIZE]; | |
2078 uint8_t textPointer; | |
2079 | |
2080 point_t start, stop; | |
2081 uint8_t color; | |
2082 int textlength; | |
2083 | |
2084 uint16_t nextstopLengthSeconds = 0; | |
2085 uint8_t nextstopDepthMeter = 0; | |
2086 uint8_t oxygen_percentage = 0; | |
2087 SDivetime Divetime = {0,0,0, 0}; | |
2088 SDivetime SafetyStopTime = {0,0,0,0}; | |
2089 SDivetime TimeoutTime = {0,0,0,0}; | |
2090 uint8_t customview_warnings = 0; | |
2091 const SDecoinfo * pDecoinfo; | |
2092 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2093 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2094 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2095 |
38 | 2096 Divetime.Total = stateUsed->lifeData.dive_time_seconds_without_surface_time; |
2097 Divetime.Minutes = Divetime.Total / 60; | |
2098 Divetime.Seconds = Divetime.Total - ( Divetime.Minutes * 60 ); | |
2099 | |
2100 SafetyStopTime.Total = timer_Safetystop_GetCountDown(); | |
2101 SafetyStopTime.Minutes = SafetyStopTime.Total / 60; | |
2102 SafetyStopTime.Seconds = SafetyStopTime.Total - (SafetyStopTime.Minutes * 60); | |
2103 | |
2104 TimeoutTime.Total = settingsGetPointer()->timeoutDiveReachedZeroDepth - stateUsed->lifeData.counterSecondsShallowDepth; | |
2105 if(TimeoutTime.Total > settingsGetPointer()->timeoutDiveReachedZeroDepth) | |
2106 { | |
2107 TimeoutTime.Total = 0; | |
2108 } | |
2109 TimeoutTime.Minutes = TimeoutTime.Total / 60; | |
2110 TimeoutTime.Seconds = TimeoutTime.Total - (TimeoutTime.Minutes * 60); | |
2111 | |
2112 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
2113 pDecoinfo = &stateUsed->decolistBuehlmann; | |
2114 else | |
2115 pDecoinfo = &stateUsed->decolistVPM; | |
2116 | |
2117 if(pDecoinfo->output_time_to_surface_seconds) | |
2118 { | |
2119 tHome_findNextStop(pDecoinfo->output_stop_length_seconds, &nextstopDepthMeter, &nextstopLengthSeconds); | |
2120 } | |
2121 else | |
2122 { | |
2123 nextstopDepthMeter = 0; | |
2124 nextstopLengthSeconds = 0; | |
2125 } | |
2126 | |
2127 /* depth */ | |
174
ecb71521d004
Bugfix: make max depth move with current depth (part 2)
Jan Mulder <jlmulder@xs4all.nl>
parents:
166
diff
changeset
|
2128 float depth = unit_depth_float(stateUsed->lifeData.depth_meter); |
38 | 2129 |
2130 if(depth <= 0.3f) | |
2131 depth = 0; | |
2132 | |
2133 if(settingsGetPointer()->nonMetricalSystem) | |
2134 snprintf(TextL1,TEXTSIZE,"\032\f[feet]"); | |
2135 else | |
2136 snprintf(TextL1,TEXTSIZE,"\032\f%c",TXT_Depth); | |
2137 GFX_write_string(&FontT24,&t7l1,TextL1,0); | |
2138 | |
2139 if((stateUsed->lifeData.ascent_rate_meter_per_min > 8) || (stateUsed->lifeData.ascent_rate_meter_per_min < -10)) | |
2140 { | |
2141 snprintf(TextL1,TEXTSIZE,"\f\002%.0f %c%c/min " | |
2142 , unit_depth_float(stateUsed->lifeData.ascent_rate_meter_per_min) | |
2143 , unit_depth_char1() | |
2144 , unit_depth_char2() | |
2145 ); | |
2146 GFX_write_string(&FontT24,&t7l1,TextL1,0); | |
2147 } | |
2148 | |
2149 if( depth < 100) | |
2150 snprintf(TextL1,TEXTSIZE,"\020%01.1f",depth); | |
2151 else | |
2152 snprintf(TextL1,TEXTSIZE,"\020%01.0f",depth); | |
2153 | |
2154 t7_colorscheme_mod(TextL1); | |
2155 GFX_write_string(&FontT144,&t7l1,TextL1,1); | |
2156 | |
2157 /* max depth */ | |
2158 snprintf(TextL2,TEXTSIZE,"\032\f%c",TXT_MaxDepth); | |
2159 GFX_write_string(&FontT42,&t7l2,TextL2,0); | |
2160 | |
2161 if(unit_depth_float(stateUsed->lifeData.max_depth_meter) < 100) | |
2162 snprintf(TextL2,TEXTSIZE,"\020%01.1f",unit_depth_float(stateUsed->lifeData.max_depth_meter)); | |
2163 else | |
2164 snprintf(TextL2,TEXTSIZE,"\020%01.0f",unit_depth_float(stateUsed->lifeData.max_depth_meter)); | |
2165 | |
2166 t7_colorscheme_mod(TextL2); | |
2167 GFX_write_string(&FontT105,&t7l2,TextL2,1); | |
2168 | |
187
485c5135cf7f
cleanup: forgotten cleanup from 9da7dd50e2ec
Jan Mulder <jlmulder@xs4all.nl>
parents:
178
diff
changeset
|
2169 /* ascent rate graph */ |
392 | 2170 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 | 2171 { |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2172 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2173 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2174 start.y = t7l1.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2175 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2176 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2177 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2178 start.y = t7l3.WindowY0 - 25; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2179 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2180 |
38 | 2181 for(int i = 0; i<4;i++) |
2182 { | |
2183 start.y += 5*6; | |
2184 stop.y = start.y; | |
2185 start.x = CUSTOMBOX_LINE_LEFT - 1; | |
2186 stop.x = start.x - 17; | |
2187 GFX_draw_line(&t7screen, start, stop, 0); | |
2188 // start.x = CUSTOMBOX_LINE_RIGHT + 2; old right too | |
2189 // stop.x = start.x + 17; | |
2190 // GFX_draw_line(&t7screen, start, stop, 0); | |
2191 } | |
2192 // new thick bar design Sept. 2015 | |
2193 start.x = CUSTOMBOX_LINE_LEFT - CUSTOMBOX_OUTSIDE_OFFSET - 3 - 5; | |
2194 stop.x = start.x; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2195 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2196 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2197 start.y = t7l1.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2198 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2199 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2200 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2201 start.y = t7l3.WindowY0 - 25; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2202 } |
38 | 2203 stop.y = start.y + (uint16_t)(stateUsed->lifeData.ascent_rate_meter_per_min * 6); |
2204 stop.y -= 3; // wegen der Liniendicke von 12 anstelle von 9 | |
2205 if(stop.y >= 470) | |
2206 stop.y = 470; | |
2207 start.y += 7; // starte etwas weiter oben | |
2208 if(stateUsed->lifeData.ascent_rate_meter_per_min <= 10) | |
2209 color = CLUT_EverythingOkayGreen; | |
2210 else | |
2211 if(stateUsed->lifeData.ascent_rate_meter_per_min <= 15) | |
2212 color = CLUT_WarningYellow; | |
2213 else | |
2214 color = CLUT_WarningRed; | |
2215 | |
2216 GFX_draw_thick_line(12,&t7screen, start, stop, color); | |
2217 } | |
2218 //snprintf(TextL2,TEXTSIZE,"\f%.1f m/min",stateUsed->lifeData.ascent_rate_meter_per_min); | |
2219 | |
2220 /* divetime */ | |
2221 if(stateUsed->lifeData.counterSecondsShallowDepth) | |
2222 { | |
2223 snprintf(TextR1,TEXTSIZE,"\f\002\136 %u:%02u",TimeoutTime.Minutes, TimeoutTime.Seconds); | |
2224 GFX_write_string(&FontT42,&t7r1,TextR1,0); | |
2225 } | |
2226 else | |
2227 { | |
2228 snprintf(TextR1,TEXTSIZE,"\032\f\002%c",TXT_Divetime); | |
2229 GFX_write_string(&FontT42,&t7r1,TextR1,0); | |
2230 } | |
2231 | |
2232 if(Divetime.Minutes < 1000) | |
2233 snprintf(TextR1,TEXTSIZE,"\020\016\002%u:%02u",Divetime.Minutes, Divetime.Seconds); | |
2234 else | |
2235 snprintf(TextR1,TEXTSIZE,"\020\016\002%u'",Divetime.Minutes); | |
2236 t7_colorscheme_mod(TextR1); | |
2237 GFX_write_string(&FontT105,&t7r1,TextR1,1); | |
2238 | |
2239 /* next deco stop */ | |
2240 if(nextstopDepthMeter) | |
2241 { | |
2242 snprintf(TextR2,TEXTSIZE,"\032\f\002%c",TXT_Decostop); | |
2243 GFX_write_string(&FontT42,&t7r2,TextR2,0); | |
2244 textlength = snprintf(TextR2,TEXTSIZE,"\020\002%u%c%c %u'" | |
2245 , unit_depth_integer(nextstopDepthMeter) | |
2246 , unit_depth_char1_T105() | |
2247 , unit_depth_char2_T105() | |
2248 , (nextstopLengthSeconds+59)/60); | |
2249 t7_colorscheme_mod(TextR2); | |
2250 if(time_elapsed_ms(pDecoinfo->tickstamp, HAL_GetTick()) > MAX_AGE_DECOINFO_MS) | |
2251 TextR2[0] = '\021'; | |
2252 if(textlength <= 9) | |
2253 GFX_write_string(&FontT105,&t7r2,TextR2,1); | |
2254 else | |
2255 GFX_write_string(&FontT54,&t7r2,TextR2,1); | |
2256 } | |
2257 else if(SafetyStopTime.Total && (depth > timer_Safetystop_GetDepthUpperLimit())) | |
2258 { | |
2259 snprintf(TextR2,TEXTSIZE,"\032\f\002%c%c",TXT_2BYTE,TXT2BYTE_SafetyStop2); | |
2260 GFX_write_string(&FontT42,&t7r2,TextR2,0); | |
2261 snprintf(TextR2,TEXTSIZE,"\020\016\002%u:%02u",SafetyStopTime.Minutes,SafetyStopTime.Seconds); | |
2262 t7_colorscheme_mod(TextR2); | |
2263 GFX_write_string(&FontT105,&t7r2,TextR2,1); | |
2264 } | |
2265 | |
2266 /* tts - option 1 | |
2267 * ndl - option 2 | |
2268 * empty - option 3 */ | |
2269 if(pDecoinfo->output_time_to_surface_seconds) | |
2270 { | |
2271 snprintf(TextR3,TEXTSIZE,"\032\f\002%c",TXT_TTS); | |
2272 GFX_write_string(&FontT42,&t7r3,TextR3,0); | |
2273 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
|
2274 snprintf(TextR3,TEXTSIZE,"\020\002%i'",(pDecoinfo->output_time_to_surface_seconds + 59)/ 60); |
38 | 2275 else |
214
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2276 snprintf(TextR3,TEXTSIZE,"\020\002%ih",(pDecoinfo->output_time_to_surface_seconds + 59)/ 3600); |
38 | 2277 t7_colorscheme_mod(TextR3); |
2278 if(time_elapsed_ms(pDecoinfo->tickstamp, HAL_GetTick()) > MAX_AGE_DECOINFO_MS) | |
2279 TextR2[0] = '\021'; | |
2280 GFX_write_string(&FontT105,&t7r3,TextR3,1); | |
2281 } | |
2282 else if(pDecoinfo->output_ndl_seconds) | |
2283 { | |
2284 snprintf(TextR3,TEXTSIZE,"\032\f\002%c",TXT_Nullzeit); | |
2285 GFX_write_string(&FontT42,&t7r3,TextR3,0); | |
2286 if(pDecoinfo->output_ndl_seconds < 1000 * 60) | |
2287 snprintf(TextR3,TEXTSIZE,"\020\002%i'",pDecoinfo->output_ndl_seconds/60); | |
2288 else | |
2289 snprintf(TextR3,TEXTSIZE,"\020\002%ih",pDecoinfo->output_ndl_seconds/3600); | |
2290 t7_colorscheme_mod(TextR3); | |
2291 if(time_elapsed_ms(pDecoinfo->tickstamp, HAL_GetTick()) > MAX_AGE_DECOINFO_MS) | |
2292 TextR2[0] = '\021'; | |
2293 GFX_write_string(&FontT105,&t7r3,TextR3,1); | |
2294 } | |
2295 | |
2296 /* Menu Selection (and gas mix) */ | |
2297 if(get_globalState() == StDMGAS) | |
2298 { | |
2299 textPointer = 0; | |
2300 TextR1[textPointer++] = '\a'; | |
2301 // TextR1[textPointer++] = '\f'; | |
2302 TextR1[textPointer++] = '\001'; | |
2303 TextR1[textPointer++] = ' '; | |
2304 textPointer += tHome_gas_writer(stateUsed->diveSettings.gas[actualBetterGasId()].oxygen_percentage,stateUsed->diveSettings.gas[actualBetterGasId()].helium_percentage,&TextR1[textPointer]); | |
2305 TextR1[textPointer++] = '?'; | |
2306 TextR1[textPointer++] = ' '; | |
2307 TextR1[textPointer++] = 0; | |
2308 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2309 } | |
2310 else if(get_globalState() == StDMSPT) | |
2311 { | |
2312 textPointer = 0; | |
2313 TextR1[textPointer++] = '\a'; | |
2314 TextR1[textPointer++] = '\001'; | |
2315 TextR1[textPointer++] = ' '; | |
2316 textPointer += snprintf(&TextR1[textPointer],5,"%f01.2",((float)(stateUsed->diveSettings.setpoint[actualBetterSetpointId()].setpoint_cbar))/100); | |
2317 TextR1[textPointer++] = '?'; | |
2318 TextR1[textPointer++] = ' '; | |
2319 TextR1[textPointer++] = 0; | |
2320 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2321 } | |
2322 else if(get_globalState() == StDMENU) | |
2323 { | |
2324 snprintf(TextR1,TEXTSIZE,"\a\001%c%c", TXT_2BYTE, TXT2BYTE_DiveMenuQ); | |
2325 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2326 } | |
2327 else if(get_globalState() == StDSIM1) | |
2328 { | |
2329 snprintf(TextR1,TEXTSIZE,"\a\001%c%c", TXT_2BYTE, TXT2BYTE_DiveQuitQ); | |
2330 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2331 } | |
2332 else if(get_globalState() == StDSIM2) | |
2333 { | |
2334 if(settingsGetPointer()->nonMetricalSystem) | |
2335 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:-3.33ft "); | |
2336 else | |
2337 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:-1m "); | |
2338 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2339 | |
2340 snprintf(TextR1,TEXTSIZE,"\a\f %u %c%c" | |
2341 , unit_depth_integer(simulation_get_aim_depth()) | |
2342 , unit_depth_char1() | |
2343 , unit_depth_char2() | |
2344 ); | |
2345 GFX_write_string_color(&FontT42,&t7l1,TextR1,0,CLUT_WarningYellow); | |
2346 | |
2347 } | |
2348 else if(get_globalState() == StDSIM3) | |
2349 { | |
2350 if(settingsGetPointer()->nonMetricalSystem) | |
2351 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:+3.33ft "); | |
2352 else | |
2353 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:+1m "); | |
2354 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2355 snprintf(TextR1,TEXTSIZE,"\a\f %u %c%c" | |
2356 , unit_depth_integer(simulation_get_aim_depth()) | |
2357 , unit_depth_char1() | |
2358 , unit_depth_char2() | |
2359 ); | |
2360 GFX_write_string_color(&FontT42,&t7l1,TextR1,0,CLUT_WarningYellow); | |
2361 } | |
2362 else if(get_globalState() == StDSIM4) | |
2363 { | |
2364 snprintf(TextR1,TEXTSIZE,"\a\001" " Sim:+5' "); | |
2365 GFX_write_string_color(&FontT48,&t7c2,TextR1,0,CLUT_WarningYellow); | |
2366 snprintf(TextR1,TEXTSIZE,"\a\f %u %c%c" | |
2367 , unit_depth_integer(simulation_get_aim_depth()) | |
2368 , unit_depth_char1() | |
2369 , unit_depth_char2() | |
2370 ); | |
2371 GFX_write_string_color(&FontT42,&t7l1,TextR1,0,CLUT_WarningYellow); | |
2372 } | |
2373 else | |
2374 { | |
2375 /* gas mix */ | |
2376 oxygen_percentage = 100; | |
2377 oxygen_percentage -= stateUsed->lifeData.actualGas.nitrogen_percentage; | |
2378 oxygen_percentage -= stateUsed->lifeData.actualGas.helium_percentage; | |
2379 | |
2380 textPointer = 0; | |
2381 TextC2[textPointer++] = '\020'; | |
2382 if(stateUsed->warnings.betterGas && warning_count_high_time) | |
2383 { | |
2384 TextC2[textPointer++] = '\a'; | |
2385 } | |
2386 else | |
2387 { | |
2388 float fPpO2limitHigh, fPpO2now; | |
2389 | |
2390 if(actualLeftMaxDepth(stateUsed)) | |
2391 fPpO2limitHigh = settingsGetPointer()->ppO2_max_deco; | |
2392 else | |
2393 fPpO2limitHigh = settingsGetPointer()->ppO2_max_std; | |
2394 | |
2395 fPpO2now = (stateUsed->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * oxygen_percentage; | |
2396 | |
2397 if((fPpO2now > fPpO2limitHigh) || (fPpO2now < (float)(settingsGetPointer()->ppO2_min))) | |
2398 TextC2[textPointer++] = '\025'; | |
2399 } | |
2400 TextC2[textPointer++] = '\002'; | |
2401 textPointer += tHome_gas_writer(oxygen_percentage,stateUsed->lifeData.actualGas.helium_percentage,&TextC2[textPointer]); | |
2402 | |
2403 if(stateUsed->warnings.betterGas && warning_count_high_time) | |
2404 { | |
2405 if(TextC2[0] == '\020') | |
2406 { | |
2407 TextC2[0] = '\004'; // NOP | |
2408 } | |
2409 GFX_write_string_color(&FontT48,&t7c2,TextC2,0,CLUT_WarningYellow); | |
2410 } | |
2411 else | |
2412 { | |
2413 t7_colorscheme_mod(TextC2); | |
2414 GFX_write_string(&FontT48,&t7c2,TextC2,0); // T54 has only numbers | |
2415 } | |
2416 | |
2417 if(stateUsed->diveSettings.ccrOption) | |
2418 { | |
2419 if(stateUsed->diveSettings.diveMode == DIVEMODE_CCR) | |
2420 { | |
2421 snprintf(TextC2,TEXTSIZE,"\020%01.2f",stateUsed->lifeData.ppO2); | |
2422 if(stateUsed->warnings.betterSetpoint && warning_count_high_time && (stateUsed->diveSettings.diveMode == DIVEMODE_CCR)) | |
2423 { | |
2424 TextC2[0] = '\a'; // inverse instead of color \020 | |
2425 GFX_write_string_color(&FontT48,&t7c2,TextC2,0,CLUT_WarningYellow); | |
2426 } | |
2427 else | |
2428 { | |
2429 t7_colorscheme_mod(TextC2); | |
2430 GFX_write_string(&FontT48,&t7c2,TextC2,0); | |
2431 } | |
2432 } | |
2433 } | |
2434 else if(settingsGetPointer()->alwaysShowPPO2) | |
2435 { | |
2436 snprintf(TextC2,TEXTSIZE,"\020%01.2f",stateUsed->lifeData.ppO2); | |
2437 t7_colorscheme_mod(TextC2); | |
2438 GFX_write_string(&FontT48,&t7c2,TextC2,0); | |
2439 } | |
2440 } | |
2441 | |
2442 /* algorithm, ccr, bailout and battery */ | |
2443 /* and permanent warnings (CNS) */ | |
2444 | |
2445 if((stateUsed->warnings.cnsHigh) && display_count_high_time) | |
2446 { | |
2447 TextC2[0] = '\f'; | |
2448 TextC2[1] = TXT_2BYTE; | |
2449 TextC2[2] = TXT2BYTE_WarnCnsHigh; | |
2450 TextC2[3] = 0; | |
2451 GFX_write_string_color(&FontT48,&t7c1,TextC2,0,CLUT_WarningRed); | |
2452 } | |
2453 else | |
2454 { | |
2455 if(stateUsed->warnings.aGf) | |
2456 { | |
2457 GFX_write_string_color(&FontT48,&t7c1,"\f" "aGF",0,CLUT_WarningYellow); | |
2458 } | |
2459 else if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
2460 { | |
2461 GFX_write_string(&FontT48,&t7c1,"\027\f" "GF",0); | |
2462 } | |
2463 else | |
2464 { | |
2465 GFX_write_string(&FontT48,&t7c1,"\027\f" "VPM",0); | |
2466 } | |
2467 | |
2468 if(stateUsed->diveSettings.diveMode == DIVEMODE_CCR) | |
2469 GFX_write_string(&FontT24,&t7c1,"\027\f\002" "CCR",0); | |
2470 // GFX_write_string(&FontT24,&t7c1,"\f\177\177\x80" "CCR",0); | |
2471 else | |
2472 if(stateUsed->diveSettings.ccrOption) | |
2473 GFX_write_string(&FontT24,&t7c1,"\f\002\024" "Bailout",0); | |
2474 // GFX_write_string(&FontT24,&t7c1,"\f\177\177\x80\024" "Bailout",0); | |
2475 } | |
2476 TextC1[0] = '\020'; | |
2477 TextC1[1] = '3'; | |
2478 TextC1[2] = '1'; | |
2479 TextC1[3] = '1'; | |
2480 TextC1[4] = '1'; | |
2481 TextC1[5] = '1'; | |
2482 TextC1[6] = '1'; | |
2483 TextC1[7] = '1'; | |
2484 TextC1[8] = '1'; | |
2485 TextC1[9] = '1'; | |
2486 TextC1[10] = '1'; | |
2487 TextC1[11] = '1'; | |
2488 TextC1[12] = '0'; | |
2489 TextC1[13] = 0; | |
2490 | |
2491 for(int i=1;i<=10;i++) | |
2492 { | |
2493 if( stateUsed->lifeData.battery_charge > (9 * i)) | |
2494 TextC1[i+1] += 1; | |
2495 } | |
2496 | |
2497 if(stateUsed->warnings.lowBattery) | |
2498 { | |
2499 TextC1[0] = '\025'; | |
2500 if(warning_count_high_time) | |
2501 { | |
2502 for(int i=2;i<=11;i++) | |
2503 TextC1[i] = '1'; | |
2504 } | |
2505 else | |
2506 { | |
2507 TextC1[2] = '2'; | |
2508 } | |
2509 GFX_write_string(&Batt24,&t7batt,TextC1,0); | |
2510 | |
2511 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | |
2512 { | |
2513 snprintf(TextC1,16,"\004\025\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | |
2514 if(warning_count_high_time) | |
2515 TextC1[0] = '\a'; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2516 GFX_write_string(&FontT24,&t7voltage,TextC1,0); |
38 | 2517 } |
2518 } | |
2519 else | |
2520 { | |
2521 t7_colorscheme_mod(TextC1); | |
2522 GFX_write_string(&Batt24,&t7batt,TextC1,0); | |
2523 | |
2524 if((stateUsed->lifeData.battery_charge > 0) && (stateUsed->lifeData.battery_charge < 140)) | |
2525 { | |
2526 snprintf(TextC1,16,"\020\f\002%u%%",(uint8_t)stateUsed->lifeData.battery_charge); | |
2527 t7_colorscheme_mod(TextC1); | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2528 GFX_write_string(&FontT24,&t7voltage,TextC1,0); // t7batt |
38 | 2529 } |
2530 } | |
2531 | |
2532 /* customizable left lower corner */ | |
2533 t7_refresh_divemode_userselected_left_lower_corner(); | |
2534 | |
2535 | |
2536 /* customview - option 1 | |
2537 * warning - option 2 */ | |
2538 if(stateUsed->warnings.numWarnings) | |
2539 customview_warnings = t7_test_customview_warnings(); | |
2540 | |
166
255eedad4155
cleanup: get rid of some compile warnings
Jan Mulder <jlmulder@xs4all.nl>
parents:
149
diff
changeset
|
2541 background.pointer = 0; |
38 | 2542 if(customview_warnings && warning_count_high_time) |
2543 t7_show_customview_warnings(); | |
2544 else | |
2545 t7_refresh_customview(); | |
2546 | |
2547 /* the frame */ | |
2548 draw_frame(1,1, CLUT_DIVE_pluginbox, CLUT_DIVE_FieldSeperatorLines); | |
2549 } | |
2550 | |
2551 void t7_set_field_to_primary(void) | |
2552 { | |
2553 if(stateUsed->mode == MODE_DIVE) | |
2554 selection_custom_field = settingsGetPointer()->tX_userselectedLeftLowerCornerPrimary; | |
2555 } | |
2556 | |
2557 void t7_change_field(void) | |
2558 { | |
2559 selection_custom_field++; | |
2560 | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2561 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
|
2562 { |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2563 selection_custom_field++; |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2564 } |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2565 |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2566 if(selection_custom_field >= LLC_END) |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2567 { |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2568 selection_custom_field = LLC_Empty; |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2569 } |
38 | 2570 } |
2571 | |
2572 | |
2573 void t7_refresh_divemode_userselected_left_lower_corner(void) | |
2574 { | |
2575 if(!selection_custom_field) | |
2576 return; | |
2577 | |
2578 char headerText[10]; | |
2579 char text[TEXTSIZE]; | |
2580 uint8_t textpointer = 0; | |
2581 _Bool tinyHeaderFont = 0; | |
2582 uint8_t line = 0; | |
457 | 2583 #ifdef ENABLE_BOTTLE_SENSOR |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2584 uint16_t agedColor = 0; |
457 | 2585 #endif |
38 | 2586 |
2587 SDivetime Stopwatch = {0,0,0,0}; | |
2588 float fAverageDepth, fAverageDepthAbsolute; | |
2589 const SDecoinfo * pDecoinfoStandard; | |
2590 const SDecoinfo * pDecoinfoFuture; | |
2591 float fCNS; | |
2592 float temperature; | |
2593 | |
2594 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
2595 { | |
2596 pDecoinfoStandard = &stateUsed->decolistBuehlmann; | |
2597 pDecoinfoFuture = &stateUsed->decolistFutureBuehlmann; | |
2598 } | |
2599 else | |
2600 { | |
2601 pDecoinfoStandard = &stateUsed->decolistVPM; | |
2602 pDecoinfoFuture = &stateUsed->decolistFutureVPM; | |
2603 } | |
2604 | |
2605 Stopwatch.Total = timer_Stopwatch_GetTime(); | |
2606 Stopwatch.Minutes = Stopwatch.Total / 60; | |
2607 Stopwatch.Seconds = Stopwatch.Total - ( Stopwatch.Minutes * 60 ); | |
2608 fAverageDepth = timer_Stopwatch_GetAvarageDepth_Meter(); | |
2609 fAverageDepthAbsolute = stateUsed->lifeData.average_depth_meter; | |
2610 | |
2611 headerText[0] = '\032'; | |
2612 headerText[1] = '\f'; | |
2613 | |
2614 switch(selection_custom_field) | |
2615 { | |
2616 /* Temperature */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2617 case LLC_Temperature: |
38 | 2618 default: |
189
8b8074080d7b
Bugfix: average temperature on arrival from RTE instead of display time
Jan Mulder <jlmulder@xs4all.nl>
parents:
187
diff
changeset
|
2619 temperature = unit_temperature_float(stateUsed->lifeData.temperature_celsius); |
38 | 2620 headerText[2] = TXT_Temperature; |
2621 textpointer = snprintf(text,TEXTSIZE,"\020\016%01.1f \140",temperature); // "\016\016%01.1f `" + C or F | |
2622 if(settingsGetPointer()->nonMetricalSystem == 0) | |
2623 text[textpointer++] = 'C'; | |
2624 else | |
2625 text[textpointer++] = 'F'; | |
2626 text[textpointer++] = 0; | |
2627 tinyHeaderFont = 0; | |
2628 break; | |
2629 | |
2630 /* Average Depth */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2631 case LLC_AverageDepth: |
38 | 2632 headerText[2] = TXT_AvgDepth; |
2633 if(settingsGetPointer()->nonMetricalSystem) | |
2634 snprintf(text,TEXTSIZE,"\020%01.0f",unit_depth_float(fAverageDepthAbsolute)); | |
2635 else | |
2636 snprintf(text,TEXTSIZE,"\020%01.1f",fAverageDepthAbsolute); | |
2637 break; | |
2638 | |
2639 /* ppO2 */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2640 case LLC_ppO2: |
38 | 2641 headerText[2] = TXT_ppO2; |
2642 snprintf(text,TEXTSIZE,"\020%01.2f",stateUsed->lifeData.ppO2); | |
2643 break; | |
2644 | |
2645 /* Stop Uhr */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2646 case LLC_Stopwatch: |
38 | 2647 headerText[2] = TXT_Stopwatch; |
2648 if(settingsGetPointer()->nonMetricalSystem) | |
2649 snprintf(text,TEXTSIZE,"\020\016\016%u:%02u\n\r%01.0f",Stopwatch.Minutes, Stopwatch.Seconds,unit_depth_float(fAverageDepth)); | |
2650 else | |
2651 snprintf(text,TEXTSIZE,"\020\016\016%u:%02u\n\r%01.1f",Stopwatch.Minutes, Stopwatch.Seconds,fAverageDepth); | |
2652 tinyHeaderFont = 1; | |
2653 line = 1; | |
2654 break; | |
2655 | |
2656 /* Ceiling */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2657 case LLC_Ceiling: |
38 | 2658 headerText[2] = TXT_Ceiling; |
2659 if((pDecoinfoStandard->output_ceiling_meter > 99.9f) || (settingsGetPointer()->nonMetricalSystem)) | |
2660 snprintf(text,TEXTSIZE,"\020%01.0f",unit_depth_float(pDecoinfoStandard->output_ceiling_meter)); | |
2661 else | |
2662 snprintf(text,TEXTSIZE,"\020%01.1f",pDecoinfoStandard->output_ceiling_meter); | |
2663 break; | |
2664 | |
2665 /* Future TTS */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2666 case LLC_FutureTTS: |
38 | 2667 headerText[2] = TXT_FutureTTS; |
214
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2668 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
|
2669 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
|
2670 else |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
2671 snprintf(text,TEXTSIZE,"\020\016\016@+%u'\n\r" "%ih TTS",settingsGetPointer()->future_TTS, (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 3600); |
38 | 2672 tinyHeaderFont = 1; |
2673 line = 1; | |
2674 break; | |
2675 | |
2676 /* CNS */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2677 case LLC_CNS: |
38 | 2678 headerText[2] = TXT_CNS; |
2679 fCNS = stateUsed->lifeData .cns; | |
2680 if(fCNS > 999) | |
2681 fCNS = 999; | |
2682 snprintf(text,TEXTSIZE,"\020%.0f\016\016%%\017",fCNS); | |
2683 break; | |
2684 | |
2685 /* actual GF */ | |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2686 case LLC_GF: |
38 | 2687 headerText[2] = TXT_ActualGradient; |
247
3949781096d4
feature: Relative GF to Saturation renames
Jan Mulder <jlmulder@xs4all.nl>
parents:
225
diff
changeset
|
2688 snprintf(text,TEXTSIZE,"\020%.0f\016\016%%\017",100 * pDecoinfoStandard->super_saturation); |
38 | 2689 break; |
446
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
442
diff
changeset
|
2690 #ifdef ENABLE_BOTTLE_SENSOR |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2691 case LCC_BottleBar: |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2692 headerText[2] = TXT_AtemGasVorrat; |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2693 tinyHeaderFont = 1; |
448
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2694 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
|
2695 break; |
446
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
442
diff
changeset
|
2696 #endif |
38 | 2697 } |
2698 headerText[3] = 0; | |
2699 | |
2700 if(tinyHeaderFont) | |
2701 GFX_write_string(&FontT24,&t7l3,headerText,0); | |
2702 else | |
2703 GFX_write_string(&FontT42,&t7l3,headerText,0); | |
2704 | |
2705 t7_colorscheme_mod(text); | |
446
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
442
diff
changeset
|
2706 #ifndef ENABLE_BOTTLE_SENSOR |
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
442
diff
changeset
|
2707 GFX_write_string(&FontT105,&t7l3,text,line); |
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
442
diff
changeset
|
2708 #else |
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
442
diff
changeset
|
2709 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
|
2710 { |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2711 GFX_write_string(&FontT105,&t7l3,text,line); |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2712 } |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2713 else |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2714 { |
448
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2715 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
|
2716 if(agedColor > 1200) |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2717 { |
448
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2718 agedColor = CLUT_WarningRed; |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2719 } |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2720 else |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2721 if(agedColor > 600) |
448
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2722 { |
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2723 agedColor = CLUT_MenuLineUnselected; |
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2724 } |
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2725 else |
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2726 if(agedColor > 20) |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2727 { |
448
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2728 agedColor = CLUT_Font031; |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2729 } |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2730 else |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2731 { |
448
f7c66593ab82
Added compile switch to show voltage parallel to charge status percantage
ideenmodellierer
parents:
446
diff
changeset
|
2732 agedColor = CLUT_Font020; |
442
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2733 } |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2734 |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2735 GFX_write_string_color(&FontT105,&t7l3,text,line,agedColor); |
adb18fe92737
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
432
diff
changeset
|
2736 } |
446
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
442
diff
changeset
|
2737 #endif |
38 | 2738 } |
2739 | |
2740 /* Private functions ---------------------------------------------------------*/ | |
2741 | |
2742 uint8_t t7_customtextPrepare(char * text) | |
2743 { | |
2744 uint8_t i, j, textptr, lineCount; | |
2745 char nextChar; | |
2746 | |
2747 textptr = 0; | |
2748 lineCount = 0; | |
2749 | |
2750 text[textptr++] = TXT_MINIMAL; | |
2751 | |
2752 j = 0; | |
2753 i = 0; | |
2754 do | |
2755 { | |
2756 j += i; | |
2757 i = 0; | |
2758 do | |
2759 { | |
2760 nextChar = settingsGetPointer()->customtext[i+j]; | |
2761 i++; | |
2762 if((!nextChar) || (nextChar =='\n') || (nextChar =='\r')) | |
2763 break; | |
2764 text[textptr++] = nextChar; | |
2765 } while (i < 12); | |
2766 | |
2767 if(!nextChar) | |
2768 break; | |
2769 | |
2770 if(lineCount < 3) | |
2771 { | |
2772 text[textptr++] = '\n'; | |
2773 text[textptr++] = '\r'; | |
2774 } | |
2775 lineCount++; | |
2776 for(uint8_t k=0;k<2;k++) | |
2777 { | |
2778 nextChar = settingsGetPointer()->customtext[i+j+k]; | |
2779 if((nextChar =='\n') || (nextChar =='\r')) | |
2780 i++; | |
2781 else | |
2782 break; | |
2783 } | |
2784 | |
2785 } while (lineCount < 4); | |
2786 | |
2787 text[textptr] = 0; | |
2788 return lineCount; | |
2789 } | |
2790 | |
196
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2791 static void t7_colorscheme_mod(char *text) { |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2792 char *p = text; |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2793 while (*p) { |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2794 if ((*p == '\020') && !GFX_is_colorschemeDiveStandard()) |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2795 *p = '\027'; |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2796 p++; |
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
2797 } |
38 | 2798 } |
2799 | |
2800 void draw_frame(_Bool PluginBoxHeader, _Bool LinesOnTheSides, uint8_t colorBox, uint8_t colorLinesOnTheSide) | |
2801 { | |
2802 point_t LeftLow, WidthHeight; | |
2803 point_t start, stop; | |
2804 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2805 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2806 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2807 |
38 | 2808 // plugin box |
2809 LeftLow.x = CUSTOMBOX_LINE_LEFT; | |
2810 WidthHeight.x = CUSTOMBOX_LINE_RIGHT - CUSTOMBOX_LINE_LEFT; | |
2811 LeftLow.y = 60; | |
2812 WidthHeight.y = 440 - LeftLow.y; | |
2813 GFX_draw_box(&t7screen, LeftLow, WidthHeight, 1, colorBox); | |
2814 | |
2815 if(PluginBoxHeader) | |
2816 { | |
2817 // plugin box - header | |
2818 start.x = CUSTOMBOX_LINE_LEFT; | |
2819 stop.x = CUSTOMBOX_LINE_RIGHT; | |
2820 stop.y = start.y = 440 - 60; | |
2821 GFX_draw_line(&t7screen, start, stop, colorBox); | |
2822 } | |
2823 | |
2824 if(LinesOnTheSides) | |
2825 { | |
2826 // aufteilung links | |
2827 start.x = 0; | |
2828 stop.x = CUSTOMBOX_LINE_LEFT; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2829 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2830 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2831 stop.y = start.y = t7l1.WindowY0 - 1; |
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 else |
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 stop.y = start.y = 480 - t7l1.WindowY1 - 1; |
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 |
38 | 2838 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2839 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2840 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2841 stop.y = start.y = t7l2.WindowY0 -1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2842 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2843 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2844 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2845 stop.y = start.y = 480 - t7l2.WindowY1 -1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2846 } |
38 | 2847 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
2848 | |
2849 // aufteilung rechts | |
2850 start.x = CUSTOMBOX_LINE_RIGHT; | |
2851 stop.x = 799; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2852 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2853 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2854 stop.y = start.y = t7l1.WindowY0 - 1; |
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 else |
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 stop.y = start.y = 480 - t7l1.WindowY1 - 1; |
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 |
38 | 2861 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2862 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2863 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2864 stop.y = start.y = t7l2.WindowY0 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2865 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2866 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2867 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2868 stop.y = start.y = 480 - t7l2.WindowY1 - 1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2869 } |
38 | 2870 GFX_draw_line(&t7screen, start, stop, colorLinesOnTheSide); |
2871 } | |
2872 } | |
2873 | |
2874 | |
2875 /* Compass like TCOS shellfish | |
2876 * input is 0 to 359 | |
2877 * 2 px / 1 degree | |
2878 * Range is 148 degree with CUSTOMBOX_SPACE_INSIDE = 296 | |
2879 * one side is 74 degree (less than 90 degree) | |
2880 * internal 360 + 180 degree of freedom | |
2881 * use positive values only, shift by 360 below 90 mid position | |
2882 */ | |
2883 | |
2884 | |
2885 point_t t7_compass_circle(uint8_t id, uint16_t degree) | |
2886 { | |
2887 float fCos, fSin; | |
2888 const float piMult = ((2 * 3.14159) / 360); | |
2889 // const int radius[4] = {95,105,115,60}; | |
2890 const int radius[4] = {95,105,115,100}; | |
2891 const point_t offset = {.x = 400, .y = 250}; | |
2892 | |
2893 static point_t r[4][360] = { 0 }; | |
2894 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2895 if(r[0][0].y == 0) /* calc table at first call only */ |
38 | 2896 { |
2897 for(int i=0;i<360;i++) | |
2898 { | |
2899 fCos = cos(i * piMult); | |
2900 fSin = sin(i * piMult); | |
2901 for(int j=0;j<4;j++) | |
2902 { | |
2903 r[j][i].x = offset.x + (int)(fSin * radius[j]); | |
2904 r[j][i].y = offset.y + (int)(fCos * radius[j]); | |
2905 } | |
2906 } | |
2907 } | |
2908 if(id > 3) id = 0; | |
2909 if(degree > 359) degree = 0; | |
2910 return r[id][degree]; | |
2911 } | |
2912 | |
2913 /* range should be 0 to 30 bar if 300 meter with 100% of nitrogen or helium | |
2914 * T24 is 28 high | |
2915 */ | |
2916 void t7_tissues(const SDiveState * pState) | |
2917 { | |
2918 point_t start, change, stop; | |
2919 float value; | |
2920 uint16_t front, cns100pixel; | |
2921 char text[256]; | |
2922 uint8_t textpointer = 0; | |
2923 uint8_t color; | |
2924 | |
2925 float percent_N2; | |
2926 float percent_He; | |
2927 float partial_pressure_N2; | |
2928 float partial_pressure_He; | |
2929 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2930 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2931 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2932 |
38 | 2933 |
2934 /* N2 */ | |
2935 t7cY0free.WindowLineSpacing = 28 + 48 + 14; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2936 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2937 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2938 t7cY0free.WindowY0 = t7cH.WindowY0 - 5 - 2 * t7cY0free.WindowLineSpacing; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2939 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2940 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2941 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2942 t7cY0free.WindowY0 = t7cH.WindowY0 + 15; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2943 t7cY0free.WindowY1 = t7cY0free.WindowY0 + 250; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2944 } |
38 | 2945 t7cY0free.WindowNumberOfTextLines = 3; |
2946 | |
2947 text[textpointer++] = '\030'; | |
2948 text[textpointer++] = TXT_2BYTE; | |
2949 text[textpointer++] = TXT2BYTE_Nitrogen; | |
2950 text[textpointer++] = '\n'; | |
2951 text[textpointer++] = '\r'; | |
2952 text[textpointer++] = TXT_2BYTE; | |
2953 text[textpointer++] = TXT2BYTE_Helium; | |
2954 text[textpointer++] = '\n'; | |
2955 text[textpointer++] = '\r'; | |
2956 text[textpointer++] = TXT_2BYTE; | |
2957 text[textpointer++] = TXT2BYTE_CNS; | |
2958 text[textpointer++] = 0; | |
2959 | |
2960 GFX_write_string(&FontT24, &t7cY0free, text, 1); | |
2961 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2962 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2963 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2964 start.y = t7cH.WindowY0 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2965 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2966 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2967 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2968 start.y = t7cH.WindowY1 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
2969 } |
38 | 2970 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
2971 stop.x = start.x + CUSTOMBOX_SPACE_INSIDE; | |
2972 | |
2973 for(int i=0;i<16;i++) | |
2974 { | |
2975 stop.y = start.y; | |
2976 change.y = start.y; | |
2977 | |
2978 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
|
2979 value *= 80; |
38 | 2980 |
2981 if(value < 0) | |
2982 front = 0; | |
2983 else | |
2984 if(value > CUSTOMBOX_SPACE_INSIDE) | |
2985 front = CUSTOMBOX_SPACE_INSIDE; | |
2986 else | |
2987 front = (uint16_t)value; | |
2988 | |
2989 change.x = start.x + front; | |
2990 if(change.x != start.x) | |
2991 GFX_draw_thick_line(1,&t7screen, start, change, CLUT_Font030); | |
2992 if(change.x != stop.x) | |
2993 GFX_draw_thick_line(1,&t7screen, change, stop, CLUT_Font031); | |
2994 | |
2995 start.y -= 3; | |
2996 } | |
2997 | |
2998 /* He */ | |
2999 start.y -= 28 + 14; | |
3000 for(int i=0;i<16;i++) | |
3001 { | |
3002 stop.y = start.y; | |
3003 change.y = start.y; | |
3004 | |
3005 value = pState->lifeData.tissue_helium_bar[i]; | |
3006 value *= 80;//20 | |
3007 | |
3008 if(value < 0) | |
3009 front = 0; | |
3010 else if(value > CUSTOMBOX_SPACE_INSIDE) | |
3011 front = CUSTOMBOX_SPACE_INSIDE; | |
3012 else | |
3013 front = (uint16_t)value; | |
3014 | |
3015 change.x = start.x + front; | |
3016 if(change.x != start.x) | |
3017 GFX_draw_thick_line(1,&t7screen, start, change, CLUT_Font030); | |
3018 if(change.x != stop.x) | |
3019 GFX_draw_thick_line(1,&t7screen, change, stop, CLUT_Font031); | |
3020 | |
3021 start.y -= 3; | |
3022 } | |
3023 | |
3024 /* CNS == Oxygen */ | |
3025 start.y -= 28 + 14; | |
3026 | |
3027 cns100pixel = (8 * CUSTOMBOX_SPACE_INSIDE) / 10; | |
3028 value = pState->lifeData.cns; | |
3029 value *= cns100pixel; | |
3030 value /= 100; | |
3031 | |
3032 if(value < 0) | |
3033 front = 0; | |
3034 else if(value > CUSTOMBOX_SPACE_INSIDE) | |
3035 front = CUSTOMBOX_SPACE_INSIDE; | |
3036 else | |
3037 front = (uint16_t)value; | |
3038 | |
3039 if(pState->lifeData.cns < 95) | |
3040 color = CLUT_Font030; | |
3041 else if(pState->lifeData.cns < 100) | |
3042 color = CLUT_WarningYellow; | |
3043 else | |
3044 color = CLUT_WarningRed; | |
3045 | |
3046 for(int i=0;i<16;i++) | |
3047 { | |
3048 stop.y = start.y; | |
3049 change.y = start.y; | |
3050 | |
3051 change.x = start.x + front; | |
3052 if(change.x != start.x) | |
3053 GFX_draw_thick_line(1,&t7screen, start, change, color); | |
3054 if(change.x != stop.x) | |
3055 GFX_draw_thick_line(1,&t7screen, change, stop, CLUT_Font031); | |
3056 | |
3057 start.y -= 3; | |
3058 } | |
3059 | |
3060 /* where is the onload/offload limit for N2 and He */ | |
3061 decom_get_inert_gases(pState->lifeData.pressure_ambient_bar, &pState->lifeData.actualGas, &percent_N2, &percent_He); | |
3062 partial_pressure_N2 = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_N2; | |
3063 partial_pressure_He = (pState->lifeData.pressure_ambient_bar - WATER_VAPOUR_PRESSURE) * percent_He; | |
3064 | |
3065 // Nitrogen vertical bar | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3066 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3067 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3068 start.y = t7cH.WindowY0 + 1 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3069 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3070 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3071 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3072 start.y = t7cH.WindowY1 - 5; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3073 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3074 |
38 | 3075 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
|
3076 if((percent_N2 > 0) && (partial_pressure_N2 > 0.7512f)) |
38 | 3077 { |
222
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
3078 value = partial_pressure_N2 - 0.7512f; |
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
3079 value *= 80; |
38 | 3080 |
3081 if(value < 0) | |
3082 front = 3; | |
3083 else if(value + 5 > CUSTOMBOX_SPACE_INSIDE) | |
3084 front = CUSTOMBOX_SPACE_INSIDE - 3; | |
3085 else | |
3086 front = (uint16_t)value; | |
3087 } | |
3088 else | |
3089 { | |
3090 front = 1; | |
3091 } | |
3092 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + front; | |
3093 stop.x = start.x; | |
3094 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); | |
3095 | |
3096 | |
3097 // Helium vertical bar | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3098 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3099 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3100 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
|
3101 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3102 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3103 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3104 start.y = t7cH.WindowY1 - 5 - 3*16 - 28 - 14; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3105 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3106 |
38 | 3107 stop.y = start.y - (3 * 15) - 1; |
3108 if((percent_He > 0) && (partial_pressure_He > 0.01f)) // 0.5f | |
3109 { | |
3110 | |
3111 value = partial_pressure_He; | |
222
9b4b3decd9ba
Bugfix: correct presentation error in tissues custom view
Jan Mulder <jlmulder@xs4all.nl>
parents:
215
diff
changeset
|
3112 value *= 80; |
38 | 3113 |
3114 if(value < 0) | |
3115 front = 3; | |
3116 else if(value + 5 > CUSTOMBOX_SPACE_INSIDE) | |
3117 front = CUSTOMBOX_SPACE_INSIDE - 3; | |
3118 else | |
3119 front = (uint16_t)value; | |
3120 } | |
3121 else | |
3122 { | |
3123 front = 1; | |
3124 } | |
3125 | |
3126 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + front; | |
3127 stop.x = start.x; | |
3128 GFX_draw_thick_line(2,&t7screen, start, stop, CLUT_EverythingOkayGreen); | |
3129 | |
3130 // Oxygen vertical bar | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3131 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3132 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3133 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
|
3134 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3135 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3136 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3137 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
|
3138 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3139 |
38 | 3140 stop.y = start.y - (3 * 15) - 1; |
3141 | |
3142 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + cns100pixel; | |
3143 stop.x = start.x; | |
3144 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
|
3145 |
38 | 3146 } |
3147 | |
3148 | |
3149 void t7_debug(void) | |
3150 { | |
3151 char text[256+50]; | |
3152 uint8_t textpointer = 0; | |
3153 | |
3154 t7cY0free.WindowLineSpacing = 28 + 48 + 14; | |
3155 t7cY0free.WindowY0 = t7cH.WindowY0 - 5 - 2 * t7cY0free.WindowLineSpacing; | |
3156 t7cY0free.WindowNumberOfTextLines = 3; | |
3157 | |
3158 textpointer += snprintf(&text[textpointer],50,"Ambient [bar]\n\r"); | |
3159 textpointer += snprintf(&text[textpointer],50,"Surface [bar] + salt\n\r"); | |
3160 // textpointer += snprintf(&text[textpointer],50,"Difference [mbar]\n\r"); | |
3161 textpointer += snprintf(&text[textpointer],50,"ShallowCounter [s]\n\r"); | |
3162 GFX_write_string(&FontT24, &t7cY0free, text, 1); | |
3163 | |
3164 t7cY0free.WindowY0 -= 52; | |
3165 // 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)); | |
3166 snprintf(text,60, | |
3167 "%0.2f\n\r" | |
3168 "%0.2f %u%%\n\r" | |
3169 "%u" | |
3170 ,stateUsed->lifeData.pressure_ambient_bar | |
3171 ,stateUsed->lifeData.pressure_surface_bar | |
3172 ,settingsGetPointer()->salinity | |
3173 ,stateUsed->lifeData.counterSecondsShallowDepth); | |
3174 GFX_write_string(&FontT42, &t7cY0free, text, 1); | |
3175 } | |
3176 | |
3177 | |
3178 void t7_SummaryOfLeftCorner(void) | |
3179 { | |
3180 char text[256+60]; | |
3181 uint8_t textpointer = 0; | |
3182 | |
3183 const SDecoinfo * pDecoinfoStandard; | |
3184 const SDecoinfo * pDecoinfoFuture; | |
3185 float fCNS; | |
3186 | |
3187 if(stateUsed->diveSettings.deco_type.ub.standard == GF_MODE) | |
3188 { | |
3189 pDecoinfoStandard = &stateUsed->decolistBuehlmann; | |
3190 pDecoinfoFuture = &stateUsed->decolistFutureBuehlmann; | |
3191 } | |
3192 else | |
3193 { | |
3194 pDecoinfoStandard = &stateUsed->decolistVPM; | |
3195 pDecoinfoFuture = &stateUsed->decolistFutureVPM; | |
3196 } | |
3197 | |
3198 fCNS = stateUsed->lifeData .cns; | |
3199 if(fCNS > 999) | |
3200 fCNS = 999; | |
3201 | |
3202 t7cY0free.WindowY0 = t7cC.WindowY0 - 10; | |
315
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3203 if(settingsGetPointer()->FlipDisplay) |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3204 { |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3205 t7cY0free.WindowY1 = 400; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3206 } |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3207 |
38 | 3208 t7cY0free.WindowLineSpacing = 48; |
3209 t7cY0free.WindowNumberOfTextLines = 6; | |
3210 t7cY0free.WindowTab = 420; | |
3211 | |
3212 // header | |
3213 textpointer = 0; | |
3214 text[textpointer++] = '\032'; | |
3215 text[textpointer++] = '\016'; | |
3216 text[textpointer++] = '\016'; | |
3217 text[textpointer++] = TXT_ppO2; | |
3218 text[textpointer++] = '\n'; | |
3219 text[textpointer++] = '\r'; | |
3220 text[textpointer++] = TXT_Ceiling; | |
3221 text[textpointer++] = '\n'; | |
3222 text[textpointer++] = '\r'; | |
3223 text[textpointer++] = TXT_ActualGradient; | |
3224 text[textpointer++] = '\n'; | |
3225 text[textpointer++] = '\r'; | |
3226 text[textpointer++] = TXT_CNS; | |
3227 text[textpointer++] = '\n'; | |
3228 text[textpointer++] = '\r'; | |
3229 text[textpointer++] = TXT_FutureTTS; | |
3230 text[textpointer++] = '\017'; | |
3231 text[textpointer++] = 0; | |
315
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 if(!settingsGetPointer()->FlipDisplay) |
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.WindowX0 += 10; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3236 t7cY0free.WindowY0 += 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.WindowX0 -= 10; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3239 t7cY0free.WindowY0 -= 10; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3240 } |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3241 else |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3242 { |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3243 t7cY0free.WindowY1 -= 10; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3244 t7cY0free.WindowX1 -= 10; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3245 GFX_write_string(&FontT24, &t7cY0free, text, 1); |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3246 t7cY0free.WindowY1 += 10; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3247 t7cY0free.WindowX1 += 10; |
7420ed6c3508
Bugfix Overview, O2 values and mV in flip display mode
ideenmodellierer
parents:
247
diff
changeset
|
3248 } |
38 | 3249 textpointer = 0; |
3250 text[textpointer++] = '\t'; | |
3251 textpointer += snprintf(&text[textpointer],10,"\020%01.2f", stateUsed->lifeData.ppO2); | |
3252 text[textpointer++] = '\n'; | |
3253 text[textpointer++] = '\r'; | |
3254 text[textpointer++] = '\t'; | |
3255 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
|
3256 textpointer += snprintf(&text[textpointer],10,"\020%01.0f",unit_depth_float(pDecoinfoStandard->output_ceiling_meter)); |
38 | 3257 else |
215
4a0ebade04f5
Bugfix, trivial: correctly present avg depth in overview custom
Jan Mulder <jlmulder@xs4all.nl>
parents:
214
diff
changeset
|
3258 textpointer += snprintf(&text[textpointer],10,"\020%01.1f",pDecoinfoStandard->output_ceiling_meter); |
38 | 3259 text[textpointer++] = '\n'; |
3260 text[textpointer++] = '\r'; | |
3261 text[textpointer++] = '\t'; | |
247
3949781096d4
feature: Relative GF to Saturation renames
Jan Mulder <jlmulder@xs4all.nl>
parents:
225
diff
changeset
|
3262 textpointer += snprintf(&text[textpointer],10,"\020%.0f\016\016%%\017", 100 * pDecoinfoStandard->super_saturation); |
38 | 3263 text[textpointer++] = '\n'; |
3264 text[textpointer++] = '\r'; | |
3265 text[textpointer++] = '\t'; | |
3266 textpointer += snprintf(&text[textpointer],10,"\020%.0f\016\016%%\017",fCNS); | |
3267 text[textpointer++] = '\n'; | |
3268 text[textpointer++] = '\r'; | |
3269 text[textpointer++] = '\t'; | |
214
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
3270 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
|
3271 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
|
3272 else |
51a3aeffc6b3
Bugfix: handle rounding of TTS and future TTS consistently
Jan Mulder <jlmulder@xs4all.nl>
parents:
211
diff
changeset
|
3273 textpointer += snprintf(&text[textpointer],10,"\020%ih", (pDecoinfoFuture->output_time_to_surface_seconds + 59) / 3600); |
38 | 3274 text[textpointer++] = 0; |
196
2885628ab3ba
Bugfix, minor: color the overview customview correctly
Jan Mulder <jlmulder@xs4all.nl>
parents:
193
diff
changeset
|
3275 t7_colorscheme_mod(text); |
38 | 3276 GFX_write_string(&FontT42, &t7cY0free, text, 1); |
3277 } | |
3278 | |
3279 void t7_compass(uint16_t ActualHeading, uint16_t UserSetHeading) | |
3280 { | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3281 uint16_t ActualHeadingRose; |
38 | 3282 uint16_t LeftBorderHeading, LineHeading; |
3283 uint32_t offsetPicture; | |
3284 point_t start, stop, center; | |
3285 static int32_t LastHeading = 0; | |
3286 int32_t newHeading = 0; | |
3287 int32_t diff = 0; | |
3288 int32_t diff2 = 0; | |
3289 | |
3290 int32_t diffAbs = 0; | |
3291 int32_t diffAbs2 = 0; | |
3292 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3293 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3294 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3295 |
38 | 3296 newHeading = ActualHeading; |
3297 | |
3298 diff = newHeading - LastHeading; | |
3299 | |
3300 if(newHeading < LastHeading) | |
3301 diff2 = newHeading + 360 - LastHeading; | |
3302 else | |
3303 diff2 = newHeading - 360 - LastHeading; | |
3304 | |
3305 diffAbs = diff; | |
3306 if(diffAbs < 0) | |
3307 diffAbs *= -1; | |
3308 | |
3309 diffAbs2 = diff2; | |
3310 if(diffAbs2 < 0) | |
3311 diffAbs2 *= -1; | |
3312 | |
3313 | |
3314 if(diffAbs <= diffAbs2) | |
3315 newHeading = LastHeading + (diff / 2); | |
3316 else | |
3317 newHeading = LastHeading + (diff2 / 2); | |
3318 | |
3319 if(newHeading < 0) | |
3320 newHeading += 360; | |
3321 else | |
3322 if(newHeading >= 360) | |
3323 newHeading -= 360; | |
3324 | |
3325 LastHeading = newHeading; | |
3326 ActualHeading = newHeading; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3327 ActualHeadingRose = ActualHeading; |
225
2bb1db22b5f5
cleanup: random set of cleanups
Jan Mulder <jlmulder@xs4all.nl>
parents:
222
diff
changeset
|
3328 |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3329 if(pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3330 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3331 ActualHeadingRose = 360 - ActualHeadingRose; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3332 if (ActualHeadingRose < 170) ActualHeadingRose += 360; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3333 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3334 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3335 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3336 if (ActualHeadingRose < 90) ActualHeadingRose += 360; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3337 ActualHeading = ActualHeadingRose; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3338 } |
38 | 3339 |
3340 // new hw 160822 | |
3341 // if (ActualHeading >= 360 + 90) | |
3342 // ActualHeading = 360; | |
3343 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3344 LeftBorderHeading = 2 * (ActualHeadingRose - (CUSTOMBOX_SPACE_INSIDE/4)); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3345 |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3346 if(pSettings->FlipDisplay) /* add offset caused by mirrowed drawing */ |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3347 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3348 LeftBorderHeading += 2 * 80; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3349 } |
38 | 3350 |
3351 offsetPicture = LeftBorderHeading * t7screenCompass.ImageHeight * 2; | |
3352 | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3353 /* the background is used to draw the rotating compass rose */ |
38 | 3354 background.pointer = t7screenCompass.FBStartAdress+offsetPicture; |
3355 background.x0 = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3356 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3357 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3358 background.y0 = 65; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3359 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3360 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3361 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3362 background.y0 = 480 - t7screenCompass.ImageHeight - 65; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3363 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3364 |
38 | 3365 background.width = CUSTOMBOX_SPACE_INSIDE; |
3366 background.height = t7screenCompass.ImageHeight; | |
3367 | |
3368 | |
3369 start.x = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET + (CUSTOMBOX_SPACE_INSIDE/2); | |
3370 stop.x = start.x; | |
3371 start.y = 65; | |
3372 stop.y = start.y + 55; | |
3373 GFX_draw_line(&t7screen, start, stop, CLUT_Font030); | |
3374 | |
3375 | |
3376 center.x = start.x; | |
3377 center.y = 300; | |
3378 | |
3379 stop.x = center.x + 44; | |
3380 stop.y = center.y + 24; | |
3381 | |
3382 | |
3383 while(ActualHeading > 359) ActualHeading -= 360; | |
3384 | |
3385 LineHeading = 360 - ActualHeading; | |
3386 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(0,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font030); // North | |
3387 LineHeading += 90; | |
3388 if(LineHeading > 359) LineHeading -= 360; | |
3389 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Maintick | |
3390 LineHeading += 90; | |
3391 if(LineHeading > 359) LineHeading -= 360; | |
3392 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3393 LineHeading += 90; | |
3394 if(LineHeading > 359) LineHeading -= 360; | |
3395 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3396 | |
3397 LineHeading = 360 - ActualHeading; | |
3398 LineHeading += 45; | |
3399 if(LineHeading > 359) LineHeading -= 360; | |
3400 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Subtick | |
3401 LineHeading += 90; | |
3402 if(LineHeading > 359) LineHeading -= 360; | |
3403 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3404 LineHeading += 90; | |
3405 if(LineHeading > 359) LineHeading -= 360; | |
3406 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3407 LineHeading += 90; | |
3408 if(LineHeading > 359) LineHeading -= 360; | |
3409 GFX_draw_thick_line(5,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3410 | |
3411 LineHeading = 360 - ActualHeading; | |
3412 LineHeading += 22; | |
3413 if(LineHeading > 359) LineHeading -= 360; | |
3414 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Subtick | |
3415 LineHeading += 45; | |
3416 if(LineHeading > 359) LineHeading -= 360; | |
3417 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3418 LineHeading += 45; | |
3419 if(LineHeading > 359) LineHeading -= 360; | |
3420 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3421 LineHeading += 45; | |
3422 if(LineHeading > 359) LineHeading -= 360; | |
3423 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3424 LineHeading += 45; | |
3425 if(LineHeading > 359) LineHeading -= 360; | |
3426 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); // Subtick | |
3427 LineHeading += 45; | |
3428 if(LineHeading > 359) LineHeading -= 360; | |
3429 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3430 LineHeading += 45; | |
3431 if(LineHeading > 359) LineHeading -= 360; | |
3432 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3433 LineHeading += 45; | |
3434 if(LineHeading > 359) LineHeading -= 360; | |
3435 GFX_draw_thick_line(3,&t7screen, t7_compass_circle(1,LineHeading), t7_compass_circle(2,LineHeading), CLUT_Font031); | |
3436 | |
3437 if(UserSetHeading) | |
3438 { | |
3439 LineHeading = UserSetHeading + 360 - ActualHeading; | |
3440 if(LineHeading > 359) LineHeading -= 360; | |
3441 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(3,LineHeading), t7_compass_circle(2,LineHeading), CLUT_CompassUserHeadingTick); | |
3442 | |
3443 // R�ckpeilung, User Back Heading | |
3444 LineHeading = UserSetHeading + 360 + 180 - ActualHeading; | |
3445 if(LineHeading > 359) LineHeading -= 360; | |
3446 if(LineHeading > 359) LineHeading -= 360; | |
3447 GFX_draw_thick_line(9,&t7screen, t7_compass_circle(3,LineHeading), t7_compass_circle(2,LineHeading), CLUT_CompassUserBackHeadingTick); | |
3448 } | |
3449 | |
3450 center.x = start.x; | |
3451 center.y = 250; | |
3452 GFX_draw_circle(&t7screen, center, 116, CLUT_Font030); | |
3453 GFX_draw_circle(&t7screen, center, 118, CLUT_Font030); | |
3454 GFX_draw_circle(&t7screen, center, 117, CLUT_Font030); | |
3455 | |
3456 | |
3457 } | |
3458 | |
3459 | |
3460 /* Font_T42: N is 27 px, S is 20 px, W is 36 px, E is 23 px | |
3461 * max is NW with 63 px | |
3462 * Font_T24: N is 15 px, S is 12 px, W is 20 px, E is 13 px | |
3463 * max is NW with 35 px | |
3464 * NE is 28 px | |
3465 * SW is 32 px | |
3466 * SE is 25 px | |
3467 * space between each is 45 px * 2 | |
3468 * FirstItem List | |
3469 * \177 \177 prepare for size | |
3470 */ | |
3471 void init_t7_compass(void) | |
3472 { | |
3473 t7screenCompass.FBStartAdress = getFrame(21); | |
3474 | |
3475 char text[256]; | |
3476 uint8_t textpointer = 0; | |
3477 | |
3478 text[textpointer++] = '\030'; | |
3479 text[textpointer++] = '\177'; | |
3480 text[textpointer++] = '\177'; | |
3481 text[textpointer++] = 76; // 90 - 14 | |
3482 text[textpointer++] = '\016'; | |
3483 text[textpointer++] = '\016'; | |
3484 text[textpointer++] = 'N'; | |
3485 text[textpointer++] = 'E'; // 96 + 28 = 124 total | |
3486 text[textpointer++] = '\017'; | |
3487 text[textpointer++] = '\177'; | |
3488 text[textpointer++] = '\177'; | |
3489 text[textpointer++] = 64; // 90 - 14 - 12 | |
3490 text[textpointer++] = 'E'; // 124 + 74 + 23 = 221 total | |
3491 text[textpointer++] = '\177'; | |
3492 text[textpointer++] = '\177'; | |
3493 text[textpointer++] = 66; // 90 - 11 - 13 | |
3494 text[textpointer++] = '\016'; | |
3495 text[textpointer++] = '\016'; | |
3496 text[textpointer++] = 'S'; | |
3497 text[textpointer++] = 'E'; | |
3498 text[textpointer++] = '\017'; | |
3499 text[textpointer++] = '\177'; | |
3500 text[textpointer++] = '\177'; | |
3501 text[textpointer++] = 68; // 90 - 12 - 10 | |
3502 text[textpointer++] = 'S'; | |
3503 text[textpointer++] = '\177'; | |
3504 text[textpointer++] = '\177'; | |
3505 text[textpointer++] = 64; // 90 - 10 - 16 | |
3506 text[textpointer++] = '\016'; | |
3507 text[textpointer++] = '\016'; | |
3508 text[textpointer++] = 'S'; | |
3509 text[textpointer++] = 'W'; | |
3510 text[textpointer++] = '\017'; | |
3511 text[textpointer++] = '\177'; | |
3512 text[textpointer++] = '\177'; | |
3513 text[textpointer++] = 56; // 90 - 16 - 18 | |
3514 text[textpointer++] = 'W'; | |
3515 text[textpointer++] = '\177'; | |
3516 text[textpointer++] = '\177'; | |
3517 text[textpointer++] = 54; // 90 - 18 - 18 | |
3518 text[textpointer++] = '\016'; | |
3519 text[textpointer++] = '\016'; | |
3520 text[textpointer++] = 'N'; | |
3521 text[textpointer++] = 'W'; | |
3522 text[textpointer++] = '\017'; | |
3523 text[textpointer++] = '\177'; | |
3524 text[textpointer++] = '\177'; | |
3525 text[textpointer++] = 59; // 90 - 17 - 14 | |
3526 text[textpointer++] = 'N'; | |
3527 text[textpointer++] = '\177'; | |
3528 text[textpointer++] = '\177'; | |
3529 text[textpointer++] = 63; // 90 - 13 - 14 | |
3530 text[textpointer++] = '\016'; | |
3531 text[textpointer++] = '\016'; | |
3532 text[textpointer++] = 'N'; | |
3533 text[textpointer++] = 'E'; | |
3534 text[textpointer++] = '\017'; | |
3535 text[textpointer++] = '\177'; | |
3536 text[textpointer++] = '\177'; | |
3537 text[textpointer++] = 64; // 90 - 14 - 12 | |
3538 text[textpointer++] = 'E'; | |
3539 text[textpointer++] = '\177'; | |
3540 text[textpointer++] = '\177'; | |
3541 text[textpointer++] = 66; // 90 - 11 - 13 | |
3542 text[textpointer++] = '\016'; | |
3543 text[textpointer++] = '\016'; | |
3544 text[textpointer++] = 'S'; | |
3545 text[textpointer++] = 'E'; | |
3546 text[textpointer++] = '\017'; | |
3547 text[textpointer++] = '\177'; | |
3548 text[textpointer++] = '\177'; | |
3549 text[textpointer++] = 68; // 90 - 12 - 10 | |
3550 text[textpointer++] = 'S'; | |
3551 text[textpointer++] = '\177'; | |
3552 text[textpointer++] = '\177'; | |
3553 text[textpointer++] = 64; // 90 - 10 - 16 | |
3554 text[textpointer++] = '\016'; | |
3555 text[textpointer++] = '\016'; | |
3556 text[textpointer++] = 'S'; | |
3557 text[textpointer++] = 'W'; | |
3558 text[textpointer++] = '\017'; | |
3559 text[textpointer++] = 0; // end | |
3560 | |
3561 GFX_write_string(&FontT42,&t7pCompass,text,1); | |
3562 | |
3563 releaseAllFramesExcept(21,t7screenCompass.FBStartAdress); | |
3564 } | |
3565 | |
3566 | |
3567 void t7_miniLiveLogProfile(void) | |
3568 { | |
3569 SWindowGimpStyle wintemp; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3570 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3571 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3572 |
38 | 3573 wintemp.left = CUSTOMBOX_LINE_LEFT + CUSTOMBOX_INSIDE_OFFSET; |
3574 wintemp.right = wintemp.left + CUSTOMBOX_SPACE_INSIDE; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3575 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3576 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3577 wintemp.top = 480 - t7l1.WindowY0; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3578 wintemp.bottom = wintemp. top + 200; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3579 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3580 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3581 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3582 wintemp.top = t7l1.WindowY1; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3583 wintemp.bottom = wintemp. top + 200; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3584 } |
38 | 3585 |
3586 uint16_t max_depth = (uint16_t)(stateUsed->lifeData.max_depth_meter * 10); | |
3587 | |
3588 GFX_graph_print(&t7screen, &wintemp, 0,1,0, max_depth, getMiniLiveLogbookPointerToData(), getMiniLiveLogbookActualDataLength(), CLUT_Font030, NULL); | |
3589 } | |
3590 | |
3591 void t7_logo_OSTC(void) | |
3592 { | |
3593 SWindowGimpStyle windowGimp; | |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3594 SSettings* pSettings; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3595 pSettings = settingsGetPointer(); |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3596 |
38 | 3597 /* OSTC logo */ |
110
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3598 if(!pSettings->FlipDisplay) |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3599 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3600 windowGimp.left = t7l1.WindowX1 + 32; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3601 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3602 else |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3603 { |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3604 windowGimp.left = t7r1.WindowX1 + 32; |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3605 } |
cc8e24374b83
Added option to handled mirrored display to existing functions
Ideenmodellierer
parents:
51
diff
changeset
|
3606 |
38 | 3607 windowGimp.top = 40 + 32; |
3608 GFX_draw_image_monochrome(&t7screen, windowGimp, &ImgOSTC, 0); | |
3609 } |