Larus glider flight sensor system
3.9.2024
Software-In-The-Loop test and validation system
Loading...
Searching...
No Matches
system_state.h
Go to the documentation of this file.
1
/*
2
* system_state.h
3
*
4
* Created on: Jan 19, 2023
5
* Author: schaefer
6
*/
7
8
#ifndef INC_SYSTEM_STATE_H_
9
#define INC_SYSTEM_STATE_H_
10
11
enum
availability_bits
12
{
13
GNSS_AVAILABLE
= 1,
14
D_GNSS_AVAILABLE
= 2,
15
16
MTI_SENSOR_AVAILABE
= 0x10,
17
FXOS_SENSOR_AVAILABLE
= 0x20,
18
L3GD20_SENSOR_AVAILABLE
= 0x40,
19
MS5611_STATIC_AVAILABLE
= 0x80,
20
PITOT_SENSOR_AVAILABLE
= 0x200,
21
AIR_SENSOR_AVAILABLE
= 0x400,
22
23
USART_1_OUTPUT_ACTIVE
= 0x800,
24
USB_OUTPUT_ACTIVE
= 0x1000,
25
BLUEZ_OUTPUT_ACTIVE
= 0x2000,
26
CAN_OUTPUT_ACTIVE
= 0x4000,
27
USART_2_OUTPUT_ACTIVE
= 0x8000
28
};
29
30
extern
uint32_t
system_state
;
31
32
inline
void
update_system_state_set
(
unsigned
value)
33
{
34
__atomic_or_fetch
( &
system_state
, value,
__ATOMIC_ACQUIRE
);
35
}
36
37
inline
void
update_system_state_clear
(
unsigned
value)
38
{
39
__atomic_and_fetch
( &
system_state
, ~value,
__ATOMIC_ACQUIRE
);
40
}
41
42
inline
bool
essential_sensors_available
(
bool
need_DGNSS
)
43
{
44
uint32_t
essential_sensors_mask
=
45
GNSS_AVAILABLE
|
46
MTI_SENSOR_AVAILABE
|
47
MS5611_STATIC_AVAILABLE
|
48
PITOT_SENSOR_AVAILABLE
;
49
50
if
(
need_DGNSS
)
51
essential_sensors_mask
|=
D_GNSS_AVAILABLE
;
52
53
return
(
system_state
&
essential_sensors_mask
) ==
essential_sensors_mask
;
54
}
55
56
#endif
/* INC_SYSTEM_STATE_H_ */
vector
mathematical vector of arbitrary type and size
Definition
vector.h:40
availability_bits
availability_bits
Definition
system_state.h:12
USB_OUTPUT_ACTIVE
@ USB_OUTPUT_ACTIVE
Definition
system_state.h:24
USART_2_OUTPUT_ACTIVE
@ USART_2_OUTPUT_ACTIVE
Definition
system_state.h:27
GNSS_AVAILABLE
@ GNSS_AVAILABLE
Definition
system_state.h:13
MS5611_STATIC_AVAILABLE
@ MS5611_STATIC_AVAILABLE
Definition
system_state.h:19
BLUEZ_OUTPUT_ACTIVE
@ BLUEZ_OUTPUT_ACTIVE
Definition
system_state.h:25
USART_1_OUTPUT_ACTIVE
@ USART_1_OUTPUT_ACTIVE
Definition
system_state.h:23
CAN_OUTPUT_ACTIVE
@ CAN_OUTPUT_ACTIVE
Definition
system_state.h:26
D_GNSS_AVAILABLE
@ D_GNSS_AVAILABLE
Definition
system_state.h:14
L3GD20_SENSOR_AVAILABLE
@ L3GD20_SENSOR_AVAILABLE
Definition
system_state.h:18
AIR_SENSOR_AVAILABLE
@ AIR_SENSOR_AVAILABLE
Definition
system_state.h:21
FXOS_SENSOR_AVAILABLE
@ FXOS_SENSOR_AVAILABLE
Definition
system_state.h:17
PITOT_SENSOR_AVAILABLE
@ PITOT_SENSOR_AVAILABLE
Definition
system_state.h:20
MTI_SENSOR_AVAILABE
@ MTI_SENSOR_AVAILABE
Definition
system_state.h:16
update_system_state_clear
void update_system_state_clear(unsigned value)
Definition
system_state.h:37
essential_sensors_available
bool essential_sensors_available(bool need_DGNSS)
Definition
system_state.h:42
update_system_state_set
void update_system_state_set(unsigned value)
Definition
system_state.h:32
system_state
uint32_t system_state
bits collected from availability_bits
Definition
sensor_data_analyzer.cpp:60
lib
Output_Formatter
system_state.h
Generated by
1.9.8