#include "ao.h"
static char
-ao_packet_getchar(void)
+ao_packet_getchar(void) __critical
{
char c;
while ((c = ao_packet_pollchar()) == AO_READ_AGAIN)
break;
if (ao_packet_master_sleeping)
ao_wake_task(&ao_packet_task);
+ ao_usb_flush();
ao_sleep(&ao_stdin_ready);
}
return c;
while (ao_packet_enable) {
c = ao_packet_getchar();
if (ao_packet_enable)
- putchar(c);
+ ao_usb_putchar(c);
}
ao_exit();
}
{
uint8_t status;
+ ao_config_get();
ao_radio_set_packet();
ao_tx_packet.addr = ao_serial_number;
ao_tx_packet.len = AO_PACKET_SYN;
ao_packet_master_time = ao_time();
ao_packet_master_delay = AO_PACKET_MASTER_DELAY_SHORT;
while (ao_packet_enable) {
+ memcpy(ao_tx_packet.callsign, ao_config.callsign, AO_MAX_CALLSIGN);
ao_packet_send();
if (ao_tx_packet.len)
ao_packet_master_busy();
continue;
if (ao_rx_packet.packet.len)
ao_packet_master_busy();
- else
- flush();
ao_packet_master_sleeping = 1;
ao_delay(ao_packet_master_delay);
ao_packet_master_sleeping = 0;
}
}
+ ao_radio_set_telemetry();
ao_exit();
}
ao_set_monitor(0);
ao_add_task(&ao_packet_task, ao_packet_master, "master");
ao_add_task(&ao_packet_echo_task, ao_packet_echo, "echo");
- while ((c = getchar()) != '~') {
+ while ((c = ao_usb_getchar()) != '~') {
if (c == '\r') c = '\n';
ao_packet_putchar(c);
}