annotate Discovery/Inc/simulation.h @ 983:7891160acde3 GasConsumption

Bugfix calculation of needed gas: Sometimes a gas was not calculated because of it's change depth calculation. Rootcause was a problem in the setup of the gas change list. The old function collecting milestones like time to first stop etc. has been removed because after the deco compression the complete profile is available. Instead of doing another way of profile calculation the existing profil is now evaluated and the time stamps / gas consumption derived from there.
author Ideenmodellierer
date Sun, 02 Mar 2025 21:43:08 +0100
parents 21949c88da90
children c317130aaafc
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);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 void Sim_Descend (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 void Sim_Ascend (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 void Sim_Divetime (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 void Sim_Quit (void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72
629
55a9aa740f13 Added functionality to add ppo2 mV offset:
Ideenmodellierer
parents: 225
diff changeset
73 void Sim_IncreasePPO(uint8_t sensorIdx);
55a9aa740f13 Added functionality to add ppo2 mV offset:
Ideenmodellierer
parents: 225
diff changeset
74 void Sim_DecreasePPO(uint8_t sensorIdx);
55a9aa740f13 Added functionality to add ppo2 mV offset:
Ideenmodellierer
parents: 225
diff changeset
75
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 #endif /* SIMULATION_H */