*
* 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
/* 32 */
};
-#define AO_TELEMETRY_MEGA_SENSOR 0x08
+#define AO_TELEMETRY_MEGA_SENSOR_MPU 0x08 /* Invensense IMU */
+#define AO_TELEMETRY_MEGA_SENSOR_BMX160 0x12 /* BMX160 IMU */
struct ao_telemetry_mega_sensor {
uint16_t serial; /* 0 */
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 */
};
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 */
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;