-static void
-ao_radio_slave_recv(void)
-{
- uint8_t len;
- for (;;) {
- while (!ao_radio_spi_recv_len)
- ao_sleep(&ao_radio_spi_recv_len);
- len = ao_radio_spi_recv_len;
- ao_radio_spi_recv_len = 0;
- if (ao_radio_spi_recv_request == AO_RADIO_SPI_RECV) {
- ao_radio_spi_reply.status = ao_radio_recv(&ao_radio_spi_reply.payload, len);
- ao_radio_spi_reply.rssi = 0;
- } else {
- ao_radio_spi_reply.status = ao_radio_cmac_recv(&ao_radio_spi_reply.payload, len,
- ao_radio_spi_recv_timeout);
- ao_radio_spi_reply.rssi = ao_radio_cmac_rssi;
- }
- ao_radio_slave_signal();
- }
-}
-
-static __xdata struct ao_task ao_radio_slave_spi_task;
-static __xdata struct ao_task ao_radio_slave_recv_task;