summaryrefslogtreecommitdiff
path: root/ao-tools/lib
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2012-06-21 09:51:17 -0700
committerKeith Packard <keithp@keithp.com>2012-06-21 09:51:17 -0700
commit0b5548d6ced67201311e1072d37fbedd3d9929c9 (patch)
tree3417356ab65ec8889ce43d19bfc5a3e8bcca28d6 /ao-tools/lib
parent6f421818fd7062f03bfaf9e606d6a4cfdcb13b49 (diff)
ao-tools: Support MM telemetry packets in ao-telem
Parse the new packet formats Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'ao-tools/lib')
-rw-r--r--ao-tools/lib/cc-telemetry.h54
1 files changed, 53 insertions, 1 deletions
diff --git a/ao-tools/lib/cc-telemetry.h b/ao-tools/lib/cc-telemetry.h
index 4e064a97..e849cd3b 100644
--- a/ao-tools/lib/cc-telemetry.h
+++ b/ao-tools/lib/cc-telemetry.h
@@ -37,7 +37,6 @@ struct ao_telemetry_generic {
#define AO_TELEMETRY_SENSOR_TELEMETRUM 0x01
#define AO_TELEMETRY_SENSOR_TELEMINI 0x02
#define AO_TELEMETRY_SENSOR_TELENANO 0x03
-#define AO_TELEMETRY_SENSOR_MEGAMETRUM 0x08
struct ao_telemetry_sensor {
uint16_t serial; /* 0 */
@@ -151,6 +150,57 @@ struct ao_telemetry_companion {
/* 32 */
};
+#define AO_TELEMETRY_MEGA_SENSOR 0x08
+
+struct ao_telemetry_mega_sensor {
+ uint16_t serial; /* 0 */
+ uint16_t tick; /* 2 */
+ uint8_t type; /* 4 */
+
+ uint8_t pad5; /* 5 */
+ int16_t accel; /* 6 Z axis */
+
+ int32_t pres; /* 8 Pa * 10 */
+ int16_t temp; /* 12 °C * 100 */
+
+ int16_t accel_x; /* 14 */
+ int16_t accel_y; /* 16 */
+ int16_t accel_z; /* 18 */
+
+ int16_t gyro_x; /* 20 */
+ int16_t gyro_y; /* 22 */
+ int16_t gyro_z; /* 24 */
+
+ int16_t mag_x; /* 26 */
+ int16_t mag_y; /* 28 */
+ int16_t mag_z; /* 30 */
+ /* 32 */
+};
+
+#define AO_TELEMETRY_MEGA_DATA 0x09
+
+struct ao_telemetry_mega_data {
+ uint16_t serial; /* 0 */
+ uint16_t tick; /* 2 */
+ uint8_t type; /* 4 */
+
+ uint8_t state; /* 5 flight state */
+
+ int16_t v_batt; /* 6 battery voltage */
+ int16_t v_pyro; /* 8 pyro battery voltage */
+ int8_t sense[6]; /* 10 continuity sense */
+
+ int32_t ground_pres; /* 16 average pres on pad */
+ int16_t ground_accel; /* 20 average accel on pad */
+ int16_t accel_plus_g; /* 22 accel calibration at +1g */
+ int16_t accel_minus_g; /* 24 accel calibration at -1g */
+
+ int16_t acceleration; /* 26 m/s² * 16 */
+ int16_t speed; /* 28 m/s * 16 */
+ int16_t height; /* 30 m */
+ /* 32 */
+};
+
/* #define AO_SEND_ALL_BARO */
#define AO_TELEMETRY_BARO 0x80
@@ -182,6 +232,8 @@ union ao_telemetry_all {
struct ao_telemetry_location location;
struct ao_telemetry_satellite satellite;
struct ao_telemetry_companion companion;
+ struct ao_telemetry_mega_sensor mega_sensor;
+ struct ao_telemetry_mega_data mega_data;
struct ao_telemetry_baro baro;
};