{
__xdata char callsign[AO_MAX_CALLSIGN+1];
__xdata union {
+ struct ao_telemetry_raw_recv raw;
struct ao_telemetry_orig_recv orig;
struct ao_telemetry_tiny_recv tiny;
} u;
#define recv_tiny (u.tiny)
uint8_t state;
+ uint8_t sum, byte;
int16_t rssi;
for (;;) {
printf("CRC INVALID RSSI %3d\n", rssi);
}
break;
+ default:
+ if (ao_monitoring > AO_MAX_TELEMETRY)
+ ao_monitoring = AO_MAX_TELEMETRY;
+ if (!ao_radio_recv(&recv_raw, ao_monitoring))
+ continue;
+ printf ("TELEM %02x", ao_monitoring+2);
+ sum = 0x5a;
+ for (state = 0; state < ao_monitoring + 2; state++) {
+ byte = recv_raw.packet[state];
+ sum += byte;
+ printf("%02x", byte);
+ }
+ printf("%02x\n", sum);
+ break;
}
ao_usb_flush();
ao_led_toggle(ao_monitor_led);