summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2015-03-02 21:16:06 -0800
committerKeith Packard <keithp@keithp.com>2015-03-02 21:16:06 -0800
commitbef7c89dac68956a94ae386fa6b87165ab6cb484 (patch)
tree3e66ff8c80e31c3e881d82a1ed01768772522eb8 /src
parent3b133656df4698ceb7af5902711edf9253a29227 (diff)
altos: Missing pad field in TMv2 data packet
The normal ARM padding would have filled this in correctly, but it's best to be explicit about the structure. This also adds a test to make sure the resulting telemetry declaration is exactly 32 bytes, Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/kernel/ao_telemetry.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/kernel/ao_telemetry.h b/src/kernel/ao_telemetry.h
index 711e0d36..672d2317 100644
--- a/src/kernel/ao_telemetry.h
+++ b/src/kernel/ao_telemetry.h
@@ -258,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 */
};
@@ -332,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;