diff options
author | Keith Packard <keithp@keithp.com> | 2011-06-22 12:27:34 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2011-06-27 19:16:42 -0700 |
commit | 489a68ba8e3bc360e2e8fc887e4c4b840b5a0dd3 (patch) | |
tree | 7cebdbd3b9b67e07ec20f4e1381868c3c49dd7c2 /src/ao_monitor.c | |
parent | 0e67b6890dd3a06665239f8dfd2e69266d055e46 (diff) |
altos: Add arbitrary telemetry packet monitoring
This adds the ability to monitor arbitrary telemetry packets (up to
128 bytes), moving the telemetry data parsing up to the host.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/ao_monitor.c')
-rw-r--r-- | src/ao_monitor.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/ao_monitor.c b/src/ao_monitor.c index 248857de..ac1929db 100644 --- a/src/ao_monitor.c +++ b/src/ao_monitor.c @@ -26,6 +26,7 @@ ao_monitor(void) { __xdata char callsign[AO_MAX_CALLSIGN+1]; __xdata union { + struct ao_telemetry_raw_recv raw; struct ao_telemetry_orig_recv orig; struct ao_telemetry_tiny_recv tiny; } u; @@ -185,6 +186,15 @@ ao_monitor(void) printf("CRC INVALID RSSI %3d\n", rssi); } break; + default: + if (ao_monitoring > AO_MAX_TELEMETRY) + 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]); + break; } ao_usb_flush(); ao_led_toggle(ao_monitor_led); |