annotate Discovery/Inc/tHome.h @ 1035:5b913cdaa9dc Puls_Integration

Degub message logger: Added functionality to handle logger view (in case it is enabled via compile switch) like a normal t7 custom view.
author Ideenmodellierer
date Sat, 09 Aug 2025 16:55:20 +0200
parents 2225c467f1e9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
1 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
2 /// -*- coding: UTF-8 -*-
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 /// \file Discovery/Inc/tHome.h
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 /// \brief Control for Surface and Dive Templates
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 /// \author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 /// \date 10-November-2014
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 /// $Id$
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 /// This program is free software: you can redistribute it and/or modify
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 /// it under the terms of the GNU General Public License as published by
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 /// the Free Software Foundation, either version 3 of the License, or
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 /// (at your option) any later version.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 /// This program is distributed in the hope that it will be useful,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 /// GNU General Public License for more details.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 /// You should have received a copy of the GNU General Public License
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 //////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 /* Define to prevent recursive inclusion -------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 #ifndef THOME_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 #define THOME_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #include <stdio.h>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 #include <string.h>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 #include "stm32f4xx_hal.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 #include "base.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 #include "gfx.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 #include "gfx_colors.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 #include "gfx_engine.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 #include "text_multilanguage.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 #include "settings.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 #include "data_central.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 #include "data_exchange.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
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
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 extern const uint16_t BigFontSeperationLeftRight; // in t3.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 extern const uint16_t BigFontSeperationTopBottom; // in t3.c
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 #define MAX_AGE_DECOINFO_MS (120000)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 enum EXTRADISPLAYS
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54 EXTRADISPLAY_none = 0,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
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
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 EXTRADISPLAY_DECOGAME,
740
5078da3845c0 Added button lock after wakeup in surface mode:
Ideenmodellierer
parents: 672
diff changeset
59 #endif
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 EXTRADISPLAY_END
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62
820
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
63 #define LEGACY_T3_START_ID_PRE_TIMER (15u) /* Value == index of the first real T3 view before introduction of timer */
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
64 #define LEGACY_CV_END_POST_TIMER (15u) /* Value CV_END in an intermediate version. Used to identify an indexing problem */
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
65
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 enum CUSTOMVIEWS
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 CVIEW_noneOrDebug = 0,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 CVIEW_sensors,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 CVIEW_Compass,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 CVIEW_Decolist,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 CVIEW_Tissues,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 CVIEW_Profile,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 CVIEW_EADTime,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 CVIEW_Gaslist,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 CVIEW_sensors_mV,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 CVIEW_Hello,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 CVIEW_CompassDebug,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 CVIEW_SummaryOfLeftCorner,
672
c00a80f26641 Added Charging view:
Ideenmodellierer
parents: 594
diff changeset
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,
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 837
diff changeset
83 CVIEW_Position,
1035
5b913cdaa9dc Degub message logger:
Ideenmodellierer
parents: 899
diff changeset
84 #ifdef ENABLE_LOGGER_WINDOW
5b913cdaa9dc Degub message logger:
Ideenmodellierer
parents: 899
diff changeset
85 CVIEW_Logger = 25, /* keep development views at the end of the list to avoid id problems in official releases */
5b913cdaa9dc Degub message logger:
Ideenmodellierer
parents: 899
diff changeset
86 #endif
5b913cdaa9dc Degub message logger:
Ideenmodellierer
parents: 899
diff changeset
87 CVIEW_END = 32 /* The ID is used in shift operation => 31 is the max number of supported views */
820
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
88 };
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
89
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
90 enum CUSTOMVIEWS_BF
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
91 {
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
92 CVIEW_T3_noneOrDebug = 0,
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
93 CVIEW_T3_sensors,
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
94 CVIEW_T3_Compass,
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95 CVIEW_T3_Decostop,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 CVIEW_T3_TTS,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97 CVIEW_T3_MaxDepth,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 CVIEW_T3_ppO2andGas,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 CVIEW_T3_StopWatch,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100 CVIEW_T3_GasList,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 CVIEW_T3_Temperature,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102 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
103 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
104 CVIEW_T3_DepthData,
542
6960df7ddb09 Added new t3 view showing first deco stop and tts in parallel:
Ideenmodellierer
parents: 505
diff changeset
105 CVIEW_T3_DecoTTS,
594
280c11153080 Added compile switch for new T3 View Profile
Ideenmodellierer
parents: 542
diff changeset
106 #ifdef ENABLE_T3_PROFILE_VIEW
280c11153080 Added compile switch for new T3 View Profile
Ideenmodellierer
parents: 542
diff changeset
107 CVIEW_T3_Profile,
280c11153080 Added compile switch for new T3 View Profile
Ideenmodellierer
parents: 542
diff changeset
108 #endif
820
7322adb00305 Split definition of custom views:
Ideenmodellierer
parents: 805
diff changeset
109 CVIEW_T3_END /* The ID is used in shift operation => 31 is the max number of supported views */
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112 // for custom view switch on/off 161122 hw
379
0dbf550dc743 Added missing customerview selection
ideenmodellierer
parents: 361
diff changeset
113 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
114 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
115
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 #define CHECK_BIT_THOME(var,pos) (((var)>>(pos)) & 1)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 uint16_t Hours;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121 uint16_t Minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 uint16_t Seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123 uint32_t Total;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 } SDivetime;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 uint8_t Days;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131 uint8_t Hours;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 uint8_t Minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 uint8_t Seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134 uint32_t Total;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135 } SSurfacetime;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
137
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
138 extern _Bool warning_count_high_time;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
139 extern _Bool display_count_high_time;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140 extern uint8_t errorsInSettings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143 void tHome_init(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
144 void tHome_refresh(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
145 void tHome_sleepmode_fun(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
146 void set_globalState_tHome(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
147 void tHome_change_field_button_pressed(void);
361
b111fc4250e9 Pass action to customer vie update function.
Ideenmodellierer
parents: 289
diff changeset
148 void tHome_change_customview_button_pressed(uint8_t action);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
149
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
150 void tHome_findNextStop(const uint16_t *list, uint8_t *depthOut, uint16_t *lengthOut);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
151 void tHomeDiveMenuControl(uint8_t sendAction);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152 void tHome_tick(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 uint8_t tHome_gas_writer(uint8_t oxygen_percentage, uint8_t helium_percentage, char *text);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 uint32_t tHome_DateCode(RTC_DateTypeDef *dateInput);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
156
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
157 void tHome_init_compass(void);
505
06b21f1e47a5 Removed second big font profile
Ideenmodellierer
parents: 493
diff changeset
158 uint8_t tHome_getNumberOfAvailableCVs(const uint8_t* pcv_list);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
159
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
160 float t3_basics_lines_depth_and_divetime(GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXl1, GFX_DrawCfgWindow* tXr1, uint8_t mode);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
161 void t3_basics_battery_low_customview_extra(GFX_DrawCfgWindow* tXc1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
162 void t3_basics_show_customview_warnings(GFX_DrawCfgWindow* tXc1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
163 void t3_basics_refresh_customview(float depth, uint8_t tX_selection_customview, GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXc1, GFX_DrawCfgWindow* tXc2, uint8_t mode);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
164 void t3_basics_refresh_apnoeRight(float depth, uint8_t tX_selection_customview, GFX_DrawCfgScreen *tXscreen, GFX_DrawCfgWindow* tXc1, GFX_DrawCfgWindow* tXc2, uint8_t mode);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165 //void _findNextStop(const uint16_t *list, uint8_t *depthOut, uint16_t *lengthOut);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166 void t3_basics_colorscheme_mod(char *text);
505
06b21f1e47a5 Removed second big font profile
Ideenmodellierer
parents: 493
diff changeset
167 void t3_basics_change_customview(uint8_t *tX_selection_customview, const uint8_t *tX_customviews, uint8_t action);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
169 uint8_t tHome_show_lost_connection_count(GFX_DrawCfgScreen *ScreenToWriteOn);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
170
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
171 #endif /* THOME_H */