aboutsummaryrefslogtreecommitdiff
path: root/apps/uORB/topics/UNPORTED_subsystem_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/uORB/topics/UNPORTED_subsystem_info.h')
-rw-r--r--apps/uORB/topics/UNPORTED_subsystem_info.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/apps/uORB/topics/UNPORTED_subsystem_info.h b/apps/uORB/topics/UNPORTED_subsystem_info.h
new file mode 100644
index 000000000..24f973a02
--- /dev/null
+++ b/apps/uORB/topics/UNPORTED_subsystem_info.h
@@ -0,0 +1,68 @@
+/* Structure for storage of shared variables (extended( */
+
+/* global_data_subsystem_info stores a buffer of the sensor info/status messages (sent by sensors or gps app), this is then handled by the commander. (The commander then writes to global_data_sys_status which is read by mavlink) */
+
+/* (any app) --> global_data_subsystem_info (buffered) --> (commander app) --> global_data_sys_status --> (mavlink app) */
+
+#ifndef GLOBAL_DATA_SUBSYSTEM_INFO_T_H_ //adjust this line!
+#define GLOBAL_DATA_SUBSYSTEM_INFO_T_H_ //adjust this line!
+
+#define SUBSYSTEM_INFO_BUFFER_SIZE 10
+
+#include "global_data_access.h"
+
+typedef enum //values correspond to bitmasks of mavlink message sys_status, this is crucial for the underlying bitmask to work
+{
+ SUBSYSTEM_TYPE_GYRO = 0,
+ SUBSYSTEM_TYPE_ACC = 1,
+ SUBSYSTEM_TYPE_MAG = 2,
+ SUBSYSTEM_TYPE_ABSPRESSURE = 3,
+ SUBSYSTEM_TYPE_DIFFPRESSURE = 4,
+ SUBSYSTEM_TYPE_GPS = 5,
+ SUBSYSTEM_TYPE_OPTICALFLOW = 6,
+ SUBSYSTEM_TYPE_CVPOSITION = 7,
+ SUBSYSTEM_TYPE_LASERPOSITION = 8,
+ SUBSYSTEM_TYPE_EXTERNALGROUNDTRUTH = 9,
+ SUBSYSTEM_TYPE_ANGULARRATECONTROL = 10,
+ SUBSYSTEM_TYPE_ATTITUDESTABILIZATION = 11,
+ SUBSYSTEM_TYPE_YAWPOSITION = 12,
+ SUBSYSTEM_TYPE_ALTITUDECONTROL = 13,
+ SUBSYSTEM_TYPE_POSITIONCONTROL = 14,
+ SUBSYSTEM_TYPE_MOTORCONTROL = 15
+
+} subsystem_type_t;
+
+typedef struct
+{
+ uint8_t present;
+ uint8_t enabled;
+ uint8_t health;
+
+ subsystem_type_t subsystem_type;
+
+} __attribute__((__packed__)) subsystem_info_t;
+
+typedef struct
+{
+ /* Struct which stores the access configuration, this is the same for all shared structs */
+
+ access_conf_t access_conf; //don't remove this line!
+
+ /* use of a counter and timestamp recommended (but not necessary) */
+
+ uint16_t counter; //incremented by the writing thread everytime new data is stored
+ uint64_t timestamp; //in microseconds since system start, is set whenever the writing thread stores new data
+
+ /* Actual data, this is specific to the type of data which is stored in this struct */
+
+ //***** Start: Add your variables here *****
+ subsystem_info_t info[SUBSYSTEM_INFO_BUFFER_SIZE];
+ uint8_t current_info;
+
+ //*****END: Add your variables here *****
+
+} global_data_subsystem_info_t; //adjust this line!
+
+extern global_data_subsystem_info_t* global_data_subsystem_info; //adjust this line!
+
+#endif