From 5cbb8093cf449f1d8c5d56c7271916414426da02 Mon Sep 17 00:00:00 2001 From: Francisco Molina Date: Fri, 6 Nov 2020 18:08:04 +0100 Subject: [PATCH] tests/ieee802154_hal: add CRC_ERROR handling --- tests/ieee802154_hal/main.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/ieee802154_hal/main.c b/tests/ieee802154_hal/main.c index 555476b1b3..22dce9ffa0 100644 --- a/tests/ieee802154_hal/main.c +++ b/tests/ieee802154_hal/main.c @@ -102,6 +102,21 @@ static xtimer_t timer_ack = { .callback = _timer_ack_handler, }; +void _crc_error_handler(event_t *event) +{ + (void) event; + puts("Packet with invalid CRC received"); + ieee802154_dev_t* dev = ieee802154_hal_test_get_dev(RADIO_DEFAULT_ID); + /* switch back to RX_ON state */ + ieee802154_radio_request_set_trx_state(dev, IEEE802154_TRX_STATE_RX_ON); + while (ieee802154_radio_confirm_set_trx_state(dev) == -EAGAIN) {} +} + +static event_t _crc_error_event = { + .handler = _crc_error_handler, +}; + + void _rx_done_handler(event_t *event) { (void) event; @@ -139,6 +154,9 @@ static void _hal_radio_cb(ieee802154_dev_t *dev, ieee802154_trx_ev_t status) case IEEE802154_RADIO_INDICATION_RX_DONE: event_post(EVENT_PRIO_HIGHEST, &_rx_done_event); break; + case IEEE802154_RADIO_INDICATION_CRC_ERROR: + event_post(EVENT_PRIO_HIGHEST, &_crc_error_event); + break; default: break; }