|
|
@@ -102,7 +102,7 @@ static bool stop_rx(void)
|
|
|
{
|
|
|
ieee802154_ll_events events;
|
|
|
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_STOP);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_STOP);
|
|
|
|
|
|
events = ieee802154_ll_get_events();
|
|
|
if (events & IEEE802154_EVENT_RX_DONE) {
|
|
|
@@ -116,7 +116,7 @@ static bool stop_rx(void)
|
|
|
|
|
|
static bool stop_tx_ack(void)
|
|
|
{
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_STOP);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_STOP);
|
|
|
|
|
|
esp_ieee802154_receive_done((uint8_t *)s_rx_frame[s_rx_index], &s_rx_frame_info[s_rx_index]);
|
|
|
|
|
|
@@ -129,7 +129,7 @@ static bool stop_tx(void)
|
|
|
{
|
|
|
ieee802154_ll_events events;
|
|
|
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_STOP);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_STOP);
|
|
|
|
|
|
events = ieee802154_ll_get_events();
|
|
|
|
|
|
@@ -151,7 +151,7 @@ static bool stop_tx(void)
|
|
|
|
|
|
static bool stop_cca(void)
|
|
|
{
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_STOP);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_STOP);
|
|
|
ieee802154_ll_clear_events(IEEE802154_EVENT_ED_DONE | IEEE802154_EVENT_RX_ABORT);
|
|
|
return true;
|
|
|
}
|
|
|
@@ -167,7 +167,7 @@ static bool stop_rx_ack(void)
|
|
|
{
|
|
|
ieee802154_ll_events events;
|
|
|
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_STOP);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_STOP);
|
|
|
|
|
|
events = ieee802154_ll_get_events();
|
|
|
|
|
|
@@ -187,7 +187,7 @@ static bool stop_rx_ack(void)
|
|
|
|
|
|
static bool stop_ed(void)
|
|
|
{
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_STOP);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_STOP);
|
|
|
|
|
|
ieee802154_ll_clear_events(IEEE802154_EVENT_ED_DONE | IEEE802154_EVENT_RX_ABORT);
|
|
|
|
|
|
@@ -238,7 +238,7 @@ IEEE802154_STATIC bool stop_current_operation(void)
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
- assert(false);
|
|
|
+ IEEE802154_ASSERT(false);
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
@@ -250,9 +250,9 @@ static void enable_rx(void)
|
|
|
set_next_rx_buffer();
|
|
|
IEEE802154_SET_TXRX_PTI(IEEE802154_SCENE_RX);
|
|
|
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_RX_START);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_RX_START);
|
|
|
|
|
|
- s_ieee802154_state = IEEE802154_STATE_RX;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_RX);
|
|
|
}
|
|
|
|
|
|
static IRAM_ATTR void next_operation(void)
|
|
|
@@ -260,7 +260,7 @@ static IRAM_ATTR void next_operation(void)
|
|
|
if (ieee802154_pib_get_rx_when_idle()) {
|
|
|
enable_rx();
|
|
|
} else {
|
|
|
- s_ieee802154_state = IEEE802154_STATE_IDLE;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_IDLE);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -295,7 +295,7 @@ static IRAM_ATTR void isr_handle_tx_done(void)
|
|
|
next_operation();
|
|
|
} else if (s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA) {
|
|
|
if (ieee802154_frame_is_ack_required(s_tx_frame) && ieee802154_ll_get_rx_auto_ack()) {
|
|
|
- s_ieee802154_state = IEEE802154_STATE_RX_ACK;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_RX_ACK);
|
|
|
receive_ack_timeout_timer_start(200000); // 200ms for receive ack timeout
|
|
|
} else {
|
|
|
esp_ieee802154_transmit_done(s_tx_frame, NULL, NULL);
|
|
|
@@ -315,7 +315,7 @@ static IRAM_ATTR void isr_handle_rx_done(void)
|
|
|
&& ieee802154_ll_get_tx_auto_ack()) {
|
|
|
// auto tx ack only works for the frame with version 0b00 and 0b01
|
|
|
s_rx_frame_info[s_rx_index].pending = ieee802154_ack_config_pending_bit(s_rx_frame[s_rx_index]);
|
|
|
- s_ieee802154_state = IEEE802154_STATE_TX_ACK;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_TX_ACK);
|
|
|
} else if (ieee802154_frame_is_ack_required(s_rx_frame[s_rx_index]) && ieee802154_frame_get_version(s_rx_frame[s_rx_index]) == IEEE802154_FRAME_VERSION_2
|
|
|
&& ieee802154_ll_get_tx_enhance_ack()) {
|
|
|
s_rx_frame_info[s_rx_index].pending = ieee802154_ack_config_pending_bit(s_rx_frame[s_rx_index]);
|
|
|
@@ -327,11 +327,11 @@ static IRAM_ATTR void isr_handle_rx_done(void)
|
|
|
s_tx_frame = s_enh_ack_frame;
|
|
|
ieee802154_sec_update();
|
|
|
ieee802154_ll_enhack_generate_done_notify();
|
|
|
- s_ieee802154_state = IEEE802154_STATE_TX_ENH_ACK;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_TX_ENH_ACK);
|
|
|
#endif
|
|
|
} else {
|
|
|
// Stop current process if generator returns errors.
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_STOP);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_STOP);
|
|
|
esp_ieee802154_receive_done((uint8_t *)s_rx_frame[s_rx_index], &s_rx_frame_info[s_rx_index]);
|
|
|
next_operation();
|
|
|
}
|
|
|
@@ -375,25 +375,25 @@ static IRAM_ATTR void isr_handle_rx_abort(void)
|
|
|
case IEEE802154_RX_ABORT_BY_NO_RSS:
|
|
|
case IEEE802154_RX_ABORT_BY_UNEXPECTED_ACK:
|
|
|
case IEEE802154_RX_ABORT_BY_RX_RESTART:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX);
|
|
|
#if CONFIG_IEEE802154_TEST
|
|
|
esp_ieee802154_receive_failed(rx_status);
|
|
|
next_operation();
|
|
|
#endif
|
|
|
break;
|
|
|
case IEEE802154_RX_ABORT_BY_COEX_BREAK:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX);
|
|
|
esp_ieee802154_receive_failed(rx_status);
|
|
|
break;
|
|
|
case IEEE802154_RX_ABORT_BY_ED_ABORT:
|
|
|
case IEEE802154_RX_ABORT_BY_ED_COEX_REJECT:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_ED || s_ieee802154_state == IEEE802154_STATE_CCA);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_ED || s_ieee802154_state == IEEE802154_STATE_CCA);
|
|
|
esp_ieee802154_ed_failed(rx_status);
|
|
|
next_operation();
|
|
|
break;
|
|
|
case IEEE802154_RX_ABORT_BY_TX_ACK_TIMEOUT:
|
|
|
case IEEE802154_RX_ABORT_BY_TX_ACK_COEX_BREAK:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX_ACK || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX_ACK || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
#if !CONFIG_IEEE802154_TEST
|
|
|
esp_ieee802154_receive_done((uint8_t *)s_rx_frame[s_rx_index], &s_rx_frame_info[s_rx_index]);
|
|
|
next_operation();
|
|
|
@@ -402,7 +402,7 @@ static IRAM_ATTR void isr_handle_rx_abort(void)
|
|
|
#endif
|
|
|
break;
|
|
|
case IEEE802154_RX_ABORT_BY_ENHACK_SECURITY_ERROR:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
#if !CONFIG_IEEE802154_TEST
|
|
|
esp_ieee802154_receive_done((uint8_t *)s_rx_frame[s_rx_index], &s_rx_frame_info[s_rx_index]);
|
|
|
next_operation();
|
|
|
@@ -411,7 +411,7 @@ static IRAM_ATTR void isr_handle_rx_abort(void)
|
|
|
#endif
|
|
|
break;
|
|
|
default:
|
|
|
- assert(false);
|
|
|
+ IEEE802154_ASSERT(false);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -432,37 +432,37 @@ static IRAM_ATTR void isr_handle_tx_abort(void)
|
|
|
case IEEE802154_TX_ABORT_BY_RX_ACK_COEX_BREAK:
|
|
|
case IEEE802154_TX_ABORT_BY_RX_ACK_TYPE_NOT_ACK:
|
|
|
case IEEE802154_TX_ABORT_BY_RX_ACK_RESTART:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
esp_ieee802154_transmit_failed(s_tx_frame, ESP_IEEE802154_TX_ERR_INVALID_ACK);
|
|
|
break;
|
|
|
case IEEE802154_TX_ABORT_BY_RX_ACK_TIMEOUT:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
ieee802154_ll_disable_events(IEEE802154_EVENT_TIMER0_OVERFLOW);
|
|
|
esp_ieee802154_transmit_failed(s_tx_frame, ESP_IEEE802154_TX_ERR_NO_ACK);
|
|
|
next_operation();
|
|
|
break;
|
|
|
case IEEE802154_TX_ABORT_BY_TX_COEX_BREAK:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
esp_ieee802154_transmit_failed(s_tx_frame, ESP_IEEE802154_TX_ERR_COEXIST);
|
|
|
next_operation();
|
|
|
break;
|
|
|
case IEEE802154_TX_ABORT_BY_TX_SECURITY_ERROR:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
esp_ieee802154_transmit_failed(s_tx_frame, ESP_IEEE802154_TX_ERR_SECURITY);
|
|
|
next_operation();
|
|
|
break;
|
|
|
case IEEE802154_TX_ABORT_BY_CCA_FAILED:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
esp_ieee802154_transmit_failed(s_tx_frame, ESP_IEEE802154_TX_ERR_ABORT);
|
|
|
next_operation();
|
|
|
break;
|
|
|
case IEEE802154_TX_ABORT_BY_CCA_BUSY:
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX_CCA);
|
|
|
esp_ieee802154_transmit_failed(s_tx_frame, ESP_IEEE802154_TX_ERR_CCA_BUSY);
|
|
|
next_operation();
|
|
|
break;
|
|
|
default:
|
|
|
- assert(false);
|
|
|
+ IEEE802154_ASSERT(false);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -482,11 +482,13 @@ static void ieee802154_isr(void *arg)
|
|
|
{
|
|
|
ieee802154_ll_events events = ieee802154_ll_get_events();
|
|
|
|
|
|
+ IEEE802154_PROBE(events);
|
|
|
+
|
|
|
ieee802154_ll_clear_events(events);
|
|
|
|
|
|
if (events & IEEE802154_EVENT_RX_SFD_DONE) {
|
|
|
// IEEE802154_STATE_TX && IEEE802154_STATE_TX_CCA && IEEE802154_STATE_TX_ENH_ACK for isr processing delay
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX || s_ieee802154_state == IEEE802154_STATE_RX_ACK || s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX || s_ieee802154_state == IEEE802154_STATE_RX_ACK || s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
|
|
|
s_rx_frame_info[s_rx_index].timestamp = esp_timer_get_time();
|
|
|
esp_ieee802154_receive_sfd_done();
|
|
|
@@ -496,7 +498,7 @@ static void ieee802154_isr(void *arg)
|
|
|
|
|
|
if (events & IEEE802154_EVENT_TX_SFD_DONE) {
|
|
|
// ZB-81: IEEE802154_STATE_TX_ACK is also a possible state
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TEST_TX || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK || s_ieee802154_state == IEEE802154_STATE_TX_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TEST_TX || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK || s_ieee802154_state == IEEE802154_STATE_TX_ACK);
|
|
|
|
|
|
esp_ieee802154_transmit_sfd_done(s_tx_frame);
|
|
|
|
|
|
@@ -504,7 +506,7 @@ static void ieee802154_isr(void *arg)
|
|
|
}
|
|
|
|
|
|
if (events & IEEE802154_EVENT_TX_DONE) {
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TEST_TX || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TEST_TX || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
|
|
|
isr_handle_tx_done();
|
|
|
|
|
|
@@ -512,7 +514,7 @@ static void ieee802154_isr(void *arg)
|
|
|
}
|
|
|
|
|
|
if (events & IEEE802154_EVENT_RX_DONE) {
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX);
|
|
|
|
|
|
isr_handle_rx_done();
|
|
|
|
|
|
@@ -521,7 +523,7 @@ static void ieee802154_isr(void *arg)
|
|
|
|
|
|
if (events & IEEE802154_EVENT_ACK_TX_DONE) {
|
|
|
// IEEE802154_STATE_RX for isr processing delay
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_TX_ACK || s_ieee802154_state == IEEE802154_STATE_RX || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_TX_ACK || s_ieee802154_state == IEEE802154_STATE_RX || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
|
|
|
isr_handle_ack_tx_done();
|
|
|
|
|
|
@@ -530,7 +532,7 @@ static void ieee802154_isr(void *arg)
|
|
|
|
|
|
if (events & IEEE802154_EVENT_ACK_RX_DONE) {
|
|
|
// IEEE802154_STATE_TX && IEEE802154_STATE_TX_CCA && IEEE802154_STATE_TX_ENH_ACK for isr processing delay
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX_ACK || s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX_ACK || s_ieee802154_state == IEEE802154_STATE_TX || s_ieee802154_state == IEEE802154_STATE_TX_CCA || s_ieee802154_state == IEEE802154_STATE_TX_ENH_ACK);
|
|
|
|
|
|
isr_handle_ack_rx_done();
|
|
|
|
|
|
@@ -550,7 +552,7 @@ static void ieee802154_isr(void *arg)
|
|
|
}
|
|
|
|
|
|
if (events & IEEE802154_EVENT_ED_DONE) {
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_ED || s_ieee802154_state == IEEE802154_STATE_CCA);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_ED || s_ieee802154_state == IEEE802154_STATE_CCA);
|
|
|
|
|
|
isr_handle_ed_done();
|
|
|
|
|
|
@@ -559,10 +561,10 @@ static void ieee802154_isr(void *arg)
|
|
|
|
|
|
if (events & IEEE802154_EVENT_TIMER0_OVERFLOW) {
|
|
|
#if !CONFIG_IEEE802154_TEST
|
|
|
- assert(s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
+ IEEE802154_ASSERT(s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
#else
|
|
|
extern bool ieee802154_timer0_test;
|
|
|
- assert(ieee802154_timer0_test || s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
+ IEEE802154_ASSERT(ieee802154_timer0_test || s_ieee802154_state == IEEE802154_STATE_RX_ACK);
|
|
|
#endif
|
|
|
isr_handle_timer0_done();
|
|
|
|
|
|
@@ -576,7 +578,7 @@ static void ieee802154_isr(void *arg)
|
|
|
}
|
|
|
|
|
|
// all events should be handled
|
|
|
- assert(events == 0);
|
|
|
+ IEEE802154_ASSERT(events == 0);
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -599,7 +601,7 @@ void ieee802154_enable(void)
|
|
|
void ieee802154_disable(void)
|
|
|
{
|
|
|
modem_clock_module_disable(ieee802154_periph.module);
|
|
|
- s_ieee802154_state = IEEE802154_STATE_DISABLE;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_DISABLE);
|
|
|
}
|
|
|
|
|
|
esp_err_t ieee802154_mac_init(void)
|
|
|
@@ -631,6 +633,7 @@ esp_err_t ieee802154_mac_init(void)
|
|
|
#endif
|
|
|
|
|
|
memset(s_rx_frame, 0, sizeof(s_rx_frame));
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_IDLE);
|
|
|
|
|
|
// TODO: Add flags for IEEE802154 ISR allocating. TZ-102
|
|
|
ret = esp_intr_alloc(ieee802154_periph.irq_id, 0, ieee802154_isr, NULL, NULL);
|
|
|
@@ -645,7 +648,7 @@ IEEE802154_STATIC void start_ed(uint32_t duration)
|
|
|
{
|
|
|
ieee802154_ll_enable_events(IEEE802154_EVENT_ED_DONE);
|
|
|
ieee802154_ll_set_ed_duration(duration);
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_ED_START);
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_ED_START);
|
|
|
}
|
|
|
|
|
|
IEEE802154_STATIC void tx_init(const uint8_t *frame)
|
|
|
@@ -671,11 +674,11 @@ esp_err_t ieee802154_transmit(const uint8_t *frame, bool cca)
|
|
|
IEEE802154_SET_TXRX_PTI(IEEE802154_SCENE_TX);
|
|
|
|
|
|
if (cca) {
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_CCA_TX_START);
|
|
|
- s_ieee802154_state = IEEE802154_STATE_TX_CCA;
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_CCA_TX_START);
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_TX_CCA);
|
|
|
} else {
|
|
|
- ieee802154_ll_set_cmd(IEEE802154_CMD_TX_START);
|
|
|
- s_ieee802154_state = IEEE802154_STATE_TX;
|
|
|
+ ieee802154_set_cmd(IEEE802154_CMD_TX_START);
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_TX);
|
|
|
}
|
|
|
|
|
|
ieee802154_exit_critical();
|
|
|
@@ -696,7 +699,7 @@ esp_err_t ieee802154_transmit_at(const uint8_t *frame, bool cca, uint32_t time)
|
|
|
IEEE802154_SET_TXRX_PTI(IEEE802154_SCENE_TX_AT);
|
|
|
if (cca) {
|
|
|
tx_target_time = time - IEEE802154_ED_TRIG_TX_RAMPUP_TIME_US;
|
|
|
- s_ieee802154_state = IEEE802154_STATE_TX_CCA;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_TX_CCA);
|
|
|
ieee802154_enter_critical();
|
|
|
ieee802154_etm_set_event_task(IEEE802154_ETM_CHANNEL0, ETM_EVENT_TIMER0_OVERFLOW, ETM_TASK_ED_TRIG_TX);
|
|
|
current_time = (uint32_t)esp_timer_get_time();
|
|
|
@@ -706,9 +709,9 @@ esp_err_t ieee802154_transmit_at(const uint8_t *frame, bool cca, uint32_t time)
|
|
|
} else {
|
|
|
tx_target_time = time - IEEE802154_TX_RAMPUP_TIME_US;
|
|
|
if (ieee802154_frame_get_type(frame) == IEEE802154_FRAME_TYPE_ACK && ieee802154_frame_get_version(frame) == IEEE802154_FRAME_VERSION_2) {
|
|
|
- s_ieee802154_state = IEEE802154_STATE_TX_ENH_ACK;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_TX_ENH_ACK);
|
|
|
} else {
|
|
|
- s_ieee802154_state = IEEE802154_STATE_TX;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_TX);
|
|
|
}
|
|
|
ieee802154_enter_critical();
|
|
|
ieee802154_etm_set_event_task(IEEE802154_ETM_CHANNEL0, ETM_EVENT_TIMER0_OVERFLOW, ETM_TASK_TX_START);
|
|
|
@@ -749,7 +752,7 @@ esp_err_t ieee802154_receive_at(uint32_t time)
|
|
|
rx_init();
|
|
|
IEEE802154_SET_TXRX_PTI(IEEE802154_SCENE_RX_AT);
|
|
|
set_next_rx_buffer();
|
|
|
- s_ieee802154_state = IEEE802154_STATE_RX;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_RX);
|
|
|
ieee802154_enter_critical();
|
|
|
ieee802154_etm_set_event_task(IEEE802154_ETM_CHANNEL1, ETM_EVENT_TIMER0_OVERFLOW, ETM_TASK_RX_START);
|
|
|
current_time = (uint32_t)esp_timer_get_time();
|
|
|
@@ -801,7 +804,7 @@ esp_err_t ieee802154_sleep(void)
|
|
|
ieee802154_enter_critical();
|
|
|
|
|
|
stop_current_operation();
|
|
|
- s_ieee802154_state = IEEE802154_STATE_SLEEP;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_IDLE);
|
|
|
|
|
|
ieee802154_exit_critical();
|
|
|
return ESP_OK;
|
|
|
@@ -816,7 +819,7 @@ esp_err_t ieee802154_energy_detect(uint32_t duration)
|
|
|
ieee802154_pib_update();
|
|
|
|
|
|
start_ed(duration);
|
|
|
- s_ieee802154_state = IEEE802154_STATE_ED;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_ED);
|
|
|
|
|
|
ieee802154_exit_critical();
|
|
|
return ESP_OK;
|
|
|
@@ -831,7 +834,7 @@ esp_err_t ieee802154_cca(void)
|
|
|
ieee802154_pib_update();
|
|
|
|
|
|
start_ed(CCA_DETECTION_TIME);
|
|
|
- s_ieee802154_state = IEEE802154_STATE_CCA;
|
|
|
+ ieee802154_set_state(IEEE802154_STATE_CCA);
|
|
|
|
|
|
ieee802154_exit_critical();
|
|
|
return ESP_OK;
|