X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=src%2Fdrivers%2Fao_radio_slave.c;h=2f1dab29fc0e51c14a8f1a4d30f00dbc73402e60;hp=9a01bbfaa00cc5648ee1431466a19323b7e5f0a5;hb=1085ec5d57e0ed5d132f2bbdac1a0b6a32c0ab4a;hpb=b635cb26ba54c8f5c6a958e0ab0bc4d34d33b635 diff --git a/src/drivers/ao_radio_slave.c b/src/drivers/ao_radio_slave.c index 9a01bbfa..2f1dab29 100644 --- a/src/drivers/ao_radio_slave.c +++ b/src/drivers/ao_radio_slave.c @@ -3,7 +3,8 @@ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of @@ -32,7 +33,6 @@ ao_radio_slave_low(void) if (slave_state != 1) ao_panic(1); - ao_led_toggle(AO_LED_GREEN); ao_gpio_set(AO_RADIO_SLAVE_INT_PORT, AO_RADIO_SLAVE_INT_BIT, AO_RADIO_SLAVE_INT_PIN, 0); for (i = 0; i < 1000; i++) ao_arch_nop(); @@ -44,7 +44,6 @@ ao_radio_slave_high(void) { if (slave_state != 0) ao_panic(2); - ao_led_toggle(AO_LED_RED); ao_gpio_set(AO_RADIO_SLAVE_INT_PORT, AO_RADIO_SLAVE_INT_BIT, AO_RADIO_SLAVE_INT_PIN, 1); slave_state = 1; } @@ -65,8 +64,11 @@ ao_radio_slave_spi(void) /* XXX monitor CS to interrupt the receive */ ao_config.radio_setting = ao_radio_spi_request.setting; + ao_led_on(AO_LED_RX); ao_radio_spi_reply.status = ao_radio_recv(&ao_radio_spi_reply.payload, - ao_radio_spi_request.recv_len); + ao_radio_spi_request.recv_len, + ao_radio_spi_request.timeout); + ao_led_off(AO_LED_RX); ao_radio_spi_reply.rssi = 0; ao_spi_send(&ao_radio_spi_reply, AO_RADIO_SPI_REPLY_HEADER_LEN + ao_radio_spi_request.recv_len, @@ -76,9 +78,11 @@ ao_radio_slave_spi(void) continue; case AO_RADIO_SPI_CMAC_RECV: ao_config.radio_setting = ao_radio_spi_request.setting; + ao_led_on(AO_LED_RX); ao_radio_spi_reply.status = ao_radio_cmac_recv(&ao_radio_spi_reply.payload, ao_radio_spi_request.recv_len, ao_radio_spi_request.timeout); + ao_led_off(AO_LED_RX); ao_radio_spi_reply.rssi = ao_radio_cmac_rssi; ao_spi_send(&ao_radio_spi_reply, AO_RADIO_SPI_REPLY_HEADER_LEN + ao_radio_spi_request.recv_len, @@ -88,14 +92,18 @@ ao_radio_slave_spi(void) continue; case AO_RADIO_SPI_SEND: ao_config.radio_setting = ao_radio_spi_request.setting; + ao_led_on(AO_LED_TX); ao_radio_send(&ao_radio_spi_request.payload, ao_radio_spi_request.len - AO_RADIO_SPI_REQUEST_HEADER_LEN); + ao_led_off(AO_LED_TX); break; case AO_RADIO_SPI_CMAC_SEND: ao_config.radio_setting = ao_radio_spi_request.setting; + ao_led_on(AO_LED_TX); ao_radio_cmac_send(&ao_radio_spi_request.payload, ao_radio_spi_request.len - AO_RADIO_SPI_REQUEST_HEADER_LEN); + ao_led_off(AO_LED_TX); break; case AO_RADIO_SPI_CMAC_KEY: