diff options
| author | Keith Packard <keithp@keithp.com> | 2015-03-02 21:16:06 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2015-03-02 21:16:06 -0800 | 
| commit | bef7c89dac68956a94ae386fa6b87165ab6cb484 (patch) | |
| tree | 3e66ff8c80e31c3e881d82a1ed01768772522eb8 /src | |
| parent | 3b133656df4698ceb7af5902711edf9253a29227 (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.h | 7 | 
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; | 
