Merge remote-tracking branch 'origin/telemini'
[fw/altos] / src / core / ao_telemetry.h
index 776015291dddde49a3d49adfb1615eb8f0bf5631..fd6b76b37375114519621258642d6a0c4ee25bc1 100644 (file)
@@ -207,6 +207,47 @@ struct ao_telemetry_mega_data {
 };
 
 
+#define AO_TELEMETRY_METRUM_SENSOR     0x0A
+
+struct ao_telemetry_metrum_sensor {
+       uint16_t        serial;         /*  0 */
+       uint16_t        tick;           /*  2 */
+       uint8_t         type;           /*  4 */
+
+       uint8_t         state;          /*  5 flight state */
+       int16_t         accel;          /*  6 Z axis */
+
+       int32_t         pres;           /*  8 Pa * 10 */
+       int16_t         temp;           /* 12 °C * 100 */
+
+       int16_t         acceleration;   /* 14 m/s² * 16 */
+       int16_t         speed;          /* 16 m/s * 16 */
+       int16_t         height;         /* 18 m */
+
+       int16_t         v_batt;         /* 20 battery voltage */
+       int16_t         sense_a;        /* 22 apogee continuity sense */
+       int16_t         sense_m;        /* 24 main continuity sense */
+
+       uint8_t         pad[6];         /* 26 */
+       /* 32 */
+};
+       
+#define AO_TELEMETRY_METRUM_DATA       0x0B
+
+struct ao_telemetry_metrum_data {
+       uint16_t        serial;         /*  0 */
+       uint16_t        tick;           /*  2 */
+       uint8_t         type;           /*  4 */
+
+       int32_t         ground_pres;    /* 8 average pres on pad */
+       int16_t         ground_accel;   /* 12 average accel on pad */
+       int16_t         accel_plus_g;   /* 14 accel calibration at +1g */
+       int16_t         accel_minus_g;  /* 16 accel calibration at -1g */
+
+       uint8_t         pad[14];        /* 18 */
+       /* 32 */
+};
+
 #define AO_TELEMETRY_MINI              0x10
 
 struct ao_telemetry_mini {
@@ -215,7 +256,6 @@ struct ao_telemetry_mini {
        uint8_t         type;           /*  4 */
 
        uint8_t         state;          /*  5 flight state */
-
        int16_t         v_batt;         /*  6 battery voltage */
        int16_t         sense_a;        /*  8 apogee continuity */
        int16_t         sense_m;        /* 10 main continuity */
@@ -266,6 +306,8 @@ union ao_telemetry_all {
        struct ao_telemetry_companion           companion;
        struct ao_telemetry_mega_sensor         mega_sensor;
        struct ao_telemetry_mega_data           mega_data;
+       struct ao_telemetry_metrum_sensor       metrum_sensor;
+       struct ao_telemetry_metrum_data         metrum_data;
        struct ao_telemetry_mini                mini;
        struct ao_telemetry_baro                baro;
 };