altos: first cut at ADS124S0X driver interrupt handling
[fw/altos] / src / kernel / ao_telemetry.h
index 711e0d36cb57230bb012c79265295c7763886582..23e3ed7db7c4a5309f4b76bc7d5db6da424a0a86 100644 (file)
@@ -3,7 +3,8 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License.
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful, but
  * WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -197,8 +198,8 @@ struct ao_telemetry_mega_sensor {
        int16_t         gyro_z;         /* 24 */
 
        int16_t         mag_x;          /* 26 */
-       int16_t         mag_y;          /* 28 */
-       int16_t         mag_z;          /* 30 */
+       int16_t         mag_z;          /* 28 */
+       int16_t         mag_y;          /* 30 */
        /* 32 */
 };
 
@@ -258,17 +259,19 @@ 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 */
 };
 
-#define AO_TELEMETRY_MINI              0x10
+#define AO_TELEMETRY_MINI2             0x10    /* CC1111 based */
+#define AO_TELEMETRY_MINI3             0x11    /* STMF042 based */
 
 struct ao_telemetry_mini {
        uint16_t        serial;         /*  0 */
@@ -332,6 +335,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;