Mercurial > public > ostc4
annotate Discovery/Inc/tHome.h @ 837:18946846b95b Evo_2_23
Bugfixes and code cleanup for BF views:
BF views gauge and apnoe were using "dive computer" T3 view functions which caused some problem because these legacy views were not intended to work with customer view selection. A switch condition has been added to skip these kind of functions in case a design other T3 is in use.
Another potential problem was that there were two definitions for T3 and T7 views which were basically the same. If they wold not be the same the switching functionality wold not work properly. To avoid this problem in futur the arrays have been merged => the view are handled sing the (newer) cv_view arrays instead of the standard_views which were in used before the user could the views which should be shown.
author | ideenmodellierer |
---|---|
date | Wed, 27 Dec 2023 19:37:17 +0100 |
parents | 7322adb00305 |
children | 2225c467f1e9 |
rev | line source |
---|---|
38 | 1 /////////////////////////////////////////////////////////////////////////////// |
2 /// -*- coding: UTF-8 -*- | |
3 /// | |
4 /// \file Discovery/Inc/tHome.h | |
5 /// \brief Control for Surface and Dive Templates | |
6 /// \author heinrichs weikamp gmbh | |
7 /// \date 10-November-2014 | |
8 /// | |
9 /// $Id$ | |
10 /////////////////////////////////////////////////////////////////////////////// | |
11 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh | |
12 /// | |
13 /// This program is free software: you can redistribute it and/or modify | |
14 /// it under the terms of the GNU General Public License as published by | |
15 /// the Free Software Foundation, either version 3 of the License, or | |
16 /// (at your option) any later version. | |
17 /// | |
18 /// This program is distributed in the hope that it will be useful, | |
19 /// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
20 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
21 /// GNU General Public License for more details. | |
22 /// | |
23 /// You should have received a copy of the GNU General Public License | |
24 /// along with this program. If not, see <http://www.gnu.org/licenses/>. | |
25 ////////////////////////////////////////////////////////////////////////////// | |
26 | |
27 /* Define to prevent recursive inclusion -------------------------------------*/ | |
28 #ifndef THOME_H | |
29 #define THOME_H | |
30 | |
31 /* Includes ------------------------------------------------------------------*/ | |
32 | |
33 #include <stdio.h> | |
34 #include <string.h> | |
35 #include "stm32f4xx_hal.h" | |
36 #include "base.h" | |
37 #include "gfx.h" | |
38 #include "gfx_colors.h" | |
39 #include "gfx_engine.h" | |
40 #include "text_multilanguage.h" | |
41 #include "settings.h" | |
42 #include "data_central.h" | |
43 #include "data_exchange.h" | |
44 #include "check_warning.h" | |
493
b560e474e319
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
386
diff
changeset
|
45 #include "configuration.h" |
38 | 46 |
47 extern const uint16_t BigFontSeperationLeftRight; // in t3.c | |
48 extern const uint16_t BigFontSeperationTopBottom; // in t3.c | |
49 | |
50 #define MAX_AGE_DECOINFO_MS (120000) | |
51 | |
52 enum EXTRADISPLAYS | |
53 { | |
54 EXTRADISPLAY_none = 0, | |
55 EXTRADISPLAY_BIGFONT, | |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
672
diff
changeset
|
56 EXTRADISPLAY_BFACTIVE, |
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
672
diff
changeset
|
57 #ifdef HAVEDECOGAME |
38 | 58 EXTRADISPLAY_DECOGAME, |
740
5078da3845c0
Added button lock after wakeup in surface mode:
Ideenmodellierer
parents:
672
diff
changeset
|
59 #endif |
38 | 60 EXTRADISPLAY_END |
61 }; | |
62 | |
820 | 63 #define LEGACY_T3_START_ID_PRE_TIMER (15u) /* Value == index of the first real T3 view before introduction of timer */ |
64 #define LEGACY_CV_END_POST_TIMER (15u) /* Value CV_END in an intermediate version. Used to identify an indexing problem */ | |
65 | |
38 | 66 enum CUSTOMVIEWS |
67 { | |
68 CVIEW_noneOrDebug = 0, | |
69 CVIEW_sensors, | |
70 CVIEW_Compass, | |
71 CVIEW_Decolist, | |
72 CVIEW_Tissues, | |
73 CVIEW_Profile, | |
74 CVIEW_EADTime, | |
75 CVIEW_Gaslist, | |
76 CVIEW_sensors_mV, | |
77 CVIEW_Hello, | |
78 CVIEW_CompassDebug, | |
79 CVIEW_SummaryOfLeftCorner, | |
672 | 80 CVIEW_Charger, |
770
8deb28b2d4da
CCR overview in surface mode. Makes it easy to quickly check that all settings (mode, setpoints, diluent, scrubber timer) are correct when preparing to dive (also makes the OC gas list available in surface mode for the same reason).
heinrichsweikamp
parents:
740
diff
changeset
|
81 CVIEW_CcrSummary, |
805
dd7ce655db26
Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents:
770
diff
changeset
|
82 CVIEW_Timer, |
837 | 83 CVIEW_END /* The ID is used in shift operation => 31 is the max number of supported views */ |
820 | 84 }; |
85 | |
86 enum CUSTOMVIEWS_BF | |
87 { | |
88 CVIEW_T3_noneOrDebug = 0, | |
89 CVIEW_T3_sensors, | |
90 CVIEW_T3_Compass, | |
38 | 91 CVIEW_T3_Decostop, |
92 CVIEW_T3_TTS, | |
93 CVIEW_T3_MaxDepth, | |
94 CVIEW_T3_ppO2andGas, | |
95 CVIEW_T3_StopWatch, | |
96 CVIEW_T3_GasList, | |
97 CVIEW_T3_Temperature, | |
98 CVIEW_T3_ApnoeSurfaceInfo, | |
493
b560e474e319
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
386
diff
changeset
|
99 CVIEW_T3_Navigation, |
b560e474e319
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
386
diff
changeset
|
100 CVIEW_T3_DepthData, |
542
6960df7ddb09
Added new t3 view showing first deco stop and tts in parallel:
Ideenmodellierer
parents:
505
diff
changeset
|
101 CVIEW_T3_DecoTTS, |
594
280c11153080
Added compile switch for new T3 View Profile
Ideenmodellierer
parents:
542
diff
changeset
|
102 #ifdef ENABLE_T3_PROFILE_VIEW |
280c11153080
Added compile switch for new T3 View Profile
Ideenmodellierer
parents:
542
diff
changeset
|
103 CVIEW_T3_Profile, |
280c11153080
Added compile switch for new T3 View Profile
Ideenmodellierer
parents:
542
diff
changeset
|
104 #endif |
820 | 105 CVIEW_T3_END /* The ID is used in shift operation => 31 is the max number of supported views */ |
38 | 106 }; |
107 | |
108 // for custom view switch on/off 161122 hw | |
379 | 109 extern const uint8_t cv_changelist[]; |
493
b560e474e319
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
386
diff
changeset
|
110 extern const uint8_t cv_changelist_BS[]; |
b560e474e319
Added possibility to switch between "classic" bigfont views and a selection with a new information combination
Ideenmodellierer
parents:
386
diff
changeset
|
111 |
38 | 112 #define CHECK_BIT_THOME(var,pos) (((var)>>(pos)) & 1) |
113 | |
114 typedef struct | |
115 { | |
116 uint16_t Hours; | |
117 uint16_t Minutes; | |
118 uint16_t Seconds; | |
119 uint32_t Total; | |
120 | |
121 } SDivetime; | |
122 | |
123 | |
124 typedef struct | |
125 { | |
126 uint8_t Days; | |
127 uint8_t Hours; | |
128 uint8_t Minutes; | |
129 uint8_t Seconds; | |
130 uint32_t Total; | |
131 } SSurfacetime; | |
132 | |
133 | |
134 extern _Bool warning_count_high_time; | |
135 extern _Bool display_count_high_time; | |
136 extern uint8_t errorsInSettings; | |
137 | |
138 | |
139 void tHome_init(void); | |
140 void tHome_refresh(void); | |
141 void tHome_sleepmode_fun(void); | |
142 void set_globalState_tHome(void); | |
143 void tHome_change_field_button_pressed(void); | |
361
b111fc4250e9
Pass action to customer vie update function.
Ideenmodellierer
parents:
289
diff
changeset
|
144 void tHome_change_customview_button_pressed(uint8_t action); |
38 | 145 |
146 void tHome_findNextStop(const uint16_t *list, uint8_t *depthOut, uint16_t *lengthOut); | |
147 void tHomeDiveMenuControl(uint8_t sendAction); | |
148 void tHome_tick(void); | |
149 | |
150 uint8_t tHome_gas_writer(uint8_t oxygen_percentage, uint8_t helium_percentage, char *text); | |
151 uint32_t tHome_DateCode(RTC_DateTypeDef *dateInput); | |
152 | |
153 void tHome_init_compass(void); | |
505 | 154 uint8_t tHome_getNumberOfAvailableCVs(const uint8_t* pcv_list); |
38 | 155 |
156 float t3_basics_lines_depth_and_divetime(GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXl1, GFX_DrawCfgWindow* tXr1, uint8_t mode); | |
157 void t3_basics_battery_low_customview_extra(GFX_DrawCfgWindow* tXc1); | |
158 void t3_basics_show_customview_warnings(GFX_DrawCfgWindow* tXc1); | |
159 void t3_basics_refresh_customview(float depth, uint8_t tX_selection_customview, GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXc1, GFX_DrawCfgWindow* tXc2, uint8_t mode); | |
160 void t3_basics_refresh_apnoeRight(float depth, uint8_t tX_selection_customview, GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXc1, GFX_DrawCfgWindow* tXc2, uint8_t mode); | |
161 //void _findNextStop(const uint16_t *list, uint8_t *depthOut, uint16_t *lengthOut); | |
162 void t3_basics_colorscheme_mod(char *text); | |
505 | 163 void t3_basics_change_customview(uint8_t *tX_selection_customview, const uint8_t *tX_customviews, uint8_t action); |
38 | 164 |
165 uint8_t tHome_show_lost_connection_count(GFX_DrawCfgScreen *ScreenToWriteOn); | |
166 | |
167 #endif /* THOME_H */ |