annotate Discovery/Inc/simulation.h @ 1007:65d35e66efb9 GasConsumption

Improve compass calibration dialog: The previous calibration dialog showed some "magic" numbers and a 60 second count down. The new version is trying to guide the user through the calibration process: first rotate pitch, then roll and at last yaw angle. A step to the next angle is taken when enough data per angle is collected (change from red to green). To enable the yaw visualization a simple calibration is done while rotating the axis. The function behind the calibration was not modified => the suggested process can be ignored and the same handling as the with old dialog may be applied. With the new process the dialog may be left early. Anyhow it will still be left after 60 seconds and the fine calibration is performed in the same way as before.
author Ideenmodellierer
date Mon, 05 May 2025 21:02:34 +0200
parents c317130aaafc
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/simulation.h
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 /// \brief
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 /// \author Heinrichs Weikamp
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 /// \date 2018
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 #ifndef SIMULATION_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 #define SIMULATION_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 #include "stm32f4xx_hal.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 #include "data_central.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32
983
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
33 #define GAS_CHANGE_LIST_ITEMS (10)
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
34 typedef struct
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
35 {
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
36 uint8_t depth;
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
37 uint8_t gasId;
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
38 } SgasChangeList;
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
39
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 uint8_t depthMeterFirstStop;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 uint8_t descentRateMeterPerMinute;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 uint8_t ascentRateMeterPerMinute;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 uint16_t timeToBottom;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 uint16_t timeAtBottom;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 uint16_t timeToFirstStop;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 uint16_t timeToSurface;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 float ppO2AtBottom;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 } SSimDataSummary;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51
760
21949c88da90 Quit simualted dives after the dive time set in the SIM tab.
heinrichsweikamp
parents: 629
diff changeset
52 void simulation_start(int aim_depth, uint16_t aim_time_minutes);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 void simulation_exit(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 void simulation_set_heed_decostops(_Bool heed_decostops_while_ascending);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 void simulation_UpdateLifeData( _Bool checkOncePerSecond);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 void simulation_set_zero_time_descent(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 uint16_t simulation_get_aim_depth(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 _Bool simulation_get_heed_decostops(void);
983
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
62 SDecoinfo* simulation_decoplaner(uint16_t depth_meter, uint16_t intervall_time_minutes, uint16_t dive_time_minutes, SgasChangeList *pGasChangeList);
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
63 SDecoinfo* simulation_decoplaner_Bachelorarbeit_VPM(uint16_t depth_meter, uint16_t intervall_time_minutes, uint16_t dive_time_minutes, SgasChangeList *pGasChangeList);
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
64 void simulation_gas_consumption(uint16_t *outputConsumptionList, uint16_t depth_meter, uint16_t dive_time_minutes, SDecoinfo *decoInfoInput, uint8_t gasConsumTravelInput, uint8_t gasConsumDecoInput, const SgasChangeList *pGasChangeList);
7891160acde3 Bugfix calculation of needed gas:
Ideenmodellierer
parents: 760
diff changeset
65 void simulation_helper_change_points(SSimDataSummary *outputSummary, uint16_t depth_meter, uint16_t dive_time_minutes, SDecoinfo *decoInfoInput, const SgasChangeList *pGasChangeList);
989
c317130aaafc OSTC4/5 joined code:
ideenmodellierer
parents: 983
diff changeset
66 void simulation_evaluate_profil(uint16_t *outputConsumptionList,
c317130aaafc OSTC4/5 joined code:
ideenmodellierer
parents: 983
diff changeset
67 SSimDataSummary *outputSummary,
c317130aaafc OSTC4/5 joined code:
ideenmodellierer
parents: 983
diff changeset
68 uint16_t depth_meter, uint16_t dive_time_minutes,uint8_t gasConsumTravelInput, uint8_t gasConsumDecoInput,
c317130aaafc OSTC4/5 joined code:
ideenmodellierer
parents: 983
diff changeset
69 SDecoinfo *decoInfoInput,
c317130aaafc OSTC4/5 joined code:
ideenmodellierer
parents: 983
diff changeset
70 const SgasChangeList *pGasChangeList);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 void Sim_Descend (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 void Sim_Ascend (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 void Sim_Divetime (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 void Sim_Quit (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76
629
55a9aa740f13 Added functionality to add ppo2 mV offset:
Ideenmodellierer
parents: 225
diff changeset
77 void Sim_IncreasePPO(uint8_t sensorIdx);
55a9aa740f13 Added functionality to add ppo2 mV offset:
Ideenmodellierer
parents: 225
diff changeset
78 void Sim_DecreasePPO(uint8_t sensorIdx);
55a9aa740f13 Added functionality to add ppo2 mV offset:
Ideenmodellierer
parents: 225
diff changeset
79
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81 #endif /* SIMULATION_H */