annotate Common/Inc/data_central.h @ 1078:082825daccb5 Icon_Integration tip

Added control views for HUD: The HUD implementation may now be activated by the compile switch ENABLE_HUD_SUPPORT. The HUD will become visible onces detected in the CvOpt overview menu. The first implementation is for testing only => The LEDs may be operated by a number field. Positiv values activate the red, negativ the green LEDs. Depending on the value blink sequences will be scheduled. At the moment no dive specific data is mapped to the LED operation (like e.g. warnings).
author Ideenmodellierer
date Mon, 02 Mar 2026 17:30:38 +0100
parents 3c73180fde1d
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 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>
776
45b8f3c2acce Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents: 774
diff changeset
31 #include <stdbool.h>
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #include "settings.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 #include "stm32f4xx_hal.h"
672
c00a80f26641 Added Charging view:
Ideenmodellierer
parents: 662
diff changeset
35 #include "configuration.h"
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 #define BUEHLMANN_STRUCT_MAX_GASES 11
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 #define BUEHLMANN_STRUCT_MAX_ASCENDRATES 3
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 #define DECOINFO_STRUCT_MAX_STOPS 50
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 #define false 0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 #define true 1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43
796
75ace7af8212 Expanded Sensor map structure:
Ideenmodellierer
parents: 788
diff changeset
44 #define EXT_INTERFACE_SENSOR_CNT (8u) /* 1 MUX + 7 sensors may be connected to the external interface (1 MUX + 3 ADC + 4 UART) */
75ace7af8212 Expanded Sensor map structure:
Ideenmodellierer
parents: 788
diff changeset
45 #define EXT_INTERFACE_MUX_OFFSET (3u) /* the sensor struct starts with 3 ADC sensors */
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
46
996
8507a87f6401 Improve buzzer opreation:
Ideenmodellierer
parents: 951
diff changeset
47 #define EXT_INTERFACE_BUZZER_ON_TIME_MS (2000u) /* max time the buzzer should be active without break (continuous Operation) */
8507a87f6401 Improve buzzer opreation:
Ideenmodellierer
parents: 951
diff changeset
48 #define EXT_INTERFACE_BUZZER_PING_TIME_MS (1000u) /* max time the buzzer should be active for single ping */
951
e9c37071933b Added vibration warning:
Ideenmodellierer
parents: 949
diff changeset
49 #define EXT_INTERFACE_BUZZER_STABLE_TIME_MS (500u) /* min time a state (ON / OFF) should be stable before it may be changed */
e9c37071933b Added vibration warning:
Ideenmodellierer
parents: 949
diff changeset
50
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1058
diff changeset
51 #define EXT_INTERFACE_HUD_LED_MAX (16u) /* max number of supported LED for HUD operation */
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1058
diff changeset
52
951
e9c37071933b Added vibration warning:
Ideenmodellierer
parents: 949
diff changeset
53
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54 /* Helper structs ------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
56 //struct SGas
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 //contains gasinfos of single gas for deco calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 uint8_t nitrogen_percentage;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 uint8_t helium_percentage;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62 uint8_t setPoint_cbar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 uint8_t change_during_ascent_depth_meter_otherwise_zero;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 uint8_t GasIdInSettings;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
65 uint8_t AppliedDiveMode;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
66 float pscr_factor;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 } SGas;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71 float use_from_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 float rate_bar_per_minute;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 } SAscentrate;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 typedef struct{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77 uint32_t date_rtc_dr;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
78 uint32_t time_rtc_tr;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
79 int32_t value_int32;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
80 } SDeviceLine;
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 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
84 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
85 uint16_t ageInMilliSeconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
86 uint8_t numberOfBytes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
87 uint8_t status;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
88 uint8_t data[12];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
89 } SDataWireless;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
91
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
92 typedef struct
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
93 {
748
be25ab2d902c Added display of co2 ppm values:
Ideenmodellierer
parents: 745
diff changeset
94 uint32_t CO2_ppm;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
95 uint16_t signalStrength;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
96 } SCO2Sensor;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
97
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 /* Main structs -------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 //struct SDecoinfo
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102 //contains result of deco calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
103 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 unsigned short output_stop_length_seconds[DECOINFO_STRUCT_MAX_STOPS];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 int output_time_to_surface_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107 int output_ndl_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108 float output_ceiling_meter;
247
3949781096d4 feature: Relative GF to Saturation renames
Jan Mulder <jlmulder@xs4all.nl>
parents: 225
diff changeset
109 float super_saturation;
1049
d91345e9c009 Added GF for surface:
Ideenmodellierer
parents: 1038
diff changeset
110 float gf_surf;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 uint32_t tickstamp;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112 } SDecoinfo;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117 //crushing pressure
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 //in/out
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119 float max_crushing_pressure_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 float max_crushing_pressure_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121 //
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 float run_time_start_of_deco_zone_save;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
123 float depth_start_of_deco_zone_save;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
124 float max_first_stop_depth_save;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
125 short decomode_vpm_plus_conservatism_last_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
126 _Bool deco_zone_reached;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
127 //State variables for repetetive dives
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
128 _Bool repetitive_variables_not_valid;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
129 float adjusted_crushing_pressure_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
130 float adjusted_crushing_pressure_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
131 float adjusted_critical_radius_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
132 float adjusted_critical_radius_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
133 float initial_allowable_gradient_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
134 float initial_allowable_gradient_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
135 float max_actual_gradient[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
136 } SVpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
137
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
138 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
139 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
140 _Bool repetitive_variables_not_valid;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
141 _Bool is_data_from_RTE_CPU;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
142 _Bool spare2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
143 _Bool spare3;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
144 float adjusted_crushing_pressure_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
145 float adjusted_crushing_pressure_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
146 float adjusted_critical_radius_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
147 float adjusted_critical_radius_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
148 float initial_allowable_gradient_he[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
149 float initial_allowable_gradient_n2[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
150 float max_actual_gradient[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
151 } SVpmRepetitiveData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
152
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
153 //struct SDevice
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
154 //contains information about usage
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
155 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
156 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
157 SDeviceLine batteryChargeCycles;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
158 SDeviceLine batteryChargeCompleteCycles;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
159 SDeviceLine temperatureMinimum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
160 SDeviceLine temperatureMaximum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
161 SDeviceLine depthMaximum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
162 SDeviceLine diveCycles;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
163 SDeviceLine voltageMinimum;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
164 SDeviceLine hoursOfOperation;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
165 SDeviceLine diveAccident;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
166 } SDevice;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
167
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
168 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
169 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
170 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
171 SDevice device;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
172 SVpmRepetitiveData vpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
173 } SDeviceState;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
174 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
175
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 868
diff changeset
176 typedef struct
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 868
diff changeset
177 {
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 929
diff changeset
178 float fLat;
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 929
diff changeset
179 float fLon;
941
6d8ae8fbccf5 Added gnss to logbook data:
Ideenmodellierer
parents: 940
diff changeset
180 }SGnssCoord;
6d8ae8fbccf5 Added gnss to logbook data:
Ideenmodellierer
parents: 940
diff changeset
181
949
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
182
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
183 typedef struct
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
184 {
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
185 uint8_t year;
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
186 uint8_t month;
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
187 uint8_t day;
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
188 uint8_t hour;
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
189 uint8_t min;
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
190 uint8_t sec;
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
191 }SDateTime;
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
192
941
6d8ae8fbccf5 Added gnss to logbook data:
Ideenmodellierer
parents: 940
diff changeset
193 typedef struct
6d8ae8fbccf5 Added gnss to logbook data:
Ideenmodellierer
parents: 940
diff changeset
194 {
6d8ae8fbccf5 Added gnss to logbook data:
Ideenmodellierer
parents: 940
diff changeset
195 SGnssCoord coord;
940
4a406e873a95 GNSS improvments:
Ideenmodellierer
parents: 931
diff changeset
196 uint8_t alive;
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 929
diff changeset
197 uint8_t fixType;
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 929
diff changeset
198 uint8_t numSat; /* number of available satellites */
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 929
diff changeset
199 uint8_t signalQual[4]; /* signal quality indicator for x sats */
949
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
200 SDateTime DateTime; /* UTC time information */
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 929
diff changeset
201 } SGnssInfo;
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 868
diff changeset
202
945
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
203 typedef enum
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
204 {
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
205 SE_INIT = 0,
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
206 SE_REINIT,
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
207 SE_ACTIVE,
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
208 SE_END
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
209 } SSlowExitState;
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
210
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 868
diff changeset
211
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
212 /* struct SLifeData
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
213 * contains data all actual data (pressure, stuturation, etc. as received from second ship
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
214 * and has actualGas to be send to Small CPU (second chip)
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
215 * contains data calculated from actual data after receiption from Small CPU
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
216 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
217 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
218 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
219 /* from Small CPU */
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1058
diff changeset
220 uint8_t extIf_sensor_data[EXT_INTERFACE_SENSOR_CNT][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 */
752
4f19336a3f21 Dev Bugfix: Alignment problem in lifedata structure:
Ideenmodellierer
parents: 748
diff changeset
221 uint8_t extIf_sensor_map[EXT_INTERFACE_SENSOR_CNT];
4f19336a3f21 Dev Bugfix: Alignment problem in lifedata structure:
Ideenmodellierer
parents: 748
diff changeset
222
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
223 int32_t dive_time_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
224 int32_t dive_time_seconds_without_surface_time;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
225 uint32_t surface_time_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
226 float pressure_ambient_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
227 float pressure_surface_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
228 float tissue_nitrogen_bar[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
229 float tissue_helium_bar[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
230 float cns;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
231 float otu;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
232 uint16_t desaturation_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
233 uint16_t no_fly_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
234 float temperature_celsius;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
235 float compass_heading;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
236 float compass_roll;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
237 float compass_pitch;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
238 int16_t compass_DX_f;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
239 int16_t compass_DY_f;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
240 int16_t compass_DZ_f;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
241 uint16_t counterSecondsShallowDepth;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
242 float ascent_rate_meter_per_min;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
243 uint32_t timeBinaryFormat;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
244 uint32_t dateBinaryFormat;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
245 float battery_voltage;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
246 float battery_charge;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
247 uint16_t ambient_light_level;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
248 SDataWireless wireless_data[4];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
249 uint8_t buttonPICdata[4];
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
250 SCO2Sensor CO2_data;
714
045ff7800501 Added customizable data area for specific sensor data:
Ideenmodellierer
parents: 672
diff changeset
251 uint8_t extIf_sensor_Id;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
252
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
253 /* by create DiveSettings() and by setActualGas()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
254 * is send to Small CPU2 for nitrogen calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
255 * includes setpoint information
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
256 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
257 SGas actualGas;
771
29d9b5bc7946 Revised automatic setpoint change. The proposed approach is essentially the approach used by most controllers of eCCR ('upshift' on descent, 'downshift' on ascent), so that the OSTC4 when used as a backup computer for eCCR will make the changes at the same time as the eCCR itself.
heinrichsweikamp
parents: 752
diff changeset
258
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
259 uint8_t lastDiluent_GasIdInSettings;
771
29d9b5bc7946 Revised automatic setpoint change. The proposed approach is essentially the approach used by most controllers of eCCR ('upshift' on descent, 'downshift' on ascent), so that the OSTC4 when used as a backup computer for eCCR will make the changes at the same time as the eCCR itself.
heinrichsweikamp
parents: 752
diff changeset
260 float lastSetpointChangeDepthM;
788
4abfb8a2a435 Define explicit setpoints for low / high / deco. Add an option to delay the switch to SPlow until all decompression has been cleared. (mikeller)
heinrichsweikamp
parents: 780
diff changeset
261 bool setpointDecoActivated;
4abfb8a2a435 Define explicit setpoints for low / high / deco. Add an option to delay the switch to SPlow until all decompression has been cleared. (mikeller)
heinrichsweikamp
parents: 780
diff changeset
262 bool setpointLowDelayed;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
263
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
264 /* calculated by DataEX_copy_to_LifeData()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
265 bottle_bar array size is made like this to have multiples of 32bit
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
266 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
267 float ppO2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
268 float depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
269 float max_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
270 float average_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
271 float apnea_total_max_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
272 float apnea_last_max_depth_meter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
273 int32_t apnea_last_dive_time_seconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
274 uint16_t bottle_bar[2 * NUM_GASES +1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
275 uint16_t bottle_bar_age_MilliSeconds[2 * NUM_GASES + 1];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
276 uint16_t apnea_total_counter;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
277
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
278 /* control of DataEX_copy_to_LifeData()
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
279 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
280 uint8_t boolResetAverageDepth;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
281 uint8_t bool_temp1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
282 uint8_t bool_temp2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
283
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
284 /* from local sensor or direct HUD communication */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
285 //pp O2 Sensor
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
286 float ppO2Sensor_bar[3];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
287 float sensorVoltage_mV[3];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
288 float HUD_battery_voltage_V;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
289
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
290 /* for PSCR Mode */
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
291 float ppo2Simulated_bar;
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 868
diff changeset
292 /* GNSS data */
931
5a9bc2e6112d Added Sat Status Overview:
Ideenmodellierer
parents: 929
diff changeset
293 SGnssInfo gnssData;
1058
3c73180fde1d Added log entry for surface GF:
Ideenmodellierer
parents: 1049
diff changeset
294 /* last GF_Surf when shallow area was entered */
3c73180fde1d Added log entry for surface GF:
Ideenmodellierer
parents: 1049
diff changeset
295 uint8_t gf_surf_log;
899
2225c467f1e9 Added data path and visualization for position data:
Ideenmodellierer
parents: 868
diff changeset
296
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1058
diff changeset
297 /* HUD control data */
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1058
diff changeset
298 uint8_t HUD_led_sequence[EXT_INTERFACE_HUD_LED_MAX];
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1058
diff changeset
299 uint8_t HUD_led_brightness;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
300 } SLifeData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
301
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
302
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
303 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
304 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
305 uint16_t tissue_nitrogen_desaturation_time_minutes[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
306 uint16_t tissue_helium_desaturation_time_minutes[16];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
307 } SLifeData2;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
308
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
309
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
310 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
311 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
312 //warnings
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
313 int8_t decoMissed;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
314 int8_t aGf;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
315 int8_t ascentRateHigh;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
316 int8_t ppO2Low;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
317 int8_t ppO2High;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
318 int8_t cnsHigh;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
319 int8_t slowWarning;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
320 int8_t lowBattery;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
321 int8_t numWarnings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
322 int8_t sensorLinkLost;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
323 int8_t sensorOutOfBounds[3];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
324 int8_t betterGas;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
325 int8_t fallback;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
326 int8_t betterSetpoint;
752
4f19336a3f21 Dev Bugfix: Alignment problem in lifedata structure:
Ideenmodellierer
parents: 748
diff changeset
327 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
328 #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
329 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
330 #endif
857
ba1aebc6d5af Developer feature debug warning:
Ideenmodellierer
parents: 842
diff changeset
331 #ifdef HAVE_DEBUG_WARNINGS
ba1aebc6d5af Developer feature debug warning:
Ideenmodellierer
parents: 842
diff changeset
332 int8_t debug;
ba1aebc6d5af Developer feature debug warning:
Ideenmodellierer
parents: 842
diff changeset
333 #endif
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
334 } SWarnings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
335
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
336
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
337 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
338 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
339 //Events logbook only
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
340 int16_t manualMarker;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
341 int16_t gasChange;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
342 int16_t info_GasChange;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
343 int16_t setpointChange;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
344 int16_t info_SetpointChange;
281
54d14bc2083c Fix typos (There are still many...)
heinrichsweikamp
parents: 271
diff changeset
345 int16_t manualGasSet;
54d14bc2083c Fix typos (There are still many...)
heinrichsweikamp
parents: 271
diff changeset
346 int16_t info_manualGasSetHe;
54d14bc2083c Fix typos (There are still many...)
heinrichsweikamp
parents: 271
diff changeset
347 int16_t info_manualGasSetO2;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
348 int16_t bailout;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
349 int16_t info_bailoutHe;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
350 int16_t info_bailoutO2;
929
63c340abd70e Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents: 925
diff changeset
351 int16_t compassHeadingUpdate;
63c340abd70e Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents: 925
diff changeset
352 uint16_t info_compassHeadingUpdate;
941
6d8ae8fbccf5 Added gnss to logbook data:
Ideenmodellierer
parents: 940
diff changeset
353 int16_t gnssPositionUpdate;
6d8ae8fbccf5 Added gnss to logbook data:
Ideenmodellierer
parents: 940
diff changeset
354 SGnssCoord info_gnssPosition;
1014
8c0134a287da Add a log data event to the scrubber timer at the start of the dive and every time the timer (in minutes)
heinrichsweikamp
parents: 996
diff changeset
355 int16_t scrubberState;
8c0134a287da Add a log data event to the scrubber timer at the start of the dive and every time the timer (in minutes)
heinrichsweikamp
parents: 996
diff changeset
356 uint16_t info_scrubberState;
929
63c340abd70e Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents: 925
diff changeset
357 } SEvents;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
358
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
359
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
360
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
361 //struct SDiveSettings
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
362 //contains settings necessary for deco calculation
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
363 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
364 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
365 float last_stop_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
366 float input_next_stop_increment_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
367 float input_second_to_last_stop_depth_bar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
368 float ascentRate_meterperminute;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
369 uint8_t diveMode; /* OC, CC, .. */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
370 uint8_t CCR_Mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
371 uint8_t future_TTS_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
372
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
373 /* If beginning of dive is CCR than ccrOption is set true
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
374 * true allows returning from bailout (OC) back to CCR
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
375 * true activates CC gas and setpoint pages in dive menu
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
376 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
377 uint8_t ccrOption;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
378 uint8_t fallbackOption;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
379 uint8_t ppo2sensors_deactivated;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
380
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
381 split2x4_Type deco_type; /* GF or VPM for standard and alternative seperate */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
382
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
383 /* VPM conservatism, do not change during dive!!!
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
384 * do not change in between dives otherwise repetitve dive is not possible
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
385 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
386 uint8_t vpm_conservatism;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
387
902
d4622533271d VPM table mode:
Ideenmodellierer
parents: 899
diff changeset
388 /* VPM table mode, do not change during dive!!!
d4622533271d VPM table mode:
Ideenmodellierer
parents: 899
diff changeset
389 */
d4622533271d VPM table mode:
Ideenmodellierer
parents: 899
diff changeset
390 uint8_t vpm_tableMode;
d4622533271d VPM table mode:
Ideenmodellierer
parents: 899
diff changeset
391
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
392 /* B�hlmann GF
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
393 * and a variable that is used by Buehlmann during the dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
394 * to remember the position of GF low during ascend
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
395 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
396 uint8_t gf_high;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
397 uint8_t gf_low;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
398
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
399 /* copy of the Settings GasList and SetpintList
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
400 * that can be modified during the dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
401 * especially gases can be actived and deactivated
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
402 * gas[0] and setpoint[0] are the special ones configurable during the dive
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
403 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
404 SGasLine gas[1 + (2*NUM_GASES)];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
405 SSetpointLine setpoint[1 + NUM_GASES];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
406
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
407 /* List of GasChanges in the actual order
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
408 * 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
409 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
410 SGas decogaslist[BUEHLMANN_STRUCT_MAX_GASES]; // unused filled with 0xFF
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
411
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
412 /*
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
413 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
414 float internal__pressure_first_stop_ambient_bar_as_upper_limit_for_gf_low_otherwise_zero;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
415 uint16_t compassHeading;
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
416
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
417 uint8_t pscr_o2_drop;
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
418 uint8_t pscr_lung_ratio;
834
2a8af51ab04d Added event based display changes for big font view:
Ideenmodellierer
parents: 805
diff changeset
419
2a8af51ab04d Added event based display changes for big font view:
Ideenmodellierer
parents: 805
diff changeset
420 uint32_t activeAFViews;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
421 } SDiveSettings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
422
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
423 enum CHARGE_STATUS{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
424 CHARGER_off = 0,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
425 CHARGER_running,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
426 CHARGER_complete,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
427 CHARGER_lostConnection
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
428 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
429
805
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
430 typedef enum {
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
431 TIMER_STATE_OFF = 0,
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
432 TIMER_STATE_PRESTART,
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
433 TIMER_STATE_RUNNING,
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
434 TIMER_STATE_WAIT_FINISHED,
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
435 TIMER_STATE_FINISHED,
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
436 } timerState_e;
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
437
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
438 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
439 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
440 SDiveSettings diveSettings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
441 SLifeData lifeData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
442 SVpm vpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
443 SEvents events;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
444 SWarnings warnings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
445 SDecoinfo decolistVPM;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
446 SDecoinfo decolistFutureVPM;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
447 SDecoinfo decolistBuehlmann; //
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
448 SDecoinfo decolistFutureBuehlmann;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
449 uint8_t mode; /* hw for sleep, surface, dive, .. */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
450 uint8_t chargeStatus;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
451 uint8_t data_old__lost_connection_to_slave;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
452
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
453 uint32_t pressure_uTick_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
454 uint32_t compass_uTick_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
455
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
456 uint32_t pressure_uTick_old;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
457 uint32_t compass_uTick_old;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
458
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
459 uint32_t pressure_uTick_local_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
460 uint32_t compass_uTick_local_new;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
461
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
462 uint8_t cnsHigh_at_the_end_of_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
463 uint8_t decoMissed_at_the_end_of_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
464
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
465 uint8_t sensorErrorsRTE;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
466
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
467 uint8_t lastKnownBatteryPercentage;
805
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
468
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
469 timerState_e timerState;
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
470 int timerStartedS;
925
79c888f5d8d2 Bugfix scrubber time:
Ideenmodellierer
parents: 920
diff changeset
471
79c888f5d8d2 Bugfix scrubber time:
Ideenmodellierer
parents: 920
diff changeset
472 SScrubberData scrubberDataDive[2];
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
473 } SDiveState;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
474
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
475
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
476 typedef struct{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
477 uint8_t bit0:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
478 uint8_t bit1:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
479 uint8_t bit2:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
480 uint8_t bit3:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
481 uint8_t bit4:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
482 uint8_t bit5:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
483 uint8_t bit6:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
484 uint8_t bit7:1;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
485 } ubit8_t;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
486
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
487 typedef union{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
488 ubit8_t ub;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
489 uint8_t uw;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
490 } bit8_Type;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
491
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
492 extern SDiveState stateSim;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
493 extern SDiveState stateDeco;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
494 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
495 extern const SDiveState *stateUsed;
1303747b5ba2 cleanup: also write gas and setpoint changes in simulator mode
Jan Mulder <jlmulder@xs4all.nl>
parents: 270
diff changeset
496 extern SDiveState *stateUsedWrite;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
497
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
498 enum DECO_LOCK{
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
499 DECO_CALC_running,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
500 DECO_CALC_ready,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
501 DECO_CALC_FINSHED_Buehlmann,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
502 DECO_CALC_FINSHED_vpm,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
503 DECO_CALC_FINSHED_FutureBuehlmann,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
504 DECO_CALC_FINSHED_Futurevpm,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
505 DECO_CALC_init_as_is_start_of_dive,
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
506 DECO_CALC_undefined
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
507 };
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
508
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
509 typedef enum
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
510 {
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
511 SENSOR_NONE,
745
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
512 SENSOR_SEARCH,
733
7b0e020513e3 Optical sensor as default:
Ideenmodellierer
parents: 728
diff changeset
513 SENSOR_OPTIC,
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
514 SENSOR_ANALOG,
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
515 SENSOR_DIGO2,
796
75ace7af8212 Expanded Sensor map structure:
Ideenmodellierer
parents: 788
diff changeset
516 SENSOR_DIGO2M,
745
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
517 SENSOR_SENTINEL,
842
c3dd461ca3f9 Migrated Sentinel protocol to new UART structure:
Ideenmodellierer
parents: 834
diff changeset
518 SENSOR_SENTINELM,
745
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
519 SENSOR_TYPE_O2_END,
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
520 SENSOR_CO2,
799
1e3c12d772eb Added CO2 mirrow instance:
Ideenmodellierer
parents: 796
diff changeset
521 SENSOR_CO2M,
920
c4c9850a2039 Added view for position data:
Ideenmodellierer
parents: 902
diff changeset
522 SENSOR_GNSS,
c4c9850a2039 Added view for position data:
Ideenmodellierer
parents: 902
diff changeset
523 SENSOR_GNSSM,
1078
082825daccb5 Added control views for HUD:
Ideenmodellierer
parents: 1058
diff changeset
524 SENSOR_HUD,
780
e40790a67165 Discovery<=>SmallCPU inferface update:
Ideenmodellierer
parents: 776
diff changeset
525 SENSOR_MUX,
728
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
526 SENSOR_END
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
527 } externalInterfaceSensorType;
5143e927219f Added sensor map to Firmware <=> RTE inferface:
Ideenmodellierer
parents: 714
diff changeset
528
745
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
529 #define DVO2_FATAL_INTENSITY_LOW (0x00000001)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
530 #define DVO2_FATAL_AMBIENT_HIGH (0x00000002)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
531 #define DVO2_FATAL_REFINT_LOW (0x00000004)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
532 #define DVO2_FATAL_REFAMB_HIGH (0x00000008)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
533 #define DVO2_FATAL_TEMPERATURE (0x00000010)
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
534
b392524753fb Update Sentinel protocol:
Ideenmodellierer
parents: 733
diff changeset
535 #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
536
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
537 uint32_t time_elapsed_ms(uint32_t ticksstart,uint32_t ticksnow);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
538
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
539 void set_stateUsedToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
540 void set_stateUsedToReal(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
541
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
542 _Bool is_stateUsedSetToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
543
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
544 const SDiveState * stateRealGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
545 const SDiveState * stateSimGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
546 SDiveState * stateRealGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
547 SDiveState * stateSimGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
548 const SDevice * stateDeviceGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
549 SDevice * stateDeviceGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
550 const SVpmRepetitiveData * stateVpmRepetitiveDataGetPointer(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
551 SVpmRepetitiveData * stateVpmRepetitiveDataGetPointerWrite(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
552
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
553 void UpdateLifeDataTest(SDiveState * diveState);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
554
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
555 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
556
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
557 void createDiveSettings(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
558 void copyDiveSettingsToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
559 void copyVpmRepetetiveDataToSim(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
560 //void fallbackToFixedSetpoints(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
561 void setActualGasFirst(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
562 void setActualGasAir(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
563 void setActualGas(SLifeData *lifeData, uint8_t gasId, uint8_t setpoint_cbar);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
564 void setActualGas_ExtraGas(SLifeData *lifeData, uint8_t oxygen, uint8_t helium, uint8_t setpoint_cbar);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
565 void setActualGas_DM(SLifeData *lifeData, uint8_t gasId, uint8_t setpoint_cbar);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
566 void setWeekday(RTC_DateTypeDef *sDate);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
567 void setDate(RTC_DateTypeDef Sdate);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
568 void setTime(RTC_TimeTypeDef Stime);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
569 void setBatteryPercentage(uint8_t newChargePercentage);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
570 void setButtonResponsiveness(uint8_t *ButtonSensitivyList);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
571 void calibrateCompass(void);
539
d784f281833a Added inertia simulation for compass heading:
Ideenmodellierer
parents: 478
diff changeset
572 void compass_Inertia(float newHeading);
d784f281833a Added inertia simulation for compass heading:
Ideenmodellierer
parents: 478
diff changeset
573 float compass_getCompensated();
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
574 void clearDeco(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
575 void translateDate(uint32_t datetmpreg, RTC_DateTypeDef *sDate);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
576 void translateTime(uint32_t tmpreg, RTC_TimeTypeDef *sTime);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
577 void updateSetpointStateUsed(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
578
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
579 uint8_t calc_MOD(uint8_t gasId);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
580 uint8_t calc_MinOD(uint8_t gasId);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
581 //float calc_ppO2(float input_ambient_pressure_bar, SGas* pGas);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
582 int current_second(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
583 _Bool vpm_crush(SDiveState* pDiveState);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
584 _Bool deco_zone_reached(void);
270
2e58a4094770 feature, debug: make simulator write a logbook entry
Jan Mulder <jlmulder@xs4all.nl>
parents: 247
diff changeset
585 void resetEvents(const SDiveState *pStateUsed);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
586
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
587 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
588 uint32_t CRC_CalcBlockCRC(uint32_t *buffer, uint32_t words);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
589 uint32_t CRC_CalcBlockCRC_moreThan768000(uint32_t *buffer1, uint32_t *buffer2, uint32_t words);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
590
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
591 _Bool is_ambient_pressure_close_to_surface(SLifeData *lifeData);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
592
662
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
593 uint8_t isLoopMode(uint8_t Mode);
1b995079c045 PSCR Mode
heinrichs weikamp
parents: 539
diff changeset
594
776
45b8f3c2acce Add support for a configurable compass declination in a range of -99 to 99 degrees.
heinrichsweikamp
parents: 774
diff changeset
595 bool isCompassCalibrated(void);
929
63c340abd70e Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents: 925
diff changeset
596 void logCompassHeading(uint16_t heading);
63c340abd70e Add a line to the compass heading dive menu that shows the currently set heading to enable the
heinrichsweikamp
parents: 925
diff changeset
597 void clearCompassHeading(void);
774
6169309d6eb9 more menu items for the compass menu: Delete bearing, and reset to land based bearing. I have also re-enabled the real time bearing display in the menu - makes it easier to set the correct bearing. (mikeller)
heinrichsweikamp
parents: 771
diff changeset
598 void setCompassHeading(uint16_t heading);
788
4abfb8a2a435 Define explicit setpoints for low / high / deco. Add an option to delay the switch to SPlow until all decompression has been cleared. (mikeller)
heinrichsweikamp
parents: 780
diff changeset
599
4abfb8a2a435 Define explicit setpoints for low / high / deco. Add an option to delay the switch to SPlow until all decompression has been cleared. (mikeller)
heinrichsweikamp
parents: 780
diff changeset
600 const SDecoinfo *getDecoInfo(void);
805
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
601
dd7ce655db26 Adds a simple countdown timer, available as a custom view in surface and dive mode.
heinrichsweikamp
parents: 799
diff changeset
602 void disableTimer(void);
868
db92692c014f Introduce speed dependend coloring of depth:
Ideenmodellierer
parents: 857
diff changeset
603
db92692c014f Introduce speed dependend coloring of depth:
Ideenmodellierer
parents: 857
diff changeset
604 uint8_t drawingColor_from_ascentspeed(float speed);
db92692c014f Introduce speed dependend coloring of depth:
Ideenmodellierer
parents: 857
diff changeset
605
1038
677d293c669f Bugfix AM/PM time:
Ideenmodellierer
parents: 1014
diff changeset
606 void formatStringOfTime(char* pString, uint8_t strLen, RTC_TimeTypeDef Stime, uint8_t showAlive, uint8_t showSeconds);
944
44599695df41 Restructure Date/Time menu:
Ideenmodellierer
parents: 941
diff changeset
607 void convertStringOfDate_DDMMYY(char* pString, uint8_t strLen, uint8_t day, uint8_t month, uint8_t year);
44599695df41 Restructure Date/Time menu:
Ideenmodellierer
parents: 941
diff changeset
608 void getStringOfFormat_DDMMYY(char* pString, uint8_t strLen);
949
c6b858f2e025 GNSS UTC in Date-Time menu:
Ideenmodellierer
parents: 945
diff changeset
609 void convertUTCToLocal(uint8_t utcHours, uint8_t utcMinutes, uint8_t* pLocalHours, uint8_t* pLocalMinutes);
944
44599695df41 Restructure Date/Time menu:
Ideenmodellierer
parents: 941
diff changeset
610
945
aad1a6b9aaec Added slow exit graph to t3 view:
Ideenmodellierer
parents: 944
diff changeset
611 uint8_t calculateSlowExit(uint16_t* pCountDownSec, float* pExitDepthMeter, uint8_t* pColor);
944
44599695df41 Restructure Date/Time menu:
Ideenmodellierer
parents: 941
diff changeset
612
1014
8c0134a287da Add a log data event to the scrubber timer at the start of the dive and every time the timer (in minutes)
heinrichsweikamp
parents: 996
diff changeset
613 bool isScrubberTimerEnabled(const SSettings *settings);
8c0134a287da Add a log data event to the scrubber timer at the start of the dive and every time the timer (in minutes)
heinrichsweikamp
parents: 996
diff changeset
614 bool isScrubberTimerRunning(const SDiveState *diveState, const SSettings *settings);
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
615 #endif // DATA_CENTRAL_H