From: Keith Packard Date: Fri, 24 Jun 2011 15:31:12 +0000 (-0700) Subject: altos: Add checksum to TELEM output lines X-Git-Tag: 0.9.4.3~49 X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=commitdiff_plain;h=5e111fdf1f23203baeeb490ae1b69402ebd513b8 altos: Add checksum to TELEM output lines Verify the received telemetry lines to protect against OS data loss Signed-off-by: Keith Packard --- diff --git a/src/ao_monitor.c b/src/ao_monitor.c index ac1929db..1d083c59 100644 --- a/src/ao_monitor.c +++ b/src/ao_monitor.c @@ -36,6 +36,7 @@ ao_monitor(void) #define recv_tiny (u.tiny) uint8_t state; + uint8_t sum, byte; int16_t rssi; for (;;) { @@ -191,9 +192,14 @@ ao_monitor(void) ao_monitoring = AO_MAX_TELEMETRY; if (!ao_radio_recv(&recv_raw, ao_monitoring)) continue; - for (state = 0; state < ao_monitoring + 1; state++) - printf("%02x ", recv_raw.packet[state]); - printf("%02x\n", recv_raw.packet[state]); + printf ("TELEM %02x", ao_monitoring+2); + sum = 0x5a; + for (state = 0; state < ao_monitoring + 2; state++) { + byte = recv_raw.packet[state]; + sum += byte; + printf("%02x", byte); + } + printf("%02x\n", sum); break; } ao_usb_flush();