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)
{
ao_monitoring = monitoring;
ao_wakeup(&ao_monitoring);
+ ao_radio_abort();
}
static void