__xdata uint8_t ao_monitoring;
__pdata uint8_t ao_monitor_led;
-#define AO_MONITOR_RING 8
-
-__xdata union ao_monitor {
- struct ao_telemetry_raw_recv raw;
- struct ao_telemetry_orig_recv orig;
- struct ao_telemetry_tiny_recv tiny;
-} ao_monitor_ring[AO_MONITOR_RING];
-
-#define ao_monitor_ring_next(n) (((n) + 1) & (AO_MONITOR_RING - 1))
+__xdata union ao_monitor ao_monitor_ring[AO_MONITOR_RING];
__data uint8_t ao_monitor_head;
ao_gps_print(&recv_orig.telemetry_orig.gps);
ao_gps_tracking_print(&recv_orig.telemetry_orig.gps_tracking);
putchar('\n');
+#if HAS_RSSI
ao_rssi_set(rssi);
+#endif
} else {
printf("CRC INVALID RSSI %3d\n", rssi);
}
recv_tiny.telemetry_tiny.flight_vel,
recv_tiny.telemetry_tiny.flight_pres);
#endif
+#if HAS_RSSI
ao_rssi_set(rssi);
+#endif
} else {
printf("CRC INVALID RSSI %3d\n", rssi);
}
printf("%02x", byte);
}
printf("%02x\n", sum);
+#if HAS_RSSI
+ if (recv_raw.packet[ao_monitoring + 1] & PKT_APPEND_STATUS_1_CRC_OK) {
+ rssi = ((int16_t) recv_raw.packet[ao_monitoring] >> 1) - 74;
+ ao_rssi_set(rssi);
+ }
+#endif
break;
}
ao_usb_flush();