Remove reason from ao_dma_abort
[fw/altos] / src / ao_monitor.c
index 5997d427a4388536687bf1a0c3a4c93238d655bb..d0c1da34914ef543bcbb5c9f5176e62ec6337316 100644 (file)
@@ -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)
@@ -55,6 +56,9 @@ ao_monitor(void)
                               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);
@@ -71,6 +75,7 @@ ao_set_monitor(uint8_t monitoring)
 {
        ao_monitoring = monitoring;
        ao_wakeup(&ao_monitoring);
+       ao_radio_abort();
 }
 
 static void