Mercurial > public > ostc4
annotate Discovery/Src/tMenuEditSystem.c @ 505:06b21f1e47a5
Removed second big font profile
The nex big font views have been introduced using an additional profile because an individual selection was not possible. By introducing the selection dialog for big font data views this additional profile is no longer needed.
author | Ideenmodellierer |
---|---|
date | Sun, 30 Aug 2020 17:14:31 +0200 |
parents | 0d2449e9d659 |
children | 970d8040c0e3 |
rev | line source |
---|---|
38 | 1 /////////////////////////////////////////////////////////////////////////////// |
2 /// -*- coding: UTF-8 -*- | |
3 /// | |
4 /// \file Discovery/Src/tMenuEditSystem.c | |
5 /// \brief Main Template file for Menu Edit System settings | |
6 /// \author heinrichs weikamp gmbh | |
7 /// \date 05-Aug-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 "tMenuEditSystem.h" | |
31 | |
138 | 32 #include "data_exchange_main.h" |
38 | 33 #include "externLogbookFlash.h" |
34 #include "gfx_fonts.h" | |
35 #include "ostc.h" | |
36 #include "settings.h" // for getLicence() | |
37 #include "tHome.h" // for enum CUSTOMVIEWS and init_t7_compass() | |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
38 #include "tMenu.h" |
38 | 39 #include "tMenuEdit.h" |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
40 #include "tMenuSystem.h" |
389
ebc2b571a0b9
Fix case for case sensitive OS
Jan Mulder <jan@jlmulder.nl>
parents:
384
diff
changeset
|
41 #include "motion.h" |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
42 #include "t7.h" |
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
43 |
500
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
44 |
379 | 45 #define CV_SUBPAGE_MAX (2u) /* max number of customer view selection pages */ |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
46 /*#define HAVE_DEBUG_VIEW */ |
379 | 47 static uint8_t infoPage = 0; |
38 | 48 |
49 /* Private function prototypes -----------------------------------------------*/ | |
50 void openEdit_DateTime(void); | |
51 void openEdit_Language(void); | |
52 void openEdit_Design(void); | |
53 void openEdit_Customview(void); | |
54 void openEdit_Information(void); | |
55 void openEdit_Reset(void); | |
56 void openEdit_CustomviewDivemode(uint8_t line); | |
57 //void openEdit_ShowDebugInfo(void); | |
58 //void openEdit_Salinity(void); | |
59 | |
60 /* Announced function prototypes -----------------------------------------------*/ | |
61 uint8_t OnAction_Date (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
62 uint8_t OnAction_Time (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
63 uint8_t OnAction_DDMMYY (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
64 uint8_t OnAction_MMDDYY (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
65 uint8_t OnAction_YYMMDD (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
66 uint8_t OnAction_DST (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
67 uint8_t OnAction_English (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
68 uint8_t OnAction_German (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
69 uint8_t OnAction_French (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
70 uint8_t OnAction_Italian (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
71 uint8_t OnAction_Espanol (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
72 //uint8_t OnAction_Design_t7 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
73 //uint8_t OnAction_Design_t7ft (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
74 //uint8_t OnAction_Design_t3 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
75 | |
76 uint8_t OnAction_Units (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
77 uint8_t OnAction_Colorscheme (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
78 uint8_t OnAction_DebugInfo (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
79 | |
80 uint8_t OnAction_CViewTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
81 uint8_t OnAction_CViewStandard (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
82 uint8_t OnAction_CornerTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
83 uint8_t OnAction_CornerStandard(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
84 uint8_t OnAction_ExtraDisplay (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
85 uint8_t OnAction_MotionCtrl (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
38 | 86 |
87 uint8_t OnAction_Exit (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
88 uint8_t OnAction_Confirm (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
89 uint8_t OnAction_RebootRTE (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
90 uint8_t OnAction_ResetDeco (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
91 uint8_t OnAction_ResetAll (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
92 uint8_t OnAction_ResetLogbook (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
93 uint8_t OnAction_RebootMainCPU (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
94 uint8_t OnAction_Nothing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
95 uint8_t OnAction_LogbookOffset(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
96 uint8_t OnAction_SetFactoryDefaults(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
97 uint8_t OnAction_SetBatteryCharge(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
468
aa1d71875e25
Moved and deactivated analyse sample buffer switch:
ideenmodellierer
parents:
446
diff
changeset
|
98 #ifdef ENABLE_ANALYSE_SAMPLES |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
99 uint8_t OnAction_RecoverSampleIdx(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); |
468
aa1d71875e25
Moved and deactivated analyse sample buffer switch:
ideenmodellierer
parents:
446
diff
changeset
|
100 #endif |
38 | 101 #ifdef SCREENTEST |
102 uint8_t OnAction_ScreenTest (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
103 #endif | |
104 uint8_t OnAction_Information (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
105 /* | |
106 uint8_t OnAction_Salinity (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
107 uint8_t OnAction_TestCLog (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); | |
108 */ | |
109 | |
110 /* Exported functions --------------------------------------------------------*/ | |
111 | |
112 void openEdit_System(uint8_t line) | |
113 { | |
114 set_globalState_Menu_Line(line); | |
115 resetMenuEdit(CLUT_MenuPageSystem); | |
116 | |
117 if(actual_menu_content == MENU_SURFACE) | |
118 { | |
119 switch(line) | |
120 { | |
121 case 1: | |
122 default: | |
123 openEdit_DateTime(); | |
124 break; | |
125 case 2: | |
126 openEdit_Language(); | |
127 break; | |
128 case 3: | |
129 openEdit_Design(); | |
130 break; | |
131 case 4: | |
132 openEdit_Customview(); | |
133 break; | |
134 case 5: | |
135 openEdit_Information(); | |
136 break; | |
137 case 6: | |
138 openEdit_Reset(); | |
139 break; | |
140 /* | |
141 case 3: | |
142 openEdit_DecoFutureTTS(); | |
143 break; | |
144 case 4: | |
145 openEdit_DecoLastStop(); | |
146 break; | |
147 */ | |
148 } | |
149 } | |
150 else | |
151 { | |
152 openEdit_CustomviewDivemode(line); | |
153 } | |
154 | |
155 } | |
156 | |
157 /* Private functions ---------------------------------------------------------*/ | |
158 | |
159 void openEdit_CustomviewDivemode(uint8_t line) | |
160 { | |
379 | 161 static uint8_t customviewsSubpage = 0; |
210
b2a9e9b02df0
New feature: make selected customviews persistent
Jan Mulder <jlmulder@xs4all.nl>
parents:
138
diff
changeset
|
162 SSettings *pSettings = settingsGetPointer(); |
b2a9e9b02df0
New feature: make selected customviews persistent
Jan Mulder <jlmulder@xs4all.nl>
parents:
138
diff
changeset
|
163 extern _Bool WriteSettings; |
379 | 164 char text[MAX_PAGE_TEXTSIZE]; |
165 uint16_t tabPosition; | |
166 uint32_t id; | |
210
b2a9e9b02df0
New feature: make selected customviews persistent
Jan Mulder <jlmulder@xs4all.nl>
parents:
138
diff
changeset
|
167 |
379 | 168 |
169 if((line == 6) || (cv_changelist[customviewsSubpage * 5 + line-1] == CVIEW_END)) /* select next set of views */ | |
170 { | |
171 customviewsSubpage++; | |
172 if(customviewsSubpage == CV_SUBPAGE_MAX) | |
173 { | |
174 customviewsSubpage = 0; | |
175 } | |
176 set_CustomsviewsSubpage(customviewsSubpage); | |
177 /* rebuild the selection page with the next set of customer views */ | |
178 id = tMSystem_refresh(0, text, &tabPosition, NULL); | |
179 tM_build_page(id, text, tabPosition, NULL); | |
180 openMenu(0); | |
181 } | |
182 else | |
183 { | |
184 pSettings->cv_configuration ^= 1 << (cv_changelist[customviewsSubpage * 5 + line-1]); | |
185 if(t7_GetEnabled_customviews() == 0) | |
186 { | |
187 pSettings->cv_configuration ^= (1 << CVIEW_noneOrDebug); | |
188 } | |
189 InitMotionDetection(); /* consider new view setup for view selection by motion */ | |
190 exitMenuEdit_to_Menu_with_Menu_Update(); | |
191 } | |
38 | 192 } |
193 | |
194 | |
195 void openEdit_DateTime(void) | |
196 { | |
197 RTC_DateTypeDef Sdate; | |
198 RTC_TimeTypeDef Stime; | |
199 uint8_t day,month,year,hour,minute, dateFormat, ddmmyy, mmddyy, yymmdd; | |
200 char text[32]; | |
201 SSettings *pSettings; | |
202 const SDiveState * pStateReal = stateRealGetPointer(); | |
203 | |
204 pSettings = settingsGetPointer(); | |
205 translateDate(pStateReal->lifeData.dateBinaryFormat, &Sdate); | |
206 translateTime(pStateReal->lifeData.timeBinaryFormat, &Stime); | |
207 year = Sdate.Year; | |
208 month = Sdate.Month; | |
209 day = Sdate.Date; | |
210 hour = Stime.Hours; | |
211 minute= Stime.Minutes; | |
212 | |
213 if(year < 16) | |
214 year = 16; | |
215 | |
216 if(month < 1) | |
217 month = 1; | |
218 | |
219 if(day < 1) | |
220 day = 1; | |
221 | |
222 // daylightsaving = Stime.DayLightSaving; | |
223 dateFormat = pSettings->date_format; | |
224 ddmmyy = 0; | |
225 mmddyy = 0; | |
226 yymmdd = 0; | |
227 | |
228 if(dateFormat == DDMMYY) | |
229 ddmmyy = 1; | |
230 else | |
231 if(dateFormat == MMDDYY) | |
232 mmddyy = 1; | |
233 else | |
234 yymmdd = 1; | |
235 | |
236 text[0] = '\001'; | |
237 text[1] = TXT_DateAndTime; | |
238 text[2] = 0; | |
239 | |
240 write_topline(text); | |
241 | |
242 write_label_fix( 20, 340, ME_Y_LINE1, &FontT42, TXT_TimeConfig); | |
243 write_label_fix( 20, 340, ME_Y_LINE2, &FontT42, TXT_DateConfig); | |
244 write_label_var( 600, 800, ME_Y_LINE2, &FontT48, "\016\016DDMMYY\017"); | |
245 write_label_fix( 20, 790, ME_Y_LINE3, &FontT42, TXT_Format); | |
246 // write_label_fix( 350 ,580, 250, &FontT42, TXT_Daylightsaving); | |
247 | |
248 write_field_2digit(StMSYS1_Time, 320, 780, ME_Y_LINE1, &FontT48, "##:##", (uint32_t)hour, (uint32_t)minute, 0, 0); | |
249 write_field_2digit(StMSYS1_Date, 320, 780, ME_Y_LINE2, &FontT48, "##-##-20##", (uint32_t)day, (uint32_t)month, (uint32_t)year, 0); | |
250 write_field_on_off(StMSYS1_DDMMYY, 320, 790, ME_Y_LINE3, &FontT48, "DDMMYY", ddmmyy); | |
251 write_field_on_off(StMSYS1_MMDDYY, 320, 790, ME_Y_LINE4, &FontT48, "MMDDYY", mmddyy); | |
252 write_field_on_off(StMSYS1_YYMMDD, 320, 790, ME_Y_LINE5, &FontT48, "YYMMDD", yymmdd); | |
253 // write_field_on_off(StMSYS1_DST, 350, 580, 310, &FontT48, "Active", daylightsaving); | |
254 | |
255 setEvent(StMSYS1_Date, (uint32_t)OnAction_Date); | |
256 setEvent(StMSYS1_Time, (uint32_t)OnAction_Time); | |
257 setEvent(StMSYS1_DDMMYY, (uint32_t)OnAction_DDMMYY); | |
258 setEvent(StMSYS1_MMDDYY, (uint32_t)OnAction_MMDDYY); | |
259 setEvent(StMSYS1_YYMMDD, (uint32_t)OnAction_YYMMDD); | |
260 // setEvent(StMSYS1_DST, (uint32_t)OnAction_DST); | |
261 | |
262 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
263 } | |
264 | |
265 | |
266 uint8_t OnAction_Date(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
267 { | |
268 uint8_t digitContentNew; | |
269 uint32_t newDay, newMonth, newYear; | |
270 RTC_DateTypeDef sdatestructure; | |
271 | |
272 | |
273 if(action == ACTION_BUTTON_ENTER) | |
274 { | |
275 return digitContent; | |
276 } | |
277 if(action == ACTION_BUTTON_ENTER_FINAL) | |
278 { | |
279 evaluateNewString(editId, &newDay, &newMonth, &newYear, 0); | |
280 if(newDay == 0) | |
281 newDay = 1; | |
282 if(newDay > 31) | |
283 newDay = 31; | |
284 if(newMonth == 0) | |
285 newMonth = 1; | |
286 if(newMonth > 12) | |
287 newMonth = 12; | |
288 if((newMonth == 2) && (newDay > 29)) | |
289 newDay = 29; | |
290 if((newDay > 30) && ((newMonth == 4) ||(newMonth == 6) ||(newMonth == 9) ||(newMonth == 11))) | |
291 newDay = 30; | |
292 if(newYear < 17) | |
293 newYear = 17; | |
294 if(newYear > 99) | |
295 newYear = 99; | |
296 | |
297 sdatestructure.Date = newDay; | |
298 sdatestructure.Month = newMonth; | |
299 sdatestructure.Year = newYear; | |
300 setWeekday(&sdatestructure); | |
301 | |
302 setDate(sdatestructure); | |
303 | |
304 tMenuEdit_newInput(editId, newDay, newMonth, newYear, 0); | |
305 return UNSPECIFIC_RETURN; | |
306 } | |
307 if(action == ACTION_BUTTON_NEXT) | |
308 { | |
309 digitContentNew = digitContent + 1; | |
310 if((blockNumber == 0) && (digitContentNew > '0' + 31)) | |
311 digitContentNew = '1'; | |
312 if((blockNumber == 1) && (digitContentNew > '0' + 12)) | |
313 digitContentNew = '1'; | |
314 // year range 2017-2018 | |
55
a7683f9765da
Italian activated (needs some fine tuning), special characters (?,?,?,?,? and others) currently not working...
heinrichsweikamp
parents:
38
diff
changeset
|
315 if((blockNumber == 2) && (digitContentNew > '0' + 22)) |
a7683f9765da
Italian activated (needs some fine tuning), special characters (?,?,?,?,? and others) currently not working...
heinrichsweikamp
parents:
38
diff
changeset
|
316 digitContentNew = '0' + 18; |
38 | 317 return digitContentNew; |
318 } | |
319 if(action == ACTION_BUTTON_BACK) | |
320 { | |
321 digitContentNew = digitContent - 1; | |
322 if((blockNumber == 0) && (digitContentNew < '1')) | |
323 digitContentNew = '0' + 31; | |
324 if((blockNumber == 1) && (digitContentNew < '1')) | |
325 digitContentNew = '0' + 12; | |
326 // year range 2016-2018 | |
327 if((blockNumber == 2) && (digitContentNew < '0' + 17)) | |
328 digitContentNew = '0' + 18; | |
329 return digitContentNew; | |
330 } | |
331 /* | |
332 if(action == ACTION_BUTTON_NEXT) | |
333 { | |
334 digitContentNew = digitContent + 1; | |
335 if((blockNumber == 2) && (digitNumber == 0) && (digitContentNew > '2')) | |
336 digitContentNew = '1'; | |
337 if((blockNumber == 0) && (digitNumber == 0) && (digitContentNew > '3')) | |
338 digitContentNew = '0'; | |
339 if((blockNumber == 1) && (digitNumber == 0) && (digitContentNew > '1')) | |
340 digitContentNew = '0'; | |
341 if(digitContentNew > '9') | |
342 digitContentNew = '0'; | |
343 return digitContentNew; | |
344 } | |
345 if(action == ACTION_BUTTON_BACK) | |
346 { | |
347 digitContentNew = digitContent - 1; | |
348 if((blockNumber == 2) && (digitNumber == 0) && (digitContentNew < '1')) | |
349 digitContentNew = '2'; | |
350 if((blockNumber == 0) && (digitNumber == 0) && (digitContentNew < '0')) | |
351 digitContentNew = '3'; | |
352 if((blockNumber == 1) && (digitNumber == 0) && (digitContentNew < '0')) | |
353 digitContentNew = '1'; | |
354 if(digitContentNew < '0') | |
355 digitContentNew = '9'; | |
356 return digitContentNew; | |
357 } | |
358 */ | |
359 return UNSPECIFIC_RETURN; | |
360 } | |
361 | |
362 | |
363 uint8_t OnAction_Time(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
364 { | |
365 uint8_t digitContentNew; | |
366 uint32_t newHour, newMinute; | |
367 RTC_TimeTypeDef stimestructure; | |
368 | |
369 if(action == ACTION_BUTTON_ENTER) | |
370 { | |
371 return digitContent; | |
372 } | |
373 if(action == ACTION_BUTTON_ENTER_FINAL) | |
374 { | |
375 evaluateNewString(editId, &newHour, &newMinute, 0, 0); | |
376 if(newHour > 23) | |
377 newHour = 23; | |
378 if(newMinute > 59) | |
379 newMinute = 59; | |
380 | |
381 stimestructure.Hours = newHour; | |
382 stimestructure.Minutes = newMinute; | |
383 stimestructure.Seconds = 0; | |
384 | |
385 setTime(stimestructure); | |
386 | |
387 tMenuEdit_newInput(editId, newHour, newMinute, 0, 0); | |
388 return UNSPECIFIC_RETURN; | |
389 } | |
390 if(action == ACTION_BUTTON_NEXT) | |
391 { | |
392 digitContentNew = digitContent + 1; | |
393 if((blockNumber == 0) && (digitContentNew > '0' + 23)) | |
394 digitContentNew = '0'; | |
395 if((blockNumber == 1) && (digitContentNew > '0' + 59)) | |
396 digitContentNew = '0'; | |
397 return digitContentNew; | |
398 } | |
399 if(action == ACTION_BUTTON_BACK) | |
400 { | |
401 digitContentNew = digitContent - 1; | |
402 if((blockNumber == 0) && (digitContentNew < '0')) | |
403 digitContentNew = '0' + 23; | |
404 if((blockNumber == 1) && (digitContentNew < '0')) | |
405 digitContentNew = '0' + 59; | |
406 return digitContentNew; | |
407 } | |
408 /* | |
409 if(action == ACTION_BUTTON_NEXT) | |
410 { | |
411 digitContentNew = digitContent + 1; | |
412 if((blockNumber == 0) && (digitNumber == 0) && (digitContentNew > '2')) | |
413 digitContentNew = '0'; | |
414 if((blockNumber == 1) && (digitNumber == 0) && (digitContentNew > '5')) | |
415 digitContentNew = '0'; | |
416 if(digitContentNew > '9') | |
417 digitContentNew = '0'; | |
418 return digitContentNew; | |
419 } | |
420 if(action == ACTION_BUTTON_BACK) | |
421 { | |
422 digitContentNew = digitContent - 1; | |
423 if((blockNumber == 0) && (digitNumber == 0) && (digitContentNew < '0')) | |
424 digitContentNew = '2'; | |
425 if((blockNumber == 1) && (digitNumber == 0) && (digitContentNew < '0')) | |
426 digitContentNew = '5'; | |
427 if(digitContentNew < '0') | |
428 digitContentNew = '9'; | |
429 return digitContentNew; | |
430 } | |
431 */ | |
432 return UNSPECIFIC_RETURN; | |
433 } | |
434 | |
435 | |
436 uint8_t OnAction_DDMMYY(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
437 { | |
438 SSettings *pSettings; | |
439 | |
440 pSettings = settingsGetPointer(); | |
441 pSettings->date_format = DDMMYY; | |
442 | |
443 tMenuEdit_set_on_off(editId, 1); | |
444 tMenuEdit_set_on_off(StMSYS1_MMDDYY, 0); | |
445 tMenuEdit_set_on_off(StMSYS1_YYMMDD, 0); | |
446 | |
447 return UNSPECIFIC_RETURN; | |
448 } | |
449 | |
450 | |
451 uint8_t OnAction_MMDDYY(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
452 { | |
453 SSettings *pSettings; | |
454 | |
455 pSettings = settingsGetPointer(); | |
456 pSettings->date_format = MMDDYY; | |
457 | |
458 tMenuEdit_set_on_off(editId, 1); | |
459 tMenuEdit_set_on_off(StMSYS1_DDMMYY, 0); | |
460 tMenuEdit_set_on_off(StMSYS1_YYMMDD, 0); | |
461 | |
462 return UNSPECIFIC_RETURN; | |
463 } | |
464 | |
465 | |
466 uint8_t OnAction_YYMMDD(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
467 { | |
468 SSettings *pSettings; | |
469 | |
470 pSettings = settingsGetPointer(); | |
471 pSettings->date_format = YYMMDD; | |
472 | |
473 tMenuEdit_set_on_off(editId, 1); | |
474 tMenuEdit_set_on_off(StMSYS1_MMDDYY, 0); | |
475 tMenuEdit_set_on_off(StMSYS1_DDMMYY, 0); | |
476 | |
477 return UNSPECIFIC_RETURN; | |
478 } | |
479 | |
480 | |
481 uint8_t OnAction_DST(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
482 { | |
483 RTC_TimeTypeDef stimestructure; | |
484 uint8_t newDST; | |
485 | |
486 get_RTC_DateTime(0, &stimestructure); | |
487 newDST = stimestructure.DayLightSaving; | |
488 if(newDST) | |
489 newDST = 0; | |
490 else | |
491 newDST = 1; | |
492 stimestructure.DayLightSaving = newDST; | |
493 set_RTC_DateTime(0, &stimestructure); | |
494 | |
495 tMenuEdit_set_on_off(editId, newDST); | |
496 | |
497 return UNSPECIFIC_RETURN; | |
498 } | |
499 | |
500 | |
501 void openEdit_Language(void) | |
502 { | |
503 char text[32]; | |
504 uint8_t actualLanguage, active; | |
505 SSettings *pSettings; | |
506 | |
507 pSettings = settingsGetPointer(); | |
508 actualLanguage = pSettings->selected_language; | |
509 | |
510 text[0] = '\001'; | |
511 text[1] = TXT_Language; | |
512 text[2] = 0; | |
513 write_topline(text); | |
514 | |
515 text[0] = TXT_LanguageName; | |
516 text[1] = 0; | |
517 | |
518 pSettings->selected_language = LANGUAGE_English; | |
519 if( actualLanguage == pSettings->selected_language) | |
520 active = 1; | |
521 else | |
522 active = 0; | |
523 write_field_on_off(StMSYS2_English, 30, 500, ME_Y_LINE1, &FontT48, text, active); | |
524 | |
525 pSettings->selected_language = LANGUAGE_German; | |
526 if( actualLanguage == pSettings->selected_language) | |
527 active = 1; | |
528 else | |
529 active = 0; | |
530 write_field_on_off(StMSYS2_German, 30, 800, ME_Y_LINE2, &FontT48, text, active); | |
531 | |
532 pSettings->selected_language = LANGUAGE_French; | |
533 if( actualLanguage == pSettings->selected_language) | |
534 active = 1; | |
535 else | |
536 active = 0; | |
537 write_field_on_off(StMSYS2_French, 30, 800, ME_Y_LINE3, &FontT48, text, active); | |
55
a7683f9765da
Italian activated (needs some fine tuning), special characters (?,?,?,?,? and others) currently not working...
heinrichsweikamp
parents:
38
diff
changeset
|
538 |
38 | 539 |
540 pSettings->selected_language = LANGUAGE_Italian; | |
541 if( actualLanguage == pSettings->selected_language) | |
542 active = 1; | |
543 else | |
544 active = 0; | |
545 write_field_on_off(StMSYS2_Italian, 30, 800, ME_Y_LINE4, &FontT48, text, active); | |
546 | |
102
4276d56eb37c
hPa instead of mbar, enabled Spanish language
heinrichsweikamp
parents:
64
diff
changeset
|
547 |
38 | 548 pSettings->selected_language = LANGUAGE_Espanol; |
549 if( actualLanguage == pSettings->selected_language) | |
550 active = 1; | |
551 else | |
552 active = 0; | |
553 write_field_on_off(StMSYS2_Espanol, 30, 800, ME_Y_LINE5, &FontT48, text, active); | |
102
4276d56eb37c
hPa instead of mbar, enabled Spanish language
heinrichsweikamp
parents:
64
diff
changeset
|
554 |
38 | 555 pSettings->selected_language = actualLanguage; |
556 | |
557 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
558 | |
559 setEvent(StMSYS2_English, (uint32_t)OnAction_English); | |
560 setEvent(StMSYS2_German, (uint32_t)OnAction_German); | |
561 setEvent(StMSYS2_French, (uint32_t)OnAction_French); | |
55
a7683f9765da
Italian activated (needs some fine tuning), special characters (?,?,?,?,? and others) currently not working...
heinrichsweikamp
parents:
38
diff
changeset
|
562 setEvent(StMSYS2_Italian, (uint32_t)OnAction_Italian); |
102
4276d56eb37c
hPa instead of mbar, enabled Spanish language
heinrichsweikamp
parents:
64
diff
changeset
|
563 setEvent(StMSYS2_Espanol, (uint32_t)OnAction_Espanol); |
38 | 564 } |
565 | |
566 | |
567 uint8_t OnAction_English (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
568 { | |
569 SSettings *pSettings = settingsGetPointer(); | |
570 pSettings->selected_language = LANGUAGE_English; | |
571 return EXIT_TO_MENU_WITH_LOGO; | |
572 } | |
573 | |
574 | |
575 uint8_t OnAction_German (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
576 { | |
577 SSettings *pSettings = settingsGetPointer(); | |
578 pSettings->selected_language = LANGUAGE_German; | |
579 return EXIT_TO_MENU_WITH_LOGO; | |
580 } | |
581 | |
582 | |
583 uint8_t OnAction_French (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
584 { | |
585 SSettings *pSettings = settingsGetPointer(); | |
586 pSettings->selected_language = LANGUAGE_French; | |
587 return EXIT_TO_MENU_WITH_LOGO; | |
588 } | |
589 | |
590 | |
591 uint8_t OnAction_Italian (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
592 { | |
593 SSettings *pSettings = settingsGetPointer(); | |
594 pSettings->selected_language = LANGUAGE_Italian; | |
595 return EXIT_TO_MENU_WITH_LOGO; | |
596 } | |
597 | |
598 | |
599 uint8_t OnAction_Espanol (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
600 { | |
601 SSettings *pSettings = settingsGetPointer(); | |
602 pSettings->selected_language = LANGUAGE_Espanol; | |
603 return EXIT_TO_MENU_WITH_LOGO; | |
604 } | |
605 | |
606 | |
607 void openEdit_Design(void) | |
608 { | |
609 refresh_Design(); | |
610 | |
611 write_field_button(StMSYS3_Units, 400, 700, ME_Y_LINE1, &FontT48, ""); | |
612 write_field_button(StMSYS3_Colors, 400, 700, ME_Y_LINE2, &FontT48, ""); | |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
613 #ifdef HAVE_DEBUG_VIEW |
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
614 write_field_button(StMSYS3_Debug, 400, 700, ME_Y_LINE3, &FontT48, ""); |
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
615 #endif |
38 | 616 setEvent(StMSYS3_Units, (uint32_t)OnAction_Units); |
617 setEvent(StMSYS3_Colors, (uint32_t)OnAction_Colorscheme); | |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
618 #ifdef HAVE_DEBUG_VIEW |
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
619 setEvent(StMSYS3_Debug, (uint32_t)OnAction_DebugInfo); |
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
620 #endif |
38 | 621 } |
622 | |
623 | |
624 void refresh_Design(void) | |
625 { | |
626 char text[32]; | |
627 | |
628 // header | |
629 text[0] = '\001'; | |
630 text[1] = TXT_2BYTE; | |
631 text[2] = TXT2BYTE_Layout; | |
632 text[3] = 0; | |
633 write_topline(text); | |
634 | |
635 // units | |
636 text[0] = TXT_2BYTE; | |
637 text[1] = TXT2BYTE_Units; | |
638 text[2] = 0; | |
639 write_label_var( 30, 200, ME_Y_LINE1, &FontT48, text); | |
640 | |
641 if(settingsGetPointer()->nonMetricalSystem) | |
642 { | |
643 text[1] = TXT2BYTE_Units_feet; | |
644 } | |
645 else | |
646 { | |
647 text[1] = TXT2BYTE_Units_metric; | |
648 } | |
649 write_label_var( 400, 700, ME_Y_LINE1, &FontT48, text); | |
650 | |
651 // colorscheme | |
652 text[0] = TXT_2BYTE; | |
653 text[1] = TXT2BYTE_Farbschema; | |
654 text[2] = 0; | |
118
ee7f2cd9b9b4
Enlarge text limits to get string displayed completly
Ideenmodellierer
parents:
103
diff
changeset
|
655 write_label_var( 30, 300, ME_Y_LINE2, &FontT48, text); |
38 | 656 |
657 text[0] = '0' + settingsGetPointer()->tX_colorscheme; | |
658 text[1] = 0; | |
659 write_label_var( 400, 700, ME_Y_LINE2, &FontT48, text); | |
660 | |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
661 #ifdef HAVE_DEBUG_VIEW |
38 | 662 // specials |
663 text[0] = TXT_2BYTE; | |
664 text[1] = TXT2BYTE_ShowDebug; | |
665 text[2] = 0; | |
666 write_label_var( 30, 700, ME_Y_LINE3, &FontT48, text); | |
667 | |
668 if(settingsGetPointer()->showDebugInfo) | |
669 text[0] = '\005'; | |
670 else | |
671 text[0] = '\006'; | |
672 text[1] = 0; | |
673 write_label_var( 400, 700, ME_Y_LINE3, &FontT48, text); | |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
674 #endif |
38 | 675 |
676 // design | |
677 text[0] = TXT_Depth; | |
678 text[1] = 0; | |
679 write_content( 30, 700, ME_Y_LINE4, &FontT24, text, CLUT_Font031); | |
680 write_content( 30, 700, ME_Y_LINE4 + 30 + 70, &FontT48, "___________", CLUT_DIVE_FieldSeperatorLines); | |
681 write_content(280, 700, ME_Y_LINE4 + 30 + 70 - 3, &FontT48, "|", CLUT_DIVE_pluginbox); | |
682 write_content(290, 700, ME_Y_LINE4 + 30 + 70 - 37, &FontT48, "_______________", CLUT_DIVE_pluginbox); | |
683 write_content( 30, 700, ME_Y_LINE4 + 30, &FontT144, "24.7", CLUT_Font027); | |
684 | |
685 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
686 } | |
687 | |
688 | |
689 uint8_t OnAction_Units(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
690 { | |
691 settingsGetPointer()->nonMetricalSystem = !(settingsGetPointer()->nonMetricalSystem); | |
692 return EXIT_TO_MENU_WITH_LOGO;//UPDATE_DIVESETTINGS; | |
693 } | |
694 | |
695 | |
696 uint8_t OnAction_Colorscheme(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
697 { | |
698 uint8_t newColorscheme; | |
699 | |
700 newColorscheme = settingsGetPointer()->tX_colorscheme + 1; | |
701 | |
702 if(newColorscheme > 3) | |
703 newColorscheme = 0; | |
704 | |
705 settingsGetPointer()->tX_colorscheme = newColorscheme; | |
706 GFX_use_colorscheme(newColorscheme); | |
707 tHome_init_compass(); | |
708 return UNSPECIFIC_RETURN; | |
709 } | |
710 | |
711 | |
712 uint8_t OnAction_DebugInfo(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
713 { | |
714 settingsGetPointer()->showDebugInfo = !(settingsGetPointer()->showDebugInfo); | |
715 return UPDATE_DIVESETTINGS; | |
716 } | |
717 | |
718 | |
719 | |
720 | |
721 /* | |
722 uint8_t OnAction_Design_t7ft (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
723 { | |
724 SSettings *pSettings = settingsGetPointer(); | |
725 if((pSettings->design == 7) && pSettings->nonMetricalSystem) | |
726 return EXIT_TO_MENU; | |
727 pSettings->design = 7; | |
728 pSettings->nonMetricalSystem = 1; | |
729 tMenuEdit_set_on_off(StMSYS3_t7, 0); | |
730 tMenuEdit_set_on_off(StMSYS3_t7ft, 1); | |
731 tMenuEdit_set_on_off(StMSYS3_t3, 0); | |
732 return UPDATE_DIVESETTINGS; | |
733 } | |
734 | |
735 | |
736 uint8_t OnAction_Design_t7 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
737 { | |
738 SSettings *pSettings = settingsGetPointer(); | |
739 if((pSettings->design == 7) && (pSettings->nonMetricalSystem == 0)) | |
740 return EXIT_TO_MENU; | |
741 pSettings->design = 7; | |
742 pSettings->nonMetricalSystem = 0; | |
743 tMenuEdit_set_on_off(StMSYS3_t7, 1); | |
744 tMenuEdit_set_on_off(StMSYS3_t7ft, 0); | |
745 tMenuEdit_set_on_off(StMSYS3_t3, 0); | |
746 return UPDATE_DIVESETTINGS; | |
747 } | |
748 | |
749 | |
750 uint8_t OnAction_Design_t3 (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
751 { | |
752 SSettings *pSettings = settingsGetPointer(); | |
753 if(pSettings->design == 3) | |
754 return EXIT_TO_MENU; | |
755 pSettings->design = 3; | |
756 pSettings->nonMetricalSystem = 0; | |
757 tMenuEdit_set_on_off(StMSYS3_t7, 0); | |
758 tMenuEdit_set_on_off(StMSYS3_t7ft,0); | |
759 tMenuEdit_set_on_off(StMSYS3_t3, 1); | |
760 return UPDATE_DIVESETTINGS; | |
761 } | |
762 */ | |
763 | |
764 | |
765 void openEdit_Customview(void) | |
766 { | |
767 refresh_Customviews(); | |
768 | |
769 write_field_button(StMSYS4_CViewTimeout, 400, 700, ME_Y_LINE1, &FontT48, ""); | |
770 write_field_button(StMSYS4_CViewStandard, 400, 700, ME_Y_LINE2, &FontT48, ""); | |
771 | |
772 write_field_button(StMSYS4_CornerTimeout, 400, 700, ME_Y_LINE3, &FontT48, ""); | |
343
c9d217b110cc
Added compile switch to enable debug view option in system menu
ideenmodellierer
parents:
259
diff
changeset
|
773 write_field_button(StMSYS4_CornerStandard, 400, 700, ME_Y_LINE4, &FontT48, ""); |
38 | 774 |
775 write_field_button(StMSYS4_ExtraDisplay, 400, 700, ME_Y_LINE5, &FontT48, ""); | |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
776 write_field_button(StMSYS4_MotionCtrl, 400, 700, ME_Y_LINE6, &FontT48, ""); |
38 | 777 |
778 setEvent(StMSYS4_CViewTimeout, (uint32_t)OnAction_CViewTimeout); | |
779 setEvent(StMSYS4_CViewStandard, (uint32_t)OnAction_CViewStandard); | |
780 | |
781 setEvent(StMSYS4_CornerTimeout, (uint32_t)OnAction_CornerTimeout); | |
782 setEvent(StMSYS4_CornerStandard, (uint32_t)OnAction_CornerStandard); | |
783 | |
784 setEvent(StMSYS4_ExtraDisplay, (uint32_t)OnAction_ExtraDisplay); | |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
785 setEvent(StMSYS4_MotionCtrl, (uint32_t)OnAction_MotionCtrl); |
38 | 786 } |
787 | |
788 | |
789 void refresh_Customviews(void) | |
790 { | |
791 char text[32]; | |
792 uint8_t textpointer = 0; | |
793 | |
794 // header | |
795 text[0] = '\001'; | |
796 text[1] = TXT_2BYTE; | |
797 text[2] = TXT2BYTE_Customviews; | |
798 text[3] = 0; | |
799 write_topline(text); | |
800 | |
801 // custom view center return | |
802 textpointer = 0; | |
803 text[textpointer++] = TXT_2BYTE; | |
804 text[textpointer++] = TXT2BYTE_CViewTimeout; | |
805 textpointer += snprintf(&text[textpointer],11," %02u\016\016 %c\017",settingsGetPointer()->tX_customViewTimeout,TXT_Seconds); | |
806 write_label_var( 30, 700, ME_Y_LINE1, &FontT48, text); | |
807 | |
808 // custom view center primary | |
809 text[0] = TXT_2BYTE; | |
810 text[1] = TXT2BYTE_CViewStandard; | |
811 text[2] = ' '; | |
812 text[3] = ' '; | |
813 switch(settingsGetPointer()->tX_customViewPrimary) | |
814 { | |
815 case CVIEW_sensors: | |
816 text[4] = TXT_2BYTE; | |
817 text[5] = TXT2BYTE_O2monitor; | |
818 break; | |
819 case CVIEW_sensors_mV: | |
820 text[4] = TXT_2BYTE; | |
821 text[5] = TXT2BYTE_O2voltage; | |
822 break; | |
823 case CVIEW_Compass: | |
824 text[4] = TXT_2BYTE; | |
825 text[5] = TXT2BYTE_Compass; | |
826 break; | |
827 case CVIEW_Decolist: | |
828 text[4] = TXT_2BYTE; | |
829 text[5] = TXT2BYTE_Decolist; | |
830 break; | |
831 case CVIEW_Tissues: | |
832 text[4] = TXT_2BYTE; | |
833 text[5] = TXT2BYTE_Tissues; | |
834 break; | |
835 case CVIEW_Profile: | |
836 text[4] = TXT_2BYTE; | |
837 text[5] = TXT2BYTE_Profile; | |
838 break; | |
839 case CVIEW_Gaslist: | |
840 text[4] = TXT_2BYTE; | |
841 text[5] = TXT2BYTE_Gaslist; | |
842 break; | |
843 case CVIEW_EADTime: | |
844 text[4] = TXT_2BYTE; | |
845 text[5] = TXT2BYTE_Info; | |
846 break; | |
847 case CVIEW_SummaryOfLeftCorner: | |
848 text[4] = TXT_2BYTE; | |
849 text[5] = TXT2BYTE_Summary; | |
850 break; | |
851 case CVIEW_noneOrDebug: | |
852 text[4] = ' '; | |
853 text[5] = '-'; | |
854 break; | |
855 default: | |
856 snprintf(&text[4],3,"%02u",settingsGetPointer()->tX_customViewPrimary); | |
857 break; | |
858 } | |
859 text[6] = 0; | |
860 write_label_var( 30, 700, ME_Y_LINE2, &FontT48, text); | |
861 | |
862 | |
863 // field corner return | |
864 textpointer = 0; | |
865 text[textpointer++] = TXT_2BYTE; | |
866 text[textpointer++] = TXT2BYTE_CornerTimeout; | |
867 textpointer += snprintf(&text[textpointer],11," %02u\016\016 %c\017",settingsGetPointer()->tX_userselectedLeftLowerCornerTimeout,TXT_Seconds); | |
868 write_label_var( 30, 700, ME_Y_LINE3, &FontT48, text); | |
869 | |
870 // field corner primary | |
871 text[0] = TXT_2BYTE; | |
872 text[1] = TXT2BYTE_CornerStandard; | |
873 text[2] = ' '; | |
874 text[3] = ' '; | |
875 switch(settingsGetPointer()->tX_userselectedLeftLowerCornerPrimary) | |
876 { | |
877 /* Temperature */ | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
878 case LLC_Temperature: |
38 | 879 text[4] = TXT_Temperature; |
880 break; | |
881 /* Average Depth */ | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
882 case LLC_AverageDepth: |
38 | 883 text[4] = TXT_AvgDepth; |
884 break; | |
885 /* ppO2 */ | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
886 case LLC_ppO2: |
38 | 887 text[4] = TXT_ppO2; |
888 break; | |
889 /* Stop Uhr */ | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
890 case LLC_Stopwatch: |
38 | 891 text[4] = TXT_Stopwatch; |
892 break; | |
893 /* Ceiling */ | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
894 case LLC_Ceiling: |
38 | 895 text[4] = TXT_Ceiling; |
896 break; | |
897 /* Future TTS */ | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
898 case LLC_FutureTTS: |
38 | 899 text[4] = TXT_FutureTTS; |
900 break; | |
901 /* CNS */ | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
902 case LLC_CNS: |
38 | 903 text[4] = TXT_CNS; |
904 break; | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
905 case LLC_GF: |
259
26c874cdde0d
feature: allow new saturation to be set in lower left corner
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
906 text[4] = TXT_ActualGradient; |
26c874cdde0d
feature: allow new saturation to be set in lower left corner
Jan Mulder <jlmulder@xs4all.nl>
parents:
210
diff
changeset
|
907 break; |
446
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
444
diff
changeset
|
908 #ifdef ENABLE_BOTTLE_SENSOR |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
909 case LCC_BottleBar: |
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
910 text[4] = TXT_AtemGasVorrat; |
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
911 break; |
446
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
444
diff
changeset
|
912 #endif |
38 | 913 /* none */ |
446
f1257a32f2d4
Introduced configuration header for variant managment:
ideenmodellierer
parents:
444
diff
changeset
|
914 case LLC_Empty: |
38 | 915 text[4] = '-'; |
916 break; | |
917 default: | |
918 snprintf(&text[4],2,"%u",settingsGetPointer()->tX_userselectedLeftLowerCornerPrimary); | |
919 break; | |
920 } | |
921 text[5] = 0; | |
922 write_label_var( 30, 700, ME_Y_LINE4, &FontT48, text); | |
923 | |
924 | |
925 // extra display | |
926 text[0] = TXT_2BYTE; | |
927 text[1] = TXT2BYTE_ExtraDisplay; | |
928 text[2] = ' '; | |
929 text[3] = ' '; | |
930 text[4] = TXT_2BYTE; | |
931 switch(settingsGetPointer()->extraDisplay) | |
932 { | |
933 /* BigFont */ | |
934 case EXTRADISPLAY_BIGFONT: | |
935 text[5] = TXT2BYTE_ExtraBigFont; | |
936 break; | |
937 /* DecoGame */ | |
938 case EXTRADISPLAY_DECOGAME: | |
939 text[5] = TXT2BYTE_ExtraDecoGame; | |
940 break; | |
941 /* none */ | |
942 case EXTRADISPLAY_none: | |
943 text[5] = TXT2BYTE_ExtraNone; | |
944 break; | |
505 | 945 |
38 | 946 default: |
947 snprintf(&text[4],2,"%u",settingsGetPointer()->extraDisplay); | |
948 break; | |
949 } | |
950 text[6] = 0; | |
951 write_label_var( 30, 700, ME_Y_LINE5, &FontT48, text); | |
952 | |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
953 |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
954 /* MotionCtrl */ |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
955 text[0] = TXT_2BYTE; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
956 text[1] = TXT2BYTE_MotionCtrl; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
957 text[2] = ' '; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
958 text[3] = ' '; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
959 text[4] = TXT_2BYTE; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
960 switch(settingsGetPointer()->MotionDetection) |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
961 { |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
962 case MOTION_DETECT_OFF: |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
963 text[5] = TXT2BYTE_MoCtrlNone; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
964 break; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
965 case MOTION_DETECT_MOVE: |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
966 text[5] = TXT2BYTE_MoCtrlPitch; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
967 break; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
968 case MOTION_DETECT_SECTOR: |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
969 text[5] = TXT2BYTE_MoCtrlSector; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
970 break; |
373
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
971 case MOTION_DETECT_SCROLL: |
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
972 text[5] = TXT2BYTE_MoCtrlScroll; |
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
973 break; |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
974 default: |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
975 snprintf(&text[4],2,"%u",settingsGetPointer()->MotionDetection); |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
976 break; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
977 } |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
978 text[6] = 0; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
979 write_label_var( 30, 700, ME_Y_LINE6, &FontT48, text); |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
980 |
38 | 981 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); |
982 } | |
983 | |
984 | |
985 uint8_t OnAction_CViewTimeout(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
986 { | |
987 uint8_t value; | |
988 value = settingsGetPointer()->tX_customViewTimeout; | |
989 | |
990 if(value < 5) | |
991 value = 5; | |
992 else if(value < 10) | |
993 value = 10; | |
994 else if(value < 15) | |
995 value = 15; | |
996 else if(value < 20) | |
997 value = 20; | |
998 else if(value < 30) | |
999 value = 30; | |
1000 else if(value < 45) | |
1001 value = 45; | |
1002 else if(value < 60) | |
1003 value = 60; | |
1004 else | |
1005 value = 0; | |
1006 | |
1007 settingsGetPointer()->tX_customViewTimeout = value; | |
1008 return UPDATE_DIVESETTINGS; | |
1009 } | |
1010 | |
1011 | |
1012 uint8_t OnAction_CViewStandard(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1013 { | |
1014 uint8_t newValue; | |
1015 switch(settingsGetPointer()->tX_customViewPrimary) | |
1016 { | |
1017 case CVIEW_sensors: | |
1018 newValue = CVIEW_sensors_mV; | |
1019 break; | |
1020 case CVIEW_sensors_mV: | |
1021 newValue = CVIEW_Compass; | |
1022 break; | |
1023 case CVIEW_Compass: | |
1024 newValue = CVIEW_Decolist; | |
1025 break; | |
1026 case CVIEW_Decolist: | |
1027 newValue = CVIEW_Tissues; | |
1028 break; | |
1029 case CVIEW_Tissues: | |
1030 newValue = CVIEW_Profile; | |
1031 break; | |
1032 case CVIEW_Profile: | |
1033 newValue = CVIEW_Gaslist; | |
1034 break; | |
1035 case CVIEW_Gaslist: | |
1036 newValue = CVIEW_EADTime; | |
1037 break; | |
1038 case CVIEW_EADTime: | |
1039 newValue = CVIEW_SummaryOfLeftCorner; | |
1040 break; | |
1041 case CVIEW_SummaryOfLeftCorner: | |
1042 newValue = CVIEW_noneOrDebug; | |
1043 break; | |
1044 case CVIEW_noneOrDebug: | |
1045 default: | |
138 | 1046 newValue = CVIEW_sensors; |
38 | 1047 break; |
1048 } | |
1049 settingsGetPointer()->tX_customViewPrimary = newValue; | |
1050 return UPDATE_DIVESETTINGS; | |
1051 } | |
1052 | |
1053 | |
1054 uint8_t OnAction_CornerTimeout(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1055 { | |
1056 uint8_t value; | |
1057 value = settingsGetPointer()->tX_userselectedLeftLowerCornerTimeout; | |
1058 | |
1059 if(value < 5) | |
1060 value = 5; | |
1061 else if(value < 10) | |
1062 value = 10; | |
1063 else if(value < 15) | |
1064 value = 15; | |
1065 else if(value < 20) | |
1066 value = 20; | |
1067 else if(value < 30) | |
1068 value = 30; | |
1069 else if(value < 45) | |
1070 value = 45; | |
1071 else if(value < 60) | |
1072 value = 60; | |
1073 else | |
1074 value = 0; | |
1075 | |
1076 settingsGetPointer()->tX_userselectedLeftLowerCornerTimeout = value; | |
1077 return UPDATE_DIVESETTINGS; | |
1078 } | |
1079 | |
1080 | |
1081 uint8_t OnAction_CornerStandard(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1082 { | |
1083 uint8_t value; | |
1084 value = settingsGetPointer()->tX_userselectedLeftLowerCornerPrimary; | |
1085 | |
1086 value += 1; | |
1087 | |
444
f2c4f5c90540
Introduced enum for lower left corner view selection:
ideenmodellierer
parents:
435
diff
changeset
|
1088 if(value >= LLC_END) |
38 | 1089 value = 0; |
1090 | |
1091 settingsGetPointer()->tX_userselectedLeftLowerCornerPrimary = value; | |
1092 return UPDATE_DIVESETTINGS; | |
1093 } | |
1094 | |
1095 | |
1096 uint8_t OnAction_ExtraDisplay (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1097 { | |
1098 uint8_t newValue; | |
500
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1099 |
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1100 newValue = settingsGetPointer()->extraDisplay + 1; |
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1101 if(newValue == EXTRADISPLAY_DECOGAME) /* Decogame not yet implemented */ |
38 | 1102 { |
500
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1103 newValue++; |
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1104 } |
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1105 if(newValue >= EXTRADISPLAY_END) |
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1106 { |
0d2449e9d659
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
468
diff
changeset
|
1107 newValue = EXTRADISPLAY_none; |
38 | 1108 } |
1109 settingsGetPointer()->extraDisplay = newValue; | |
1110 return UNSPECIFIC_RETURN; | |
1111 } | |
1112 | |
1113 | |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1114 uint8_t OnAction_MotionCtrl (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1115 { |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1116 uint8_t newValue; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1117 switch(settingsGetPointer()->MotionDetection) |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1118 { |
373
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1119 case MOTION_DETECT_OFF: |
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1120 newValue = MOTION_DETECT_MOVE; |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1121 break; |
373
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1122 case MOTION_DETECT_MOVE: |
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1123 newValue = MOTION_DETECT_SECTOR; |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1124 break; |
373
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1125 case MOTION_DETECT_SECTOR: |
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1126 newValue = MOTION_DETECT_SCROLL; |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1127 break; |
373
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1128 case MOTION_DETECT_SCROLL: |
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1129 newValue = MOTION_DETECT_OFF; |
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1130 break; |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1131 default: |
373
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1132 newValue = MOTION_DETECT_OFF; |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1133 break; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1134 } |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1135 settingsGetPointer()->MotionDetection = newValue; |
373
7b981f8bdd41
Add scroll event by pitch angle detection:
ideenmodellierer
parents:
368
diff
changeset
|
1136 InitMotionDetection(); |
368
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1137 return UNSPECIFIC_RETURN; |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1138 } |
50ea68c7a153
Added menu item for motion detection. There are several possibility to use motion detection for user action input. To select of the a new menu entry has been added to the Sys2 =>Custom View Menu (Variables in german)
ideenmodellierer
parents:
259
diff
changeset
|
1139 |
38 | 1140 void openEdit_Information(void) |
1141 { | |
1142 char text[70]; | |
1143 | |
1144 infoPage = 0; | |
1145 | |
1146 text[0] = '\001'; | |
1147 text[1] = TXT_Information; | |
1148 text[2] = 0; | |
1149 write_topline(text); | |
1150 | |
1151 text[0] = TXT_2BYTE; | |
1152 text[1] = TXT2BYTE_ButtonNext; | |
1153 text[2] = 0; | |
1154 | |
1155 write_field_button(StMSYS5_Info, 30, 800, ME_Y_LINE6, &FontT48, text); | |
1156 | |
1157 setEvent(StMSYS5_Info, (uint32_t)OnAction_Information); | |
1158 } | |
1159 | |
1160 | |
1161 uint8_t OnAction_Information (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1162 { | |
1163 resetEnterPressedToStateBeforeButtonAction(); | |
1164 | |
1165 infoPage++; | |
1166 if(infoPage > 3) | |
1167 return EXIT_TO_MENU; | |
1168 else | |
1169 return UNSPECIFIC_RETURN; | |
1170 } | |
1171 | |
1172 | |
1173 void refresh_InformationPage(void) | |
1174 { | |
1175 char text_header[5]; | |
1176 char text_button[5]; | |
1177 char text_content[256]; | |
1178 uint8_t date[3], year,month,day; | |
1179 | |
1180 RTC_DateTypeDef Sdate, Sdate2; | |
1181 float temperature1, temperature2, voltage, offsetTemperature; | |
1182 | |
1183 //RTC_TimeTypeDef Stime; | |
1184 | |
1185 /* | |
1186 SDeviceLine batteryChargeCycles; | |
1187 SDeviceLine batteryChargeCompleteCycles; | |
1188 SDeviceLine temperatureMinimum; | |
1189 SDeviceLine temperatureMaximum; | |
1190 SDeviceLine depthMaximum; | |
1191 SDeviceLine diveCycles; | |
1192 SDeviceLine voltageMinimum; | |
1193 */ | |
1194 | |
1195 switch(infoPage) | |
1196 { | |
1197 case 0: | |
1198 text_header[0] = '\001'; | |
1199 text_header[1] = TXT_Information; | |
1200 text_header[2] = 0; | |
1201 | |
1202 write_label_var( 20, 800, ME_Y_LINE1, &FontT42, "Dive Computer OSTC4"); | |
1203 write_label_var( 20, 800, ME_Y_LINE2, &FontT42, "Design heinrichs/weikamp"); | |
1204 | |
1205 Sdate.Year = firmwareDataGetPointer()->release_year; | |
1206 Sdate.Month = firmwareDataGetPointer()->release_month; | |
1207 Sdate.Date = firmwareDataGetPointer()->release_day; | |
1208 | |
1209 if(settingsGetPointer()->date_format == DDMMYY) | |
1210 { | |
1211 day = 0; | |
1212 month = 1; | |
1213 year = 2; | |
1214 } | |
1215 else | |
1216 if(settingsGetPointer()->date_format == MMDDYY) | |
1217 { | |
1218 day = 1; | |
1219 month = 0; | |
1220 year = 2; | |
1221 } | |
1222 else | |
1223 { | |
1224 day = 2; | |
1225 month = 1; | |
1226 year = 0; | |
1227 } | |
1228 date[day] = Sdate.Date; | |
1229 date[month] = Sdate.Month; | |
1230 date[year] = Sdate.Year; | |
1231 snprintf(text_content,40,"Firmware release date: %02d.%02d.%02d",date[0],date[1],date[2]); | |
1232 write_label_var( 20, 800, ME_Y_LINE3, &FontT42, text_content); | |
1233 write_label_var( 20, 800, ME_Y_LINE4, &FontT42, "for more information"); | |
64 | 1234 write_label_var( 20, 800, ME_Y_LINE5, &FontT42, "info@heinrichsweikamp.com"); |
38 | 1235 |
1236 text_button[0] = TXT_2BYTE; | |
1237 text_button[1] = TXT2BYTE_ButtonNext; | |
1238 text_button[2] = 0; | |
1239 break; | |
1240 | |
1241 case 1: | |
1242 text_header[0] = '\001'; | |
1243 text_header[1] = TXT_2BYTE; | |
1244 text_header[2] = TXT2BYTE_Usage_Battery; | |
1245 text_header[3] = 0; | |
1246 | |
1247 text_content[0] = TXT_2BYTE; | |
1248 text_content[1] = TXT2BYTE_ChargeCycles; | |
1249 text_content[2] = 0; | |
1250 write_label_var( 20, 800, ME_Y_LINE1, &FontT42, text_content); | |
57 | 1251 snprintf(text_content,80,"%ld (%ld)",stateDeviceGetPointer()->batteryChargeCycles.value_int32,stateDeviceGetPointer()->batteryChargeCompleteCycles.value_int32); |
38 | 1252 write_label_var( 20, 800, ME_Y_LINE2, &FontT42, text_content); |
1253 | |
1254 translateDate(stateDeviceGetPointer()->batteryChargeCycles.date_rtc_dr, &Sdate); | |
1255 translateDate(stateDeviceGetPointer()->batteryChargeCompleteCycles.date_rtc_dr, &Sdate2); | |
1256 snprintf(text_content,80,"%u.%u.20%02u (%u.%u.20%02u)",Sdate.Date,Sdate.Month,Sdate.Year, Sdate2.Date,Sdate2.Month,Sdate2.Year); | |
1257 write_label_var( 20, 800, ME_Y_LINE3, &FontT42, text_content); | |
1258 | |
1259 text_content[0] = TXT_2BYTE; | |
1260 text_content[1] = TXT2BYTE_LowestVoltage; | |
1261 text_content[2] = 0; | |
1262 write_label_var( 20, 800, ME_Y_LINE4, &FontT42, text_content); | |
1263 | |
404
e729b8e7654d
Bugfix: display of time of minimum voltag:
ideenmodellierer
parents:
389
diff
changeset
|
1264 translateDate(stateDeviceGetPointer()->voltageMinimum.date_rtc_dr, &Sdate); |
38 | 1265 voltage = ((float)stateDeviceGetPointer()->voltageMinimum.value_int32) / 1000; |
1266 snprintf(text_content,80,"%0.3fV (%u.%u.20%02u)",voltage, Sdate.Date,Sdate.Month,Sdate.Year); | |
1267 write_label_var( 20, 800, ME_Y_LINE5, &FontT42, text_content); | |
1268 | |
1269 text_button[0] = TXT_2BYTE; | |
1270 text_button[1] = TXT2BYTE_ButtonNext; | |
1271 text_button[2] = 0; | |
1272 break; | |
1273 | |
1274 case 2: | |
1275 text_header[0] = '\001'; | |
1276 text_header[1] = TXT_2BYTE; | |
1277 text_header[2] = TXT2BYTE_Usage_Dives; | |
1278 text_header[3] = 0; | |
1279 | |
1280 text_content[0] = TXT_2BYTE; | |
1281 text_content[1] = TXT2BYTE_NumberOfDives; | |
1282 text_content[2] = 0; | |
1283 write_label_var( 20, 800, ME_Y_LINE1, &FontT42, text_content); | |
1284 | |
57 | 1285 snprintf(text_content,80,"%ld (%ld)",stateDeviceGetPointer()->diveCycles.value_int32,(stateDeviceGetPointer()->depthMaximum.value_int32 - 1000) / 100); |
38 | 1286 write_label_var( 20, 800, ME_Y_LINE2, &FontT42, text_content); |
1287 | |
1288 translateDate(stateDeviceGetPointer()->diveCycles.date_rtc_dr, &Sdate); | |
1289 translateDate(stateDeviceGetPointer()->depthMaximum.date_rtc_dr, &Sdate2); | |
1290 snprintf(text_content,80,"%u.%u.20%02u (%u.%u.20%02u)",Sdate.Date,Sdate.Month,Sdate.Year, Sdate2.Date,Sdate2.Month,Sdate2.Year); | |
1291 write_label_var( 20, 800, ME_Y_LINE3, &FontT42, text_content); | |
1292 | |
1293 text_content[0] = TXT_2BYTE; | |
1294 text_content[1] = TXT2BYTE_HoursOfOperation; | |
1295 text_content[2] = 0; | |
1296 write_label_var( 20, 800, ME_Y_LINE4, &FontT42, text_content); | |
1297 | |
57 | 1298 snprintf(text_content,80,"%ld",(stateDeviceGetPointer()->hoursOfOperation.value_int32)/3600); |
38 | 1299 write_label_var( 20, 800, ME_Y_LINE5, &FontT42, text_content); |
1300 | |
1301 text_button[0] = TXT_2BYTE; | |
1302 text_button[1] = TXT2BYTE_ButtonNext; | |
1303 text_button[2] = 0; | |
1304 break; | |
1305 | |
1306 case 3: | |
1307 text_header[0] = '\001'; | |
1308 text_header[1] = TXT_2BYTE; | |
1309 text_header[2] = TXT2BYTE_Usage_Environment; | |
1310 text_header[3] = 0; | |
1311 | |
1312 text_content[0] = TXT_2BYTE; | |
1313 text_content[1] = TXT2BYTE_AmbientTemperature; | |
1314 text_content[2] = 0; | |
1315 write_label_var( 20, 800, ME_Y_LINE1, &FontT42, text_content); | |
1316 | |
1317 temperature1 = ((float)stateDeviceGetPointer()->temperatureMinimum.value_int32) / 100; | |
1318 temperature2 = ((float)stateDeviceGetPointer()->temperatureMaximum.value_int32) / 100; | |
1319 snprintf(text_content,80,"%0.2f\140C / %0.2f\140C",temperature1,temperature2); | |
1320 write_label_var( 20, 800, ME_Y_LINE2, &FontT42, text_content); | |
1321 | |
1322 translateDate(stateDeviceGetPointer()->temperatureMinimum.date_rtc_dr, &Sdate); | |
1323 translateDate(stateDeviceGetPointer()->temperatureMaximum.date_rtc_dr, &Sdate2); | |
1324 snprintf(text_content,80,"(%u.%u.20%02u / %u.%u.20%02u)",Sdate.Date,Sdate.Month,Sdate.Year, Sdate2.Date,Sdate2.Month,Sdate2.Year); | |
1325 write_label_var( 20, 800, ME_Y_LINE3, &FontT42, text_content); | |
1326 | |
1327 text_content[0] = TXT_2BYTE; | |
1328 text_content[1] = TXT2BYTE_Korrekturwerte; | |
1329 text_content[2] = 0; | |
1330 write_label_var( 20, 800, ME_Y_LINE4, &FontT42, text_content); | |
1331 | |
1332 offsetTemperature = ((float)settingsGetPointer()->offsetTemperature_centigrad) / 10; | |
103
f5d2f02dc73f
Generalize TEXT of pressure unit
Dmitry Romanov <kitt@bk.ru>
parents:
102
diff
changeset
|
1333 snprintf(text_content,80,"%i %s / %0.2f\140C",settingsGetPointer()->offsetPressure_mbar, TEXT_PRESSURE_UNIT, offsetTemperature); |
38 | 1334 write_label_var( 20, 800, ME_Y_LINE5, &FontT42, text_content); |
1335 | |
1336 text_button[0] = TXT_2BYTE; | |
1337 text_button[1] = TXT2BYTE_Exit; | |
1338 text_button[2] = 0; | |
1339 break; | |
1340 } | |
1341 | |
1342 write_topline(text_header); | |
1343 tMenuEdit_newButtonText(StMSYS5_Info, text_button); | |
1344 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonNext,0); | |
1345 } | |
1346 | |
1347 | |
1348 void openEdit_Reset(void) | |
1349 { | |
1350 char text[32]; | |
1351 | |
1352 text[0] = '\001'; | |
1353 text[1] = TXT_2BYTE; | |
1354 text[2] = TXT2BYTE_ResetMenu; | |
1355 text[3] = 0; | |
1356 write_topline(text); | |
1357 | |
1358 text[0] = TXT_2BYTE; | |
1359 text[1] = TXT2BYTE_LogbookOffset; | |
1360 text[7] = 0; | |
1361 | |
1362 write_label_var( 30, 400, ME_Y_LINE1, &FontT48, text); | |
1363 | |
1364 write_field_udigit(StMSYS6_LogbookOffset,420, 800, ME_Y_LINE1, &FontT48, "####", settingsGetPointer()->logbookOffset,0,0,0); | |
1365 | |
1366 text[0] = TXT_2BYTE; | |
1367 text[2] = 0; | |
1368 | |
1369 text[1] = TXT2BYTE_ResetAll; | |
1370 write_field_button(StMSYS6_ResetAll, 30, 800, ME_Y_LINE2, &FontT48, text); | |
1371 | |
1372 text[1] = TXT2BYTE_ResetDeco; | |
1373 write_field_button(StMSYS6_ResetDeco, 30, 800, ME_Y_LINE3, &FontT48, text); | |
1374 | |
1375 text[1] = TXT2BYTE_Reboot; | |
1376 write_field_button(StMSYS6_Reboot, 30, 800, ME_Y_LINE4, &FontT48, text); | |
1377 | |
1378 text[1] = TXT2BYTE_Maintenance; | |
1379 write_field_button(StMSYS6_Maintenance, 30, 800, ME_Y_LINE5, &FontT48, text); | |
1380 | |
1381 #ifndef RESETLOGBLOCK | |
1382 text[1] = TXT2BYTE_ResetLogbook; | |
1383 write_field_button(StMSYS6_ResetLogbook,30, 800, ME_Y_LINE6, &FontT48, text); | |
1384 #else | |
1385 text[0] = '\021'; | |
1386 text[1] = TXT_2BYTE; | |
1387 text[2] = TXT2BYTE_ResetLogbook; | |
1388 text[3] = 0; | |
1389 write_field_button(StMSYS6_ResetLogbook,30, 800, ME_Y_LINE6, &FontT48, text); | |
1390 text[0] = TXT_2BYTE; | |
1391 text[2] = 0; | |
1392 #endif | |
1393 | |
1394 setEvent(StMSYS6_LogbookOffset, (uint32_t)OnAction_LogbookOffset); | |
1395 setEvent(StMSYS6_ResetAll, (uint32_t)OnAction_Confirm); | |
1396 setEvent(StMSYS6_ResetDeco, (uint32_t)OnAction_Confirm); | |
1397 setEvent(StMSYS6_Reboot, (uint32_t)OnAction_Confirm); | |
1398 setEvent(StMSYS6_Maintenance, (uint32_t)OnAction_Confirm); | |
1399 #ifndef RESETLOGBLOCK | |
1400 setEvent(StMSYS6_ResetLogbook, (uint32_t)OnAction_Confirm); | |
1401 #else | |
1402 setEvent(StMSYS6_ResetLogbook, (uint32_t)OnAction_Nothing); | |
1403 #endif | |
1404 | |
1405 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
1406 } | |
1407 | |
1408 | |
1409 void openEdit_ResetConfirmation(uint32_t editIdOfCaller) | |
1410 { | |
1411 char text[32]; | |
1412 | |
1413 resetMenuEdit(CLUT_MenuPageSystem); | |
1414 | |
1415 text[0] = '\001'; | |
1416 text[1] = TXT_2BYTE; | |
1417 text[2] = TXT2BYTE_AreYouSure; | |
1418 text[3] = 0; | |
1419 write_topline(text); | |
1420 | |
1421 text[0] = TXT_2BYTE; | |
1422 text[2] = 0; | |
1423 text[1] = TXT2BYTE_Abort; | |
1424 | |
1425 write_field_button(StMSYS6_Exit, 30, 800, ME_Y_LINE1, &FontT48, text); | |
1426 | |
1427 text[2] = 0; | |
1428 text[3] = 0; | |
1429 switch(editIdOfCaller) | |
1430 { | |
1431 case StMSYS6_Reboot: | |
1432 case StMSYS6_RebootRTE: | |
1433 case StMSYS6_RebootMainCPU: | |
1434 text[1] = TXT2BYTE_RebootMainCPU; | |
1435 write_field_button(StMSYS6_RebootMainCPU, 30, 800, ME_Y_LINE2, &FontT48, text); | |
1436 text[1] = TXT2BYTE_RebootRTE; | |
1437 write_field_button(StMSYS6_RebootRTE, 30, 800, ME_Y_LINE3, &FontT48, text); | |
1438 setEvent(StMSYS6_Exit, (uint32_t)OnAction_Exit); | |
1439 setEvent(StMSYS6_RebootMainCPU, (uint32_t)OnAction_RebootMainCPU); | |
1440 setEvent(StMSYS6_RebootRTE, (uint32_t)OnAction_RebootRTE); | |
1441 text[0] = '\025'; | |
1442 text[1] = TXT_2BYTE; | |
1443 text[2] = TXT2BYTE_DecoDataLost; | |
1444 text[3] = 0; | |
1445 write_label_var( 30, 800, ME_Y_LINE4, &FontT48, text); | |
1446 break; | |
1447 | |
1448 case StMSYS6_ResetDeco: | |
1449 text[1] = TXT2BYTE_ResetDeco; | |
1450 write_field_button(editIdOfCaller, 30, 800, ME_Y_LINE2, &FontT48, text); | |
1451 setEvent(StMSYS6_Exit, (uint32_t)OnAction_Exit); | |
1452 setEvent(editIdOfCaller, (uint32_t)OnAction_ResetDeco); | |
1453 text[0] = '\025'; | |
1454 text[1] = TXT_2BYTE; | |
1455 text[2] = TXT2BYTE_DecoDataLost; | |
1456 text[3] = 0; | |
1457 write_label_var( 30, 800, ME_Y_LINE4, &FontT48, text); | |
1458 break; | |
1459 | |
1460 case StMSYS6_ResetAll: | |
1461 text[1] = TXT2BYTE_ResetAll; | |
1462 write_field_button(editIdOfCaller, 30, 800, ME_Y_LINE2, &FontT48, text); | |
1463 setEvent(StMSYS6_Exit, (uint32_t)OnAction_Exit); | |
1464 setEvent(editIdOfCaller, (uint32_t)OnAction_ResetAll); | |
1465 break; | |
1466 | |
1467 case StMSYS6_ResetLogbook: | |
1468 text[1] = TXT2BYTE_ResetLogbook; | |
1469 write_field_button(editIdOfCaller, 30, 800, ME_Y_LINE2, &FontT48, text); | |
1470 setEvent(StMSYS6_Exit, (uint32_t)OnAction_Exit); | |
1471 setEvent(editIdOfCaller, (uint32_t)OnAction_ResetLogbook); | |
1472 break; | |
1473 | |
1474 case StMSYS6_Maintenance: | |
1475 case StMSYS6_SetBattCharge: | |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1476 case StMSYS6_SetSampleIndx: |
38 | 1477 text[0] = TXT_2BYTE; |
1478 text[1] = TXT2BYTE_SetFactoryDefaults; | |
1479 text[2] = 0; | |
1480 write_field_button(StMSYS6_SetFactoryBC, 30, 800, ME_Y_LINE2, &FontT48, text); | |
1481 | |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1482 #ifdef ENABLE_ANALYSE_SAMPLES |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1483 text[0] = TXT_2BYTE; |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1484 text[1] = TXT2BYTE_SetSampleIndex; |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1485 text[2] = 0; |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1486 write_field_button(StMSYS6_SetSampleIndx, 30, 800, ME_Y_LINE3, &FontT48, text); |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1487 #endif |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1488 |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1489 |
38 | 1490 if(stateRealGetPointer()->lifeData.battery_charge == 0) |
1491 { | |
1492 text[0] = TXT_2BYTE; | |
1493 text[1] = TXT2BYTE_SetBatteryCharge; | |
1494 text[2] = 0; | |
1495 snprintf(&text[2],10,": %u%%",settingsGetPointer()->lastKnownBatteryPercentage); | |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1496 #ifdef ENABLE_ANALYSE_SAMPLES |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1497 write_field_button(StMSYS6_SetBattCharge, 30, 800, ME_Y_LINE4, &FontT48, text); |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1498 #else |
38 | 1499 write_field_button(StMSYS6_SetBattCharge, 30, 800, ME_Y_LINE3, &FontT48, text); |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1500 #endif |
38 | 1501 |
1502 setEvent(StMSYS6_Exit, (uint32_t)OnAction_Exit); | |
1503 setEvent(StMSYS6_SetFactoryBC, (uint32_t)OnAction_SetFactoryDefaults); | |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1504 #ifdef ENABLE_ANALYSE_SAMPLES |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1505 setEvent(StMSYS6_SetSampleIndx, (uint32_t)OnAction_RecoverSampleIdx); |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1506 #endif |
38 | 1507 setEvent(StMSYS6_SetBattCharge, (uint32_t)OnAction_SetBatteryCharge); |
1508 } | |
1509 else | |
1510 { | |
1511 setEvent(StMSYS6_Exit, (uint32_t)OnAction_Exit); | |
1512 setEvent(StMSYS6_SetFactoryBC, (uint32_t)OnAction_SetFactoryDefaults); | |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1513 #ifdef ENABLE_ANALYSE_SAMPLES |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1514 setEvent(StMSYS6_SetSampleIndx, (uint32_t)OnAction_RecoverSampleIdx); |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1515 #endif |
38 | 1516 } |
1517 // write_field_button(StMSYS6_ScreenTest, 30, 800, ME_Y_LINE3, &FontT48, "Screen Test"); | |
1518 // setEvent(StMSYS6_ScreenTest, (uint32_t)OnAction_ScreenTest); | |
1519 | |
1520 text[0] = TXT_2BYTE; | |
1521 text[1] = TXT2BYTE_WarnBatteryLow; | |
1522 text[2] = 0; | |
1523 snprintf(&text[2],10,": %01.2fV",stateRealGetPointer()->lifeData.battery_voltage); | |
435
8851702173e0
Bugfix display battery voltage in maintainance menu:
ideenmodellierer
parents:
424
diff
changeset
|
1524 write_label_var( 30, 800, ME_Y_LINE5, &FontT42, text); |
8851702173e0
Bugfix display battery voltage in maintainance menu:
ideenmodellierer
parents:
424
diff
changeset
|
1525 |
38 | 1526 snprintf(&text[0],30,"Code: %X",getLicence()); |
1527 write_label_var( 30, 800, ME_Y_LINE6, &FontT42, text); | |
1528 break; | |
1529 | |
1530 } | |
1531 | |
1532 write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); | |
1533 } | |
1534 | |
1535 uint8_t OnAction_LogbookOffset(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1536 { | |
1537 uint8_t digitContentNew; | |
1538 uint32_t newOffset; | |
1539 | |
1540 if(action == ACTION_BUTTON_ENTER) | |
1541 return digitContent; | |
1542 | |
1543 if(action == ACTION_BUTTON_ENTER_FINAL) | |
1544 { | |
1545 evaluateNewString(editId, &newOffset, 0, 0, 0); | |
1546 if(newOffset > 9000) | |
1547 newOffset = 0; | |
1548 tMenuEdit_newInput(editId, newOffset, 0, 0, 0); | |
1549 settingsGetPointer()->logbookOffset = (uint16_t)newOffset; | |
1550 return UPDATE_DIVESETTINGS; | |
1551 } | |
1552 | |
1553 if(action == ACTION_BUTTON_NEXT) | |
1554 { | |
1555 digitContentNew = digitContent + 1; | |
1556 if(digitContentNew > '9') | |
1557 digitContentNew = '0'; | |
1558 return digitContentNew; | |
1559 } | |
1560 | |
1561 if(action == ACTION_BUTTON_BACK) | |
1562 { | |
1563 digitContentNew = digitContent - 1; | |
1564 if(digitContentNew < '0') | |
1565 digitContentNew = '9'; | |
1566 return digitContentNew; | |
1567 } | |
1568 return UNSPECIFIC_RETURN; | |
1569 } | |
1570 | |
1571 uint8_t OnAction_Nothing (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1572 { | |
1573 return UNSPECIFIC_RETURN; | |
1574 } | |
1575 | |
1576 uint8_t OnAction_Exit (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1577 { | |
1578 return EXIT_TO_MENU; | |
1579 } | |
1580 uint8_t OnAction_Confirm (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1581 { | |
1582 openEdit_ResetConfirmation(editId); | |
1583 return UNSPECIFIC_RETURN; | |
1584 } | |
1585 | |
1586 uint8_t OnAction_RebootRTE (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1587 { | |
1588 MX_SmallCPU_Reset_To_Standard(); | |
1589 return EXIT_TO_MENU; | |
1590 } | |
1591 | |
1592 uint8_t OnAction_ResetDeco (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1593 { | |
1594 clearDeco(); | |
1595 return EXIT_TO_MENU; | |
1596 } | |
1597 | |
1598 uint8_t OnAction_ResetAll (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1599 { | |
1600 set_settings_to_Standard(); | |
1601 check_and_correct_settings(); | |
1602 | |
1603 return UPDATE_AND_EXIT_TO_HOME; | |
1604 } | |
1605 | |
1606 uint8_t OnAction_ResetLogbook (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1607 { | |
1608 write_label_var( 430, 740, 350, &FontT42, "Wait"); | |
1609 ext_flash_erase_logbook(); | |
1610 | |
1611 SSettings * pSettings = settingsGetPointer(); | |
1612 pSettings->lastDiveLogId = 255; | |
1613 pSettings->logFlashNextSampleStartAddress = 0; | |
1614 | |
1615 return EXIT_TO_MENU; | |
1616 } | |
1617 | |
1618 uint8_t OnAction_RebootMainCPU (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1619 { | |
1620 settingsGetPointer()->showDebugInfo = 0; | |
1621 extern uint8_t bootToBootloader; | |
1622 bootToBootloader = 1; | |
1623 return UNSPECIFIC_RETURN; | |
1624 } | |
1625 | |
1626 | |
1627 uint8_t OnAction_SetFactoryDefaults(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1628 { | |
1629 settingsWriteFactoryDefaults(settingsGetPointer()->ButtonResponsiveness[3], settingsGetPointer()->buttonBalance); | |
1630 return EXIT_TO_MENU; | |
1631 } | |
1632 | |
468
aa1d71875e25
Moved and deactivated analyse sample buffer switch:
ideenmodellierer
parents:
446
diff
changeset
|
1633 #ifdef ENABLE_ANALYSE_SAMPLES |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1634 uint8_t OnAction_RecoverSampleIdx(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1635 { |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1636 char text[32]; |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1637 char strResult[20]; |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1638 |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1639 ext_flash_AnalyseSampleBuffer(strResult); |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1640 snprintf(&text[0],30,"Ring: %s",strResult); //"Code: %X",settingsGetPointer()->logFlashNextSampleStartAddress); //getLicence()); |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1641 write_label_var( 30, 800, ME_Y_LINE6, &FontT42, text); |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1642 return UNSPECIFIC_RETURN; |
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1643 } |
468
aa1d71875e25
Moved and deactivated analyse sample buffer switch:
ideenmodellierer
parents:
446
diff
changeset
|
1644 #endif |
424
2b31cf1ebbcc
Added (optional) menu item to analyse log sample buffer:
ideenmodellierer
parents:
404
diff
changeset
|
1645 |
38 | 1646 uint8_t OnAction_SetBatteryCharge(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) |
1647 { | |
1648 setBatteryPercentage(settingsGetPointer()->lastKnownBatteryPercentage); | |
1649 // setBatteryPercentage(100); | |
1650 return EXIT_TO_MENU; | |
1651 } | |
1652 | |
1653 #ifdef SCREENTEST | |
1654 uint8_t OnAction_ScreenTest (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1655 { | |
1656 static uint8_t FrameCount = 1; // 0 is invisible frame | |
1657 char text[5]; | |
1658 GFX_DrawCfgScreen tTestScreen; | |
1659 tTestScreen.FBStartAdress = 0; | |
1660 tTestScreen.ImageHeight = 480; | |
1661 tTestScreen.ImageWidth = 800; | |
1662 tTestScreen.LayerIndex = 1; | |
1663 | |
1664 set_globalState(StMSYS6_ScreenTest); | |
1665 tTestScreen.FBStartAdress = getFrameByNumber(FrameCount); | |
1666 if(tTestScreen.FBStartAdress == 0) | |
1667 { | |
1668 extern uint8_t bootToBootloader; | |
1669 bootToBootloader = 1; | |
1670 } | |
1671 GFX_fill_buffer(tTestScreen.FBStartAdress, 0xFF, FrameCount); | |
1672 snprintf(text,5,"%u",FrameCount); | |
1673 Gfx_write_label_var(&tTestScreen, 10,100,10,&FontT48,CLUT_Font027,text); | |
1674 GFX_SetFramesTopBottom(tTestScreen.FBStartAdress, NULL,480); | |
1675 FrameCount++; | |
1676 } | |
1677 #endif | |
1678 /* | |
1679 uint8_t OnAction_TestCLog (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) | |
1680 { | |
1681 write_label_var( 430, 740, 350, &FontT42, "Wait"); | |
1682 | |
1683 test_log_only(20, 5); | |
1684 test_log_only(30, 10); | |
1685 ext_flash_write_settings(); | |
1686 return EXIT_TO_MENU; | |
1687 } | |
1688 */ | |
1689 |