X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fao_packet_slave.c;h=39d04bbb2e8a70ca43450b9a7457f8991a1198b9;hp=e03ebdc3a20cd90475ee00ea1610b3a3a6f28260;hb=d794ef9e0fbe4d13259db1bbd69f01717c14400b;hpb=9394393c24c0a96b94319f2d0aa78fb498a121c9 diff --git a/src/ao_packet_slave.c b/src/ao_packet_slave.c index e03ebdc3..39d04bbb 100644 --- a/src/ao_packet_slave.c +++ b/src/ao_packet_slave.c @@ -20,15 +20,14 @@ void ao_packet_slave(void) { - uint8_t status; - ao_radio_set_packet(); ao_tx_packet.addr = ao_serial_number; ao_tx_packet.len = AO_PACKET_SYN; while (ao_packet_enable) { - status = ao_packet_recv(); - if (status & AO_DMA_DONE) + if (ao_packet_recv()) { + memcpy(&ao_tx_packet.callsign, &ao_rx_packet.packet.callsign, AO_MAX_CALLSIGN); ao_packet_send(); + } } ao_exit(); } @@ -45,12 +44,13 @@ ao_packet_slave_stop(void) { if (ao_packet_enable) { ao_packet_enable = 0; - ao_radio_abort(); while (ao_packet_task.wchan) { - ao_wake_task(&ao_packet_task); - ao_yield(); + ao_radio_recv_abort(); + ao_delay(AO_MS_TO_TICKS(10)); } + ao_radio_get(); ao_radio_set_telemetry(); + ao_radio_put(); } }