summaryrefslogtreecommitdiff
path: root/src/ao_monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ao_monitor.c')
-rw-r--r--src/ao_monitor.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/ao_monitor.c b/src/ao_monitor.c
index e57ea145..d0c1da34 100644
--- a/src/ao_monitor.c
+++ b/src/ao_monitor.c
@@ -30,7 +30,8 @@ ao_monitor(void)
for (;;) {
__critical while (!ao_monitoring)
ao_sleep(&ao_monitoring);
- ao_radio_recv(&recv);
+ if (!ao_radio_recv(&recv))
+ continue;
state = recv.telemetry.flight_state;
memcpy(callsign, recv.telemetry.callsign, AO_MAX_CALLSIGN);
if (state > ao_flight_invalid)
@@ -74,6 +75,7 @@ ao_set_monitor(uint8_t monitoring)
{
ao_monitoring = monitoring;
ao_wakeup(&ao_monitoring);
+ ao_radio_abort();
}
static void