From: Keith Packard Date: Sun, 16 Jan 2011 00:25:10 +0000 (-0800) Subject: altos: TELEMETRY PROTOCOL CHANGE. Switch to 16-bit serial numbers. X-Git-Tag: debian/0.8.1+71+gda42f40~11 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=47ee4597e55749e8f66f61a585ea32776979bf80 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 --- diff --git a/src/ao.h b/src/ao.h index 37a39a79..5721c344 100644 --- a/src/ao.h +++ b/src/ao.h @@ -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;