annotate Small_CPU/Inc/scheduler.h @ 173:05c770dc2911 max-depth

Bugfix: make max depth move with current depth (part 1) The display in dive mode of the max depth was updated before the actual depth, which looks very strange. The reason for this was conceptually simple. The depth value was averaged over a set of depth samples, but the current depth was only taken from the current sample. So, per definition, on an initial descend, the current depth is always bigger (deeper) than any average from previous shallower samples. This part 1 commit introduces a new function that is used immediate after reception of the new sample from the RTE. This function does the trivial average of a set of samples. Notice that also the surface and ambient mbar pressures are taken into account (which are used heavily over the entire code). This is a consistency thing. We should base any further calculation from the data presented in the UI, instead of presenting A, and use A' for further calculations. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
author Jan Mulder <jlmulder@xs4all.nl>
date Mon, 11 Mar 2019 19:48:57 +0100
parents ee744c7160ce
children 331882a89421
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 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
3 * @file scheduler.h
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
4 * @author heinrichs weikamp gmbh
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
5 * @version V0.0.5
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
6 * @date 27-March-2014
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
7 * @brief
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
8 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
9 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
10 * @attention
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
11 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
12 * <h2><center>&copy; COPYRIGHT(c) 2015 heinrichs weikamp</center></h2>
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
13 *
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
14 ******************************************************************************
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
15 */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
16
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
17
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
18 #ifndef SCHEDULER_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
19 #define SCHEDULER_H
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
20
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
21 #ifdef __cplusplus
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
22 extern "C" {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
23 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
24
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
25
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
26 /* Includes ------------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
27 #include "data_central.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
28 #include "data_exchange.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
29 #include "settings.h"
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
30
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
31 /* Types -------------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
32 #define MAX_WIRELESS_BYTES 10
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
33 #define SENSOR_PRESSURE_ID 0
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
34 #define MAX_SENSORS 1
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
35
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
36 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
37 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
38 uint8_t mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
39 short conservatism;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
40 short repetitive_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
41 long seconds_since_last_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
42 long no_fly_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
43 uint8_t whichGas;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
44 SGas aktualGas[2];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
45 float ceiling_from_main_CPU_mbar;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
46 SLifeData lifeData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
47 SVpm vpm;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
48 SSettings settings;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
49 SDevice deviceData;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
50 SDataExchangeSlaveToMasterDeviceData deviceDataSendToMaster;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
51 SDataExchangeSlaveToMaster dataSendToMaster;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
52 SDataReceiveFromMaster dataSendToSlave;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
53 _Bool demo_mode;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
54 uint8_t dataSendToSlaveIsValid;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
55 uint8_t dataSendToSlavePending;
88
Dmitry Romanov <kitt@bk.ru>
parents: 84
diff changeset
56 uint8_t dataSendToSlaveStopEval;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
57 uint32_t sync_error_count;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
58 uint32_t check_sync_not_running;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
59 uint8_t ButtonResponsiveness[4];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
60 uint8_t chargerStatus;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
61 uint8_t dataSendToSlaveIsNotValidCount;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
62 uint8_t wirelessdata[MAX_WIRELESS_BYTES];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
63 uint8_t wirelessReceived;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
64 uint8_t wirelessConfidenceStatus;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
65 uint8_t ButtonPICdata[4];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
66 uint8_t accidentFlag;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
67 uint32_t accidentRemainingSeconds;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
68 uint8_t sensorError[MAX_SENSORS];
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
69 uint8_t I2C_SystemStatus;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
70 } SGlobal;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
71
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
72 typedef struct
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
73 {
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
74 long seconds_since_last_dive;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
75 long no_fly_time_minutes;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
76 } SBackup;
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
77
144
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
78 typedef struct
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
79 {
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
80 uint8_t counterSPIdata100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
81 uint8_t counterPressure100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
82 uint8_t counterCompass100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
83 uint8_t counterAmbientLight100msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
84 uint16_t counterWireless1msec;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
85 uint32_t tickstart;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
86 } SScheduleCtrl;
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
87
6b83ca1225de Use one global structure for schedule data
Ideenmodellierer
parents: 88
diff changeset
88
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
89 /* Variables ---------------------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
90 extern SGlobal global;
148
ee744c7160ce Use SPI TX callback to synchronize to main CPU
Ideenmodellierer
parents: 144
diff changeset
91 extern uint8_t dohardspisync;
38
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
92
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
93
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
94 /* Function prototypes -----------------------------------------------*/
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
95
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
96 void initGlobals(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
97
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
98 void scheduleSurfaceMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
99 void scheduleDiveMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
100 void scheduleSleepMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
101 void scheduleCompassCalibrationMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
102 void scheduleTestMode(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
103
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
104 void scheduleUpdateLifeData(int32_t asynchron_milliseconds_since_last);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
105 void scheduleSpecial_Evaluate_DataSendToSlave(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
106 void scheduleUpdateDeviceDataChargerFull(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
107 void scheduleUpdateDeviceDataChargerCharging(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
108
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
109 uint8_t scheduleSetButtonResponsiveness(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
110
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
111 void copyBatteryData(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
112
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
113 //void scheduleSurfaceMode_test(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
114 //void scheduleSleepMode_test(void);
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
115
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
116 #ifdef __cplusplus
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
117 }
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
118 #endif
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
119
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
120 #endif /* SCHEDULER_H */
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
121
5f11787b4f42 include in ostc4 repository
heinrichsweikamp
parents:
diff changeset
122 /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/