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)
recv.telemetry.flight_pres,
recv.telemetry.ground_pres);
ao_gps_print(&recv.telemetry.gps);
+ putchar(' ');
+ ao_gps_tracking_print(&recv.telemetry.gps_tracking);
+ putchar('\n');
ao_rssi_set((int) recv.rssi - 74);
} else {
printf("CRC INVALID RSSI %3d\n", (int) recv.rssi - 74);
{
ao_monitoring = monitoring;
ao_wakeup(&ao_monitoring);
+ ao_radio_abort();
}
static void