diff --git a/components/ieee802154/driver/esp_ieee802154_dev.c b/components/ieee802154/driver/esp_ieee802154_dev.c index a6d7bdec93..0f167bdaca 100644 --- a/components/ieee802154/driver/esp_ieee802154_dev.c +++ b/components/ieee802154/driver/esp_ieee802154_dev.c @@ -44,6 +44,7 @@ static bool s_rf_closed = true; #define CCA_DETECTION_TIME 8 extern void ieee802154_txon_delay_set(void); +extern uint32_t bt_bb_get_cur_rx_info(void); IEEE802154_STATIC volatile ieee802154_state_t s_ieee802154_state; static uint8_t *s_tx_frame = NULL; @@ -167,7 +168,7 @@ static IEEE802154_NOINLINE void ieee802154_rx_frame_info_update(void) int8_t ieee802154_get_recent_rssi(void) { - return s_rx_frame_info[s_recent_rx_frame_info_index].rssi; + return (int8_t)(bt_bb_get_cur_rx_info() & 0xff); } uint8_t ieee802154_get_recent_lqi(void) diff --git a/components/openthread/src/port/esp_openthread_radio.c b/components/openthread/src/port/esp_openthread_radio.c index e83acb58ae..e03cca6fd4 100644 --- a/components/openthread/src/port/esp_openthread_radio.c +++ b/components/openthread/src/port/esp_openthread_radio.c @@ -661,8 +661,8 @@ esp_err_t IRAM_ATTR esp_ieee802154_enh_ack_generator(uint8_t *frame, esp_ieee802 #if OPENTHREAD_CONFIG_MLE_LINK_METRICS_SUBJECT_ENABLE otMacFrameGetSrcAddr(&ot_frame, &mac_addr); - link_metrics_data_len = otLinkMetricsEnhAckGenData(&mac_addr, esp_ieee802154_get_recent_lqi(), - esp_ieee802154_get_recent_rssi(), link_metrics_data); + link_metrics_data_len = otLinkMetricsEnhAckGenData(&mac_addr, frame_info->lqi, + frame_info->rssi, link_metrics_data); if (link_metrics_data_len > 0) { offset += otMacFrameGenerateEnhAckProbingIe(ack_ie_data, link_metrics_data, link_metrics_data_len); }