annotate Discovery/Inc/simulation.h @ 1018:808153ba3fec GasConsumption

Disable the menu items for editing scrubber timer parameters if an inactive scrubber timer is selected. This removes the confusion when users edit a scrubber that is not active, and are then surprised when the scrubber timer does not work during the dive. (mikeller)
author heinrichsweikamp
date Mon, 09 Jun 2025 09:42:16 +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 */