annotate Discovery/Src/tHome.c @ 306:2f43419102c8 cleanup-4

bugfix, cleanup: do not clip depth to 0 A real dive with the previous commits shows that testing from the simulator cannot be fully trusted in relation to logic that is close to the depth sensor (that is obviously bypassed using the simulator). So 1) there is 3 second interval between the stopwatch and the divetime, and 2) the depth flips from 1m depth to surface 0m depth, and that is visible in the profile data. Point 2) is definitely caused by the removed code in this commit. It likely is not right to clip the depth value at all. It is fine to base decisions like is done in is_ambient_pressure_close_to_surface on it, but clipping the depth value itself is seems wrong. This has become more prominent with commit eba8d1eb5bef where the clipping depth changed from 40cm of depth to 1m of depth. When comparing profiles from an OSTC Plus, it shows that no depth clipping is present there, so that is one more argument to remove it here. Point 1) The 3 sec interval is likely not a coincidence. It is the time to travel for 1m depth with a default descend speed of 20m/min. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
author Jan Mulder <jlmulder@xs4all.nl>
date Wed, 22 May 2019 14:39:04 +0200
parents 8466c994f3e6
children b111fc4250e9
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/Src/tHome.c
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 /// \details
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 /// $Id$
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 ///////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 /// \par Copyright (c) 2014-2018 Heinrichs Weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 /// This program is free software: you can redistribute it and/or modify
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16 /// it under the terms of the GNU General Public License as published by
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17 /// the Free Software Foundation, either version 3 of the License, or
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 /// (at your option) any later version.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20 /// This program is distributed in the hope that it will be useful,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 /// but WITHOUT ANY WARRANTY; without even the implied warranty of
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 /// GNU General Public License for more details.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24 ///
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25 /// You should have received a copy of the GNU General Public License
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26 /// along with this program. If not, see <http://www.gnu.org/licenses/>.
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 //////////////////////////////////////////////////////////////////////////////
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 #include "tHome.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 #include "data_exchange_main.h" // for dataOutGetPointer()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #include "gfx_fonts.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 #include "t3.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35 #include "t4_tetris.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 #include "t5_gauge.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 #include "t6_apnea.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 #include "t7.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 #include "tDebug.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 #include "timer.h" // for timer_Stopwatch_Restart
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 #include "tMenu.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 #include "tMenuEditGasOC.h" // for openEdit_DiveSelectBetterGas()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 #include "tMenuEditSetpoint.h" // for openEdit_DiveSelectBetterSetpoint()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 #include "simulation.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 /* Private types -------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 /* Exported variables --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 _Bool warning_count_high_time = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 _Bool display_count_high_time = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 uint8_t errorsInSettings = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 /* Private variables ---------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54 static uint8_t warning_toogle_count;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 static uint16_t display_toogle_count;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 static uint16_t tHome_tick_count_cview;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 static uint16_t tHome_tick_count_field;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 const uint8_t cv_changelist[6] = {CVIEW_Compass, CVIEW_SummaryOfLeftCorner, CVIEW_Tissues, CVIEW_Profile, CVIEW_EADTime, CVIEW_Gaslist};
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 /* Private function prototypes -----------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 /* Exported functions --------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 void set_globalState_tHome(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 if(stateUsed->mode == MODE_DIVE)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 set_globalState(StS);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 void tHome_init(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 t7_init(); // standard + surface
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 t3_init(); // big font
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 t4_init(); // game
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 t5_init(); // gauge
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80 t6_init(); // apnea
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
82
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
83
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 void tHome_init_compass(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 init_t7_compass();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
87 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
89
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90 void tHome_refresh(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92 SSettings* pSettings = settingsGetPointer();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
94 warning_toogle_count++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95 if(warning_toogle_count >= 2* pSettings->warning_blink_dsec)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 warning_toogle_count = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 if(warning_toogle_count >= pSettings->warning_blink_dsec)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 warning_count_high_time = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 warning_count_high_time = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
103
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104 display_toogle_count++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 if(display_toogle_count >= 2* pSettings->display_toogle_desc)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 display_toogle_count = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108 if(display_toogle_count >= pSettings->display_toogle_desc)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109 display_count_high_time = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 display_count_high_time = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 if(pSettings->design == 6)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 t6_refresh();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117 if(pSettings->design == 5)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 t5_refresh();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 if(pSettings->design == 4)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121 t4_refresh();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123 if(pSettings->design == 3)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 t3_refresh();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 if(pSettings->design == 7)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127 t7_refresh();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 pSettings->design = 7;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131 t7_refresh();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136 void tHome_sleepmode_fun(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
137 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
138 t7_refresh_sleepmode_fun();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
139 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142 void tHomeDiveMenuControl(uint8_t sendAction)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
144 if(sendAction == ACTION_BUTTON_NEXT)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
145 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
146 if(settingsGetPointer()->design == 4)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
147 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
148
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
149 if(settingsGetPointer()->design == 3)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
150 settingsGetPointer()->design = 7;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
151
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152 switch(get_globalState())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 case StD:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 if(settingsGetPointer()->design == 6)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
156 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
157 if(is_stateUsedSetToSim())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
158 set_globalState(StDSIM1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
159 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
160 set_globalState(StDQUIT);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
161 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
162 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
163
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
164 if(settingsGetPointer()->design == 5)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166 if(t5_getCustomView() == CVIEW_Compass)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
167 set_globalState(StDBEAR);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
169 set_globalState(StDRAVG);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
170 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
171 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
172
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
173 if(stateUsed->warnings.betterGas)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
174 set_globalState(StDMGAS);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
175 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
176 if(stateUsed->warnings.betterSetpoint)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
177 set_globalState(StDMSPT);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
178 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
179 set_globalState(StDMENU);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
180 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
181
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
182 case StDMGAS:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
183 if(stateUsed->warnings.betterSetpoint)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
184 set_globalState(StDMSPT);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
185 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
186 set_globalState(StDMENU);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
187 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
188
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
189 case StDMSPT:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
190 set_globalState(StDMENU);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
191 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
192
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
193 case StDMENU:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
194 if(is_stateUsedSetToSim())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
195 set_globalState(StDSIM1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
196 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
197 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
198 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
199
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
200 case StDSIM1:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
201 set_globalState(StDSIM2);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
202 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
203
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
204 case StDSIM2:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
205 set_globalState(StDSIM3);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
206 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
207
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
208 case StDSIM3:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
209 set_globalState(StDSIM4);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
210 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
211
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
212 case StDSIM4:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
213 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
214 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
215
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
216 case StDBEAR: // t5_gauge
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
217 set_globalState(StDRAVG);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
218 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
219
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
220 case StDRAVG: // t5_gauge
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
221 if(is_stateUsedSetToSim())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
222 set_globalState(StDSIM1);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
223 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
224 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
225 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
226
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
227 case StDQUIT: // t6_apnea
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
228 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
229 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
230
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
231 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
234 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
236 if(sendAction == ACTION_BUTTON_ENTER)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
237 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
238 if(settingsGetPointer()->design == 4)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
239 return;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
240
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
241 if(settingsGetPointer()->design == 3)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
242 settingsGetPointer()->design = 7;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
243
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
244 switch(get_globalState())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
245 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
246 case StDMGAS:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
247 openEdit_DiveSelectBetterGas();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
248 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
249 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
250 case StDMSPT:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
251 openEdit_DiveSelectBetterSetpoint();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
252 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
253 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
254
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
255 case StDMENU:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
256 openMenu_first_page_with_OC_gas_update();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
257 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
258
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
259 case StDSIM1:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
260 Sim_Quit();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
261 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
262
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
263 case StDSIM2:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
264 Sim_Ascend();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
265 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
266
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
267 case StDSIM3:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
268 Sim_Descend();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
269 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
270
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
271 case StDSIM4:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
272 Sim_Divetime();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
273 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
274
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
275 case StDBEAR: // t5_gauge
272
74a8296a2318 cleanup: simplify stateUsed usage
Jan Mulder <jlmulder@xs4all.nl>
parents: 210
diff changeset
276 stateUsedWrite->diveSettings.compassHeading = (uint16_t)stateUsed->lifeData.compass_heading;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
277 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
278 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
279
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
280 case StDRAVG: // t5_gauge
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
281 timer_Stopwatch_Restart();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
282 set_globalState(StD);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
283 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
284
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
285 case StDQUIT: // t6_apnea
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
286 set_globalState(StD); // used to end StDQUIT, is called before everything else because changes are made in the next lines
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
287 if(is_stateUsedSetToSim())
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
288 Sim_Quit();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
289 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
290 dataOutGetPointer()->setEndDive = 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
291 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
292
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
293 default:
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
294 break;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
295 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
296 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
297 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
298
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
299
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
300 void tHome_findNextStop(const uint16_t *list, uint8_t *depthOutMeter, uint16_t *lengthOutSeconds)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
301 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
302 uint8_t ptr = DECOINFO_STRUCT_MAX_STOPS - 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
303
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
304 while(ptr && !list[ptr])
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
305 ptr--;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
306
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
307 *lengthOutSeconds = list[ptr];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
308 if(!(*lengthOutSeconds))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
309 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
310 *depthOutMeter = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
311 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
312 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
313 if(ptr == 0)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
314 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
315 *depthOutMeter = (uint8_t)((stateUsed->diveSettings.last_stop_depth_bar*10.0f) + 0.1f);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
316 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
317 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
318 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
319 ptr -= 1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
320 *depthOutMeter = (uint8_t)(((stateUsed->diveSettings.input_second_to_last_stop_depth_bar + (stateUsed->diveSettings.input_next_stop_increment_depth_bar * ptr))*10.0f) + 0.1f);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
321 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
322 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
323
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
324
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
325 void tHome_change_field_button_pressed(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
326 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
327 tHome_tick_count_field = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
328 if(settingsGetPointer()->design == 7)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
329 t7_change_field();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
330 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
331
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
332
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
333 void tHome_change_customview_button_pressed(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
334 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
335 tHome_tick_count_cview = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
336 if(settingsGetPointer()->design == 7)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
337 t7_change_customview();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
338 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
339 if(settingsGetPointer()->design == 3)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
340 t3_change_customview();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
341 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
342 if(settingsGetPointer()->design == 5)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
343 t5_change_customview();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
344 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
345 if(settingsGetPointer()->design == 6)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
346 t6_change_customview();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
347 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
348
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
349
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
350 void tHome_tick(void)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
351 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
352 uint16_t field = settingsGetPointer()->tX_userselectedLeftLowerCornerTimeout;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
353 uint16_t cview = settingsGetPointer()->tX_customViewTimeout;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
354
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
355 if(field)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
356 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
357 tHome_tick_count_field++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
358 if(tHome_tick_count_field > (field * 10))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
359 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
360 tHome_tick_count_field = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
361 if(settingsGetPointer()->design == 7)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
362 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
363 t7_set_field_to_primary();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
364 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
365 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
366 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
367
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
368 if(cview)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
369 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
370 tHome_tick_count_cview++;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
371 if(tHome_tick_count_cview > (cview *10))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
372 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
373 tHome_tick_count_cview = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
374 if(settingsGetPointer()->design == 7)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
375 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
376 t7_set_customview_to_primary();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
377 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
378 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
379 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
380 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
381
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
382
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
383 uint32_t tHome_DateCode(RTC_DateTypeDef *dateInput)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
384 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
385 uint32_t answer = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
386
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
387 answer = 0;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
388 answer += (dateInput->Year & 0x7F)<< 9;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
389 answer += (dateInput->Month & 0x0F)<< 5;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
390 answer += (dateInput->Date & 0x1F);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
391
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
392 return answer;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
393 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
394
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
395
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
396 uint8_t tHome_gas_writer(uint8_t oxygen_percentage, uint8_t helium_percentage, char *text)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
397 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
398 if(oxygen_percentage == 100)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
399 return (uint8_t) snprintf(text,10,"Oxy");
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
400 else if((oxygen_percentage == 21) && (!helium_percentage))
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
401 return (uint8_t) snprintf(text,10,"Air");
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
402 else if(!helium_percentage)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
403 return (uint8_t) snprintf(text,10,"NX%02i",oxygen_percentage);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
404 else if((oxygen_percentage + helium_percentage) == 100)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
405 return (uint8_t) snprintf(text,10,"HX%02i",oxygen_percentage);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
406 else
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
407 return (uint8_t) snprintf(text,10,"%02i/%02i",oxygen_percentage,helium_percentage);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
408 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
409
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
410 uint8_t tHome_show_lost_connection_count(GFX_DrawCfgScreen *ScreenToWriteOn)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
411 {
208
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
412 static uint8_t LastKnowRTEState = SPI_RX_STATE_INVALID;
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
413
99
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
414 if(!SPI_MIN_ERROR_SHOW) return 0;
172
c659fda83e44 Minor: Button defaults, release date adjusted, use SPI_SHOW_SYNC_STATS
heinrichsweikamp
parents: 138
diff changeset
415 if(DataEX_lost_connection_count()>=SPI_MIN_ERROR_SHOW && SPI_SHOW_SYNC_STATS){
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
416
99
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
417 char text[64];
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
418
82
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
419 SDataExchangeSlaveToMaster* dataIn=get_dataInPointer();
208
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
420 SDataReceiveFromMaster* pDataOut = dataOutGetPointer();
82
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
421
99
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
422 snprintf(text,32,"spi err:\002 %i/%i",DataEX_lost_connection_count(),get_num_SPI_CALLBACKS());
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
423 Gfx_write_label_var(ScreenToWriteOn, 100,300, 0,&FontT24,CLUT_ButtonSymbols,text);
82
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
424
104
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 99
diff changeset
425 // snprintf(text,32,"header:\002%X%X%X%X",dataIn->header.checkCode[0],dataIn->header.checkCode[1],dataIn->header.checkCode[2],dataIn->header.checkCode[3]);
22a1094545f3 Tested and alive.
Dmitry Romanov <kitt@bk.ru>
parents: 99
diff changeset
426 // Gfx_write_label_var(ScreenToWriteOn, 350,550, 0,&FontT24,CLUT_ButtonSymbols,text);
82
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
427
208
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
428 //snprintf(text,32,"footer:\002%X%X%X%X",dataIn->footer.checkCode[0],dataIn->footer.checkCode[1],dataIn->footer.checkCode[2],dataIn->footer.checkCode[3]);
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
429
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
430 /* data shifted => ignore received data */
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
431 if((pDataOut->header.checkCode[SPI_HEADER_INDEX_RX_STATE] == SPI_RX_STATE_SHIFTED) || (pDataOut->header.checkCode[SPI_HEADER_INDEX_RX_STATE] == SPI_RX_STATE_OFFLINE))
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
432 {
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
433 dataIn->header.checkCode[SPI_HEADER_INDEX_RX_STATE] = LastKnowRTEState;
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
434 }
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
435 else
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
436 {
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
437 LastKnowRTEState =dataIn->header.checkCode[SPI_HEADER_INDEX_RX_STATE];
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
438 }
9fc06e1e0f66 Update SPI error display and handling
ideenmodellierer
parents: 191
diff changeset
439 snprintf(text,32,"RX State M|R:\002%X|%X",pDataOut->header.checkCode[SPI_HEADER_INDEX_RX_STATE], dataIn->header.checkCode[SPI_HEADER_INDEX_RX_STATE] );
99
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
440 Gfx_write_label_var(ScreenToWriteOn, 600,800, 0,&FontT24,CLUT_ButtonSymbols,text);
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
441 }
82
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
442
99
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
443
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
444
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
445 // snprintf(text,32,"cpt:\002%i",get_num_SPI_CALLBACKS());
6a2308b9a3d4 Config for debug data
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
446 // Gfx_write_label_var(ScreenToWriteOn, 600,800, 90,&FontT24,CLUT_ButtonSymbols,text);
82
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
447
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
448 // snprintf(text,10,"i2c:\002%i",get_DataEX_Error_place());
a6f0881074a4 +i2c analog noise filtering
Dmitry Romanov <kitt@bk.ru>
parents: 38
diff changeset
449 // Gfx_write_label_var(ScreenToWriteOn, 600,800, 90,&FontT24,CLUT_ButtonSymbols,text);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
450
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
451 return DataEX_lost_connection_count();
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
452 }