annotate Common/Inc/data_central.h @ 765:da8126d5ea9f

After a firmware update, use the factory settings for button sensitivity if these exist, the default settings otherwise. The factory settings for the buttons can be updated in the System menu / Reset menu / Maintenance / 'Store button factory defaults'.
author heinrichsweikamp
date Wed, 12 Apr 2023 09:24:44 +0200
parents 4f19336a3f21
children 29d9b5bc7946
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 Common/Inc/data_central.h
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 /// \brief Common Dadatypes Declarations
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 DATA_CENTRAL_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 #define DATA_CENTRAL_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30 #include <stdint.h>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 #include "settings.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #include "stm32f4xx_hal.h"
672
c00a80f26641 Added Charging view:
Ideenmodellierer
parents: 662
diff changeset
34 #include "configuration.h"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 #define BUEHLMANN_STRUCT_MAX_GASES 11
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 #define BUEHLMANN_STRUCT_MAX_ASCENDRATES 3
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 #define DECOINFO_STRUCT_MAX_STOPS 50
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 #define false 0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 #define true 1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
43 #define EXT_INTERFACE_SENSOR_CNT (5u) /* 5 sensors may be connected to the external interface */
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
44
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
45
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 /* Helper structs ------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 //struct SGas
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 //contains gasinfos of single gas for deco calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 uint8_t nitrogen_percentage;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 uint8_t helium_percentage;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54 uint8_t setPoint_cbar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 uint8_t change_during_ascent_depth_meter_otherwise_zero;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 uint8_t GasIdInSettings;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
57 uint8_t AppliedDiveMode;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
58 float pscr_factor;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 } SGas;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 float use_from_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 float rate_bar_per_minute;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 } SAscentrate;
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 typedef struct{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 uint32_t date_rtc_dr;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 uint32_t time_rtc_tr;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 int32_t value_int32;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 } SDeviceLine;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 uint16_t ageInMilliSeconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 uint8_t numberOfBytes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 uint8_t status;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80 uint8_t data[12];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
81 } SDataWireless;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
82
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
83
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
84 typedef struct
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
85 {
748
be25ab2d902c Added display of co2 ppm values:
Ideenmodellierer
parents: 745
diff changeset
86 uint32_t CO2_ppm;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
87 uint16_t signalStrength;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
88 } SCO2Sensor;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
89
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90 /* Main structs -------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
91
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93 //struct SDecoinfo
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
94 //contains result of deco calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97 unsigned short output_stop_length_seconds[DECOINFO_STRUCT_MAX_STOPS];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 int output_time_to_surface_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 int output_ndl_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100 float output_ceiling_meter;
247
3949781096d4 feature: Relative GF to Saturation renames
Jan Mulder <jlmulder@xs4all.nl>
parents: 225
diff changeset
101 float super_saturation;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102 uint32_t tickstamp;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
103 } SDecoinfo;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108 //crushing pressure
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109 //in/out
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110 float max_crushing_pressure_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 float max_crushing_pressure_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112 //
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113 float run_time_start_of_deco_zone_save;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 float depth_start_of_deco_zone_save;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 float max_first_stop_depth_save;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 short decomode_vpm_plus_conservatism_last_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117 _Bool deco_zone_reached;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 //State variables for repetetive dives
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 _Bool repetitive_variables_not_valid;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 float adjusted_crushing_pressure_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121 float adjusted_crushing_pressure_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 float adjusted_critical_radius_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123 float adjusted_critical_radius_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 float initial_allowable_gradient_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 float initial_allowable_gradient_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 float max_actual_gradient[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127 } SVpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131 _Bool repetitive_variables_not_valid;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 _Bool is_data_from_RTE_CPU;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 _Bool spare2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134 _Bool spare3;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135 float adjusted_crushing_pressure_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136 float adjusted_crushing_pressure_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
137 float adjusted_critical_radius_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
138 float adjusted_critical_radius_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
139 float initial_allowable_gradient_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140 float initial_allowable_gradient_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141 float max_actual_gradient[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142 } SVpmRepetitiveData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
144 //struct SDevice
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
145 //contains information about usage
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
146 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
147 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
148 SDeviceLine batteryChargeCycles;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
149 SDeviceLine batteryChargeCompleteCycles;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
150 SDeviceLine temperatureMinimum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
151 SDeviceLine temperatureMaximum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152 SDeviceLine depthMaximum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153 SDeviceLine diveCycles;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 SDeviceLine voltageMinimum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 SDeviceLine hoursOfOperation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
156 SDeviceLine diveAccident;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
157 } SDevice;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
158
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
159 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
160 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
161 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
162 SDevice device;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
163 SVpmRepetitiveData vpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
164 } SDeviceState;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
167 /* struct SLifeData
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168 * contains data all actual data (pressure, stuturation, etc. as received from second ship
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
169 * and has actualGas to be send to Small CPU (second chip)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
170 * contains data calculated from actual data after receiption from Small CPU
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
171 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
172 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
173 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
174 /* from Small CPU */
752
4f19336a3f21 Dev Bugfix: Alignment problem in lifedata structure:
Ideenmodellierer
parents: 748
diff changeset
175 uint8_t extIf_sensor_data[32]; /* The external sensor may contain a 64 bit ID. It has been placed at the beginning of the structure to avoid problems in alignment */
4f19336a3f21 Dev Bugfix: Alignment problem in lifedata structure:
Ideenmodellierer
parents: 748
diff changeset
176 uint8_t extIf_sensor_map[EXT_INTERFACE_SENSOR_CNT];
4f19336a3f21 Dev Bugfix: Alignment problem in lifedata structure:
Ideenmodellierer
parents: 748
diff changeset
177
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
178 int32_t dive_time_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
179 int32_t dive_time_seconds_without_surface_time;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
180 uint32_t surface_time_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
181 float pressure_ambient_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
182 float pressure_surface_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
183 float tissue_nitrogen_bar[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
184 float tissue_helium_bar[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
185 float cns;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
186 float otu;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
187 uint16_t desaturation_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
188 uint16_t no_fly_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
189 float temperature_celsius;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
190 float compass_heading;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
191 float compass_roll;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
192 float compass_pitch;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
193 int16_t compass_DX_f;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
194 int16_t compass_DY_f;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
195 int16_t compass_DZ_f;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
196 uint16_t counterSecondsShallowDepth;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
197 float ascent_rate_meter_per_min;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
198 uint32_t timeBinaryFormat;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
199 uint32_t dateBinaryFormat;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
200 float battery_voltage;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
201 float battery_charge;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
202 uint16_t ambient_light_level;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
203 SDataWireless wireless_data[4];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
204 uint8_t buttonPICdata[4];
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
205 SCO2Sensor CO2_data;
714
045ff7800501 Added customizable data area for specific sensor data:
Ideenmodellierer
parents: 672
diff changeset
206 uint8_t extIf_sensor_Id;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
207
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
208 /* by create DiveSettings() and by setActualGas()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
209 * is send to Small CPU2 for nitrogen calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
210 * includes setpoint information
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
211 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
212 SGas actualGas;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
213 uint8_t lastDiluent_GasIdInSettings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
214 uint8_t gas_temp2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
215
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
216 /* calculated by DataEX_copy_to_LifeData()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
217 bottle_bar array size is made like this to have multiples of 32bit
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
218 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
219 float ppO2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
220 float depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
221 float max_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
222 float average_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
223 float apnea_total_max_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
224 float apnea_last_max_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
225 int32_t apnea_last_dive_time_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
226 uint16_t bottle_bar[2 * NUM_GASES +1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
227 uint16_t bottle_bar_age_MilliSeconds[2 * NUM_GASES + 1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
228 uint16_t apnea_total_counter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
229
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
230 /* control of DataEX_copy_to_LifeData()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
231 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 uint8_t boolResetAverageDepth;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233 uint8_t bool_temp1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
234 uint8_t bool_temp2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
236 /* from local sensor or direct HUD communication */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
237 //pp O2 Sensor
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
238 float ppO2Sensor_bar[3];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
239 float sensorVoltage_mV[3];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
240 float HUD_battery_voltage_V;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
241
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
242 /* for PSCR Mode */
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
243 float ppo2Simulated_bar;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
244 } SLifeData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
245
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
246
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
247 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
248 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
249 uint16_t tissue_nitrogen_desaturation_time_minutes[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
250 uint16_t tissue_helium_desaturation_time_minutes[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
251 } SLifeData2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
252
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
253
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
254 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
255 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
256 //warnings
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
257 int8_t decoMissed;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
258 int8_t aGf;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
259 int8_t ascentRateHigh;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
260 int8_t ppO2Low;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
261 int8_t ppO2High;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
262 int8_t cnsHigh;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
263 int8_t slowWarning;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
264 int8_t lowBattery;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
265 int8_t numWarnings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
266 int8_t sensorLinkLost;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
267 int8_t sensorOutOfBounds[3];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
268 int8_t betterGas;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
269 int8_t fallback;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
270 int8_t betterSetpoint;
752
4f19336a3f21 Dev Bugfix: Alignment problem in lifedata structure:
Ideenmodellierer
parents: 748
diff changeset
271 int8_t co2High;
478
58200d756365 Development option only: Show Pressure update for a short time in the custom field (as warning)
ideenmodellierer
parents: 309
diff changeset
272 #ifdef ENABLE_BOTTLE_SENSOR
58200d756365 Development option only: Show Pressure update for a short time in the custom field (as warning)
ideenmodellierer
parents: 309
diff changeset
273 int8_t newPressure;
58200d756365 Development option only: Show Pressure update for a short time in the custom field (as warning)
ideenmodellierer
parents: 309
diff changeset
274 #endif
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
275 } SWarnings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
276
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
277
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
278 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
279 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
280 //Events logbook only
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
281 int16_t manualMarker;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
282 int16_t gasChange;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
283 int16_t info_GasChange;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
284 int16_t setpointChange;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
285 int16_t info_SetpointChange;
281
54d14bc2083c Fix typos (There are still many...)
heinrichsweikamp
parents: 271
diff changeset
286 int16_t manualGasSet;
54d14bc2083c Fix typos (There are still many...)
heinrichsweikamp
parents: 271
diff changeset
287 int16_t info_manualGasSetHe;
54d14bc2083c Fix typos (There are still many...)
heinrichsweikamp
parents: 271
diff changeset
288 int16_t info_manualGasSetO2;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
289 int16_t bailout;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
290 int16_t info_bailoutHe;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
291 int16_t info_bailoutO2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
292 } SEvents;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
293
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
294
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
295
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
296 //struct SDiveSettings
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
297 //contains settings necessary for deco calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
298 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
299 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
300 float last_stop_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
301 float input_next_stop_increment_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
302 float input_second_to_last_stop_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
303 float ascentRate_meterperminute;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
304 uint8_t diveMode; /* OC, CC, .. */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
305 uint8_t CCR_Mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
306 uint8_t future_TTS_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
307
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
308 /* If beginning of dive is CCR than ccrOption is set true
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
309 * true allows returning from bailout (OC) back to CCR
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
310 * true activates CC gas and setpoint pages in dive menu
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
311 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
312 uint8_t ccrOption;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
313 uint8_t fallbackOption;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
314 uint8_t ppo2sensors_deactivated;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
315
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
316 split2x4_Type deco_type; /* GF or VPM for standard and alternative seperate */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
317
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
318 /* VPM conservatism, do not change during dive!!!
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
319 * do not change in between dives otherwise repetitve dive is not possible
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
320 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
321 uint8_t vpm_conservatism;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
322
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
323 /* B�hlmann GF
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
324 * and a variable that is used by Buehlmann during the dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
325 * to remember the position of GF low during ascend
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
326 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
327 uint8_t gf_high;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
328 uint8_t gf_low;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
329
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
330 /* copy of the Settings GasList and SetpintList
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
331 * that can be modified during the dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
332 * especially gases can be actived and deactivated
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
333 * gas[0] and setpoint[0] are the special ones configurable during the dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
334 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
335 SGasLine gas[1 + (2*NUM_GASES)];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
336 SSetpointLine setpoint[1 + NUM_GASES];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
337
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
338 /* List of GasChanges in the actual order
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
339 * this is necessary for VPM and Buehlmann and will be created on start of each calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
340 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
341 SGas decogaslist[BUEHLMANN_STRUCT_MAX_GASES]; // unused filled with 0xFF
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
342
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
343 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
344 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
345 float internal__pressure_first_stop_ambient_bar_as_upper_limit_for_gf_low_otherwise_zero;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
346 uint16_t compassHeading;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
347
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
348 uint8_t pscr_o2_drop;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
349 uint8_t pscr_lung_ratio;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
350 } SDiveSettings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
351
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
352 enum CHARGE_STATUS{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
353 CHARGER_off = 0,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
354 CHARGER_running,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
355 CHARGER_complete,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
356 CHARGER_lostConnection
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
357 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
358
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
359 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
360 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
361 SDiveSettings diveSettings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
362 SLifeData lifeData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
363 SVpm vpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
364 SEvents events;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
365 SWarnings warnings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
366 SDecoinfo decolistVPM;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
367 SDecoinfo decolistFutureVPM;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
368 SDecoinfo decolistBuehlmann; //
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
369 SDecoinfo decolistFutureBuehlmann;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
370 uint8_t mode; /* hw for sleep, surface, dive, .. */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
371 uint8_t chargeStatus;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
372 uint8_t data_old__lost_connection_to_slave;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
373
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
374 uint32_t pressure_uTick_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
375 uint32_t compass_uTick_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
376
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
377 uint32_t pressure_uTick_old;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
378 uint32_t compass_uTick_old;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
379
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
380 uint32_t pressure_uTick_local_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
381 uint32_t compass_uTick_local_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
382
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
383 uint8_t cnsHigh_at_the_end_of_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
384 uint8_t decoMissed_at_the_end_of_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
385
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
386 uint8_t sensorErrorsRTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
387
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
388 uint8_t lastKnownBatteryPercentage;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
389 } SDiveState;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
390
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
391
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
392 typedef struct{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
393 uint8_t bit0:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
394 uint8_t bit1:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
395 uint8_t bit2:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
396 uint8_t bit3:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
397 uint8_t bit4:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
398 uint8_t bit5:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
399 uint8_t bit6:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
400 uint8_t bit7:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
401 } ubit8_t;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
402
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
403 typedef union{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
404 ubit8_t ub;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
405 uint8_t uw;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
406 } bit8_Type;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
407
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
408 extern SDiveState stateSim;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
409 extern SDiveState stateDeco;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
410 extern uint8_t decoLock;
271
1303747b5ba2 cleanup: also write gas and setpoint changes in simulator mode
Jan Mulder <jlmulder@xs4all.nl>
parents: 270
diff changeset
411 extern const SDiveState *stateUsed;
1303747b5ba2 cleanup: also write gas and setpoint changes in simulator mode
Jan Mulder <jlmulder@xs4all.nl>
parents: 270
diff changeset
412 extern SDiveState *stateUsedWrite;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
413
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
414 enum DECO_LOCK{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
415 DECO_CALC_running,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
416 DECO_CALC_ready,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
417 DECO_CALC_FINSHED_Buehlmann,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
418 DECO_CALC_FINSHED_vpm,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
419 DECO_CALC_FINSHED_FutureBuehlmann,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
420 DECO_CALC_FINSHED_Futurevpm,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
421 DECO_CALC_init_as_is_start_of_dive,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
422 DECO_CALC_undefined
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
423 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
424
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
425 typedef enum
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
426 {
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
427 SENSOR_NONE,
745
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
428 SENSOR_SEARCH,
733
7b0e020513e3 Optical sensor as default:
Ideenmodellierer
parents: 728
diff changeset
429 SENSOR_OPTIC,
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
430 SENSOR_ANALOG,
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
431 SENSOR_DIGO2,
745
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
432 SENSOR_SENTINEL,
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
433 SENSOR_TYPE_O2_END,
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
434 SENSOR_CO2,
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
435 SENSOR_END
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
436 } externalInterfaceSensorType;
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
437
745
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
438 #define DVO2_FATAL_INTENSITY_LOW (0x00000001)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
439 #define DVO2_FATAL_AMBIENT_HIGH (0x00000002)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
440 #define DVO2_FATAL_REFINT_LOW (0x00000004)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
441 #define DVO2_FATAL_REFAMB_HIGH (0x00000008)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
442 #define DVO2_FATAL_TEMPERATURE (0x00000010)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
443
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
444 #define DVO2_FATAL_ERROR (DVO2_FATAL_INTENSITY_LOW | DVO2_FATAL_AMBIENT_HIGH | DVO2_FATAL_REFINT_LOW | DVO2_FATAL_REFAMB_HIGH | DVO2_FATAL_TEMPERATURE)
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
445
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
446 uint32_t time_elapsed_ms(uint32_t ticksstart,uint32_t ticksnow);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
447
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
448 void set_stateUsedToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
449 void set_stateUsedToReal(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
450
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
451 _Bool is_stateUsedSetToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
452
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
453 const SDiveState * stateRealGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
454 const SDiveState * stateSimGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
455 SDiveState * stateRealGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
456 SDiveState * stateSimGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
457 const SDevice * stateDeviceGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
458 SDevice * stateDeviceGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
459 const SVpmRepetitiveData * stateVpmRepetitiveDataGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
460 SVpmRepetitiveData * stateVpmRepetitiveDataGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
461
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
462 void UpdateLifeDataTest(SDiveState * diveState);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
463
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
464 void setSimulationValues(int _ascent_rate_meter_per_min, int _descent_rate_meter_per_min, int _max_depth, int _bottom_time );
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
465
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
466 void createDiveSettings(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
467 void copyDiveSettingsToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
468 void copyVpmRepetetiveDataToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
469 //void fallbackToFixedSetpoints(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
470 void setActualGasFirst(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
471 void setActualGasAir(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
472 void setActualGas(SLifeData *lifeData, uint8_t gasId, uint8_t setpoint_cbar);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
473 void setActualGas_ExtraGas(SLifeData *lifeData, uint8_t oxygen, uint8_t helium, uint8_t setpoint_cbar);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
474 void setActualGas_DM(SLifeData *lifeData, uint8_t gasId, uint8_t setpoint_cbar);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
475 void setWeekday(RTC_DateTypeDef *sDate);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
476 void setDate(RTC_DateTypeDef Sdate);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
477 void setTime(RTC_TimeTypeDef Stime);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
478 void setBatteryPercentage(uint8_t newChargePercentage);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
479 void setButtonResponsiveness(uint8_t *ButtonSensitivyList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
480 void calibrateCompass(void);
539
d784f281833a Added inertia simulation for compass heading:
Ideenmodellierer
parents: 478
diff changeset
481 void compass_Inertia(float newHeading);
d784f281833a Added inertia simulation for compass heading:
Ideenmodellierer
parents: 478
diff changeset
482 float compass_getCompensated();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
483 void clearDeco(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
484 void translateDate(uint32_t datetmpreg, RTC_DateTypeDef *sDate);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
485 void translateTime(uint32_t tmpreg, RTC_TimeTypeDef *sTime);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
486 void updateSetpointStateUsed(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
487
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
488 uint8_t calc_MOD(uint8_t gasId);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
489 uint8_t calc_MinOD(uint8_t gasId);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
490 //float calc_ppO2(float input_ambient_pressure_bar, SGas* pGas);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
491 int current_second(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
492 _Bool vpm_crush(SDiveState* pDiveState);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
493 _Bool deco_zone_reached(void);
270
2e58a4094770 feature, debug: make simulator write a logbook entry
Jan Mulder <jlmulder@xs4all.nl>
parents: 247
diff changeset
494 void resetEvents(const SDiveState *pStateUsed);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
495
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
496 uint32_t crc32c_checksum(uint8_t* message, uint16_t length, uint8_t* message2, uint16_t length2);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
497 uint32_t CRC_CalcBlockCRC(uint32_t *buffer, uint32_t words);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
498 uint32_t CRC_CalcBlockCRC_moreThan768000(uint32_t *buffer1, uint32_t *buffer2, uint32_t words);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
499
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
500 _Bool is_ambient_pressure_close_to_surface(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
501
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
502 uint8_t isLoopMode(uint8_t Mode);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
503
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
504 #endif // DATA_CENTRAL_H