altos: Make task list output more useful
[fw/altos] / src / kernel / ao_telemetry.h
index 83d432cf95f39db62dc9f602d8011c58a46f49ae..672d23175f71598f8341bc4ff0cf217068215ef4 100644 (file)
@@ -116,12 +116,16 @@ struct ao_telemetry_location {
        /* 32 */
 };
 
-#if HAS_GPS
-
 #ifndef HAS_WIDE_GPS
 #define HAS_WIDE_GPS   1
 #endif
 
+#ifdef HAS_TELEMETRY
+#ifndef HAS_RDF
+#define HAS_RDF                1
+#endif
+#endif
+
 #if HAS_WIDE_GPS
 typedef int32_t                gps_alt_t;
 #define AO_TELEMETRY_LOCATION_ALTITUDE(l)      (((gps_alt_t) (l)->altitude_high << 16) | ((l)->altitude_low))
@@ -135,8 +139,6 @@ typedef int16_t             gps_alt_t;
                                                  (l)->altitude_low = (a)))
 #endif /* HAS_WIDE_GPS */
 
-#endif /* HAS_GPS */
-
 #define AO_TELEMETRY_SATELLITE         0x06
 
 struct ao_telemetry_satellite_info {
@@ -256,13 +258,14 @@ struct ao_telemetry_metrum_data {
        uint16_t        serial;         /*  0 */
        uint16_t        tick;           /*  2 */
        uint8_t         type;           /*  4 */
+       uint8_t         pad5[3];        /*  5 */
 
-       int32_t         ground_pres;    /* 8 average pres on pad */
+       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 */
+       uint8_t         pad18[14];      /* 18 */
        /* 32 */
 };
 
@@ -330,6 +333,8 @@ union ao_telemetry_all {
        struct ao_telemetry_baro                baro;
 };
 
+typedef char ao_check_telemetry_size[sizeof(union ao_telemetry_all) == 32 ? 1 : -1];
+
 struct ao_telemetry_all_recv {
        union ao_telemetry_all          telemetry;
        int8_t                          rssi;