diff options
| author | Keith Packard <keithp@keithp.com> | 2011-01-15 16:25:10 -0800 | 
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2011-01-16 14:32:47 -0800 | 
| commit | 47ee4597e55749e8f66f61a585ea32776979bf80 (patch) | |
| tree | e6ab8a9500a19109cf9f8e554ae39ee5167ee4e1 /src | |
| parent | b22ba359a02297e39a446cbd5ef51e63b795624a (diff) | |
altos: TELEMETRY PROTOCOL CHANGE. Switch to 16-bit serial numbers.
What a terrible mistake! The flight computer serial numbers were
recorded in only 8 bits, so serial numbers > 255 would get truncated.
There's really no fix other than bumping the field to 16 bits and
reflashing every TM and TD on the planet. Very unfortunate.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/ao.h | 2 | ||||
| -rw-r--r-- | src/ao_monitor.c | 4 | ||||
| -rw-r--r-- | src/ao_telemetry.c | 2 | 
3 files changed, 4 insertions, 4 deletions
@@ -856,7 +856,7 @@ ao_gps_report_init(void);  #define AO_TELEMETRY_VERSION	3  struct ao_telemetry { -	uint8_t			addr; +	uint16_t		serial;  	uint16_t		flight;  	uint8_t			flight_state;  	int16_t			flight_accel; diff --git a/src/ao_monitor.c b/src/ao_monitor.c index 1e7f5102..4ba3da6d 100644 --- a/src/ao_monitor.c +++ b/src/ao_monitor.c @@ -41,10 +41,10 @@ ao_monitor(void)  		if (state > ao_flight_invalid)  			state = ao_flight_invalid;  		if (recv.status & PKT_APPEND_STATUS_1_CRC_OK) { -			printf("VERSION %d CALL %s SERIAL %3d FLIGHT %5u RSSI %4d STATUS %02x STATE %7s ", +			printf("VERSION %d CALL %s SERIAL %d FLIGHT %5u RSSI %4d STATUS %02x STATE %7s ",  			       AO_TELEMETRY_VERSION,  			       callsign, -			       recv.telemetry.addr, +			       recv.telemetry.serial,  			       recv.telemetry.flight,  			       rssi, recv.status,  			       ao_state_names[state]); diff --git a/src/ao_telemetry.c b/src/ao_telemetry.c index 22ab1d67..7aad929f 100644 --- a/src/ao_telemetry.c +++ b/src/ao_telemetry.c @@ -33,7 +33,7 @@ ao_telemetry(void)  	while (!ao_flight_number)  		ao_sleep(&ao_flight_number);  	memcpy(telemetry.callsign, ao_config.callsign, AO_MAX_CALLSIGN); -	telemetry.addr = ao_serial_number; +	telemetry.serial = ao_serial_number;  	telemetry.flight = ao_log_full() ? 0 : ao_flight_number;  	telemetry.accel_plus_g = ao_config.accel_plus_g;  	telemetry.accel_minus_g = ao_config.accel_minus_g;  | 
