From adfc7e798b9cbdd022bf8df971843436912a0fe5 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期日, 20 七月 2025 16:58:30 +0800
Subject: [PATCH] 成功移植g_com_map表逻辑,初步测试能读能写,并且TDOA效果和官方一致

---
 keil/include/components/app/src/ranging_fira.c |  264 +++++++++++++++++++++++++++-------------------------
 1 files changed, 136 insertions(+), 128 deletions(-)

diff --git a/keil/include/components/app/src/ranging_fira.c b/keil/include/components/app/src/ranging_fira.c
index 0502ed5..aebe022 100644
--- a/keil/include/components/app/src/ranging_fira.c
+++ b/keil/include/components/app/src/ranging_fira.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and
+ * Copyright (c) 2019-2025 Beijing Hanwei Innovation Technology Ltd. Co. and
  * its subsidiaries and affiliates (collectly called MKSEMI).
  *
  * All rights reserved.
@@ -51,7 +51,7 @@
 #ifdef RADAR_EN
 #include "uwb_radar.h"
 #endif
-#if KF_EN
+#if FILTER_EN
 #include "lib_kf.h"
 #endif
 #if PDOA_3D_EN
@@ -61,18 +61,19 @@
 #include "board.h"
 
 #if PDOA_3D_EN
-#define PDOA_3D_SUPPORT_NUM 100
+#define PDOA_3D_SUPPORT_NUM 10
 #define PDOA_3D_TIMEOUT_MS 2000
 static struct PDOA_3D_MAC_ADDR_T mac_addr_cache[PDOA_3D_SUPPORT_NUM];
 static struct PDOA_3D_PDOA_DATA_T pdoa_data_cache[PDOA_3D_SUPPORT_NUM];
 #endif
 
-#if KF_EN && FILTER_EN
+#if FILTER_EN
 #define KF_SUPPORT_NUM 3
 #define KF_TIMEOUT_MS 2000
 static struct KF_MAC_ADDR_T kf_mac_addr_cache[KF_SUPPORT_NUM];
 static struct KF_CHANNEL_CACHE_T kf_channel_cache[KF_SUPPORT_NUM];
 static struct KF_MAT_VALUE_CACHE_T kf_mat_value_cache[KF_SUPPORT_NUM];
+extern void ranging_result_filter(uint8_t *mac_addr, uint16_t *distance, int16_t *azimuth, int16_t *elevation);
 #endif
 
 struct RANGING_ENV_T ranging_env;
@@ -91,6 +92,8 @@
     .session_responder_num_get = ranging_responder_num_get,
     .session_responder_addr_get = ranging_responder_addr_get,
     .session_dynamic_update_responder_list = ranging_dynamic_update_respoder_list,
+    .session_initiator_addr_set = ranging_initiator_addr_set,
+    .session_controller_addr_set = ranging_controller_addr_set,
     .session_set_ccc_ursk = NULL,
 #ifdef RADAR_EN
     .vendor_session_configure = uwb_radar_configure,
@@ -141,20 +144,26 @@
 
 void ranging_configure(void)
 {
+    uwb_app_config.ranging_stage = RANGING_IDLE;
+
+    uwbs_configure(PHY_TX | PHY_RX, uwb_app_config.session_param.tx_power_level);
+
     fira_keys_generate();
 
     aes_update_key(AES_ID0, &fira_key.devPayKey.ukey.keyByte[0]);
     mac_update_ccm_key((uint32_t *)&fira_key.devPayKey.ukey.keyWord[0]);
 
-    uwb_app_config.ranging_stage = RANGING_IDLE;
-
-    ranging_env.uwb_period_prefetch_time = UWB_PERIOD_PREFETCH_TIME + LPM_PPM_COMPENSATION(LOW_POWER_CLOCK_PPM, uwb_app_config.session_param.ranging_interval);
     ranging_env.uwb_evt_prefetch_time = UWB_EVT_PREFETCH_TIME;
     ranging_env.uwb_rx_open_in_advance = UWB_RX_OPEN_IN_ADVANCE;
     ranging_env.uwb_rx_window = UWB_RX_WINDOW;
-    ranging_env.uwb_rx_open_in_advance_wakeup =
-        UWB_RX_OPEN_IN_ADVANCE + LPM_PPM_COMPENSATION(LOW_POWER_CLOCK_PPM, uwb_app_config.session_param.ranging_interval);
-    ranging_env.uwb_rx_window_wakeup = UWB_RX_WINDOW + LPM_PPM_COMPENSATION(LOW_POWER_CLOCK_PPM, uwb_app_config.session_param.ranging_interval);
+
+    uint32_t compensation = 0;
+#if LOW_POWER_EN
+    compensation += LPM_PPM_COMPENSATION(LOW_POWER_CLOCK_PPM, uwb_app_config.session_param.ranging_interval) + US_TO_PHY_TIMER_COUNT(80);
+#endif
+    ranging_env.uwb_period_prefetch_time = UWB_PERIOD_PREFETCH_TIME + compensation;
+    ranging_env.uwb_rx_open_in_advance_wakeup = UWB_RX_OPEN_IN_ADVANCE + compensation;
+    ranging_env.uwb_rx_window_wakeup = UWB_RX_WINDOW + 2 * compensation;
     ranging_env.ranging_period = MS_TO_PHY_TIMER_COUNT(uwb_app_config.session_param.ranging_interval);
 
     ranging_env.slots_per_block = (uint16_t)(uwb_app_config.session_param.ranging_interval / RSTU_TO_MS(uwb_app_config.session_param.slot_duration));
@@ -165,13 +174,19 @@
     ranging_env.nround_inblock = ranging_env.slots_per_block / uwb_app_config.session_param.slots_per_round;
     ranging_env.enable = 0;
 
-    ranging_env.slot_idx = 0;
-    // initial value of one-to-one case
-    ranging_env.responder_slot_idx[SLOT_RESPONSE] = 2; // for response
-    ranging_env.responder_slot_idx[SLOT_FINAL] = 3;    // for final
-    ranging_env.responder_slot_idx[SLOT_REPORT] = 4;   // for report
-    ranging_env.responder_slot_idx[SLOT_RESULT] = 5;   // for result
     ranging_env.tof = 0;
+    ranging_env.slot_idx = 0;
+
+    if ((uwb_app_config.session_param.device_type == DEV_TYPE_CONTROLLER) && (uwb_app_config.session_param.device_role == DEV_ROLE_RESPONDER))
+    {
+        uint8_t responder_idx = ranging_responder_idx_get(uwbs_local_short_addr_get());
+        uint8_t responder_num = ranging_responder_num_get();
+
+        ranging_env.responder_slot_idx[SLOT_RESPONSE] = RESPONSE_SLOT_IDX(responder_idx, responder_num); // for response
+        ranging_env.responder_slot_idx[SLOT_FINAL] = FINAL_SLOT_IDX(responder_idx, responder_num);       // for final
+        ranging_env.responder_slot_idx[SLOT_REPORT] = REPORT_SLOT_IDX(responder_idx, responder_num);     // for report
+        ranging_env.responder_slot_idx[SLOT_RESULT] = RESULT_SLOT_IDX(responder_idx, responder_num);     // for result
+    }
 
     ranging_env.range_data.ranging_type = 0x1; // TWR (SS-TWR, DS-TWR)
     ranging_env.range_data.ranging_interval = uwb_app_config.session_param.ranging_interval;
@@ -189,14 +204,8 @@
         ranging_env.phy_sts_index = fira_key.phyStsIdxInit - ranging_env.slots_per_block;
     }
 
-    uwbs_configure(PHY_TX | PHY_RX, uwb_app_config.session_param.tx_power_level);
-
-#if CSI_EN
-    ranging_aux_out_opt_set(CH_LEN_DEFAULT, 3);
-#endif
-
 #if (ANT_PATTERN == ANT_PATTERN_SQUARE)
-    struct AOA_ANGLE_SPAN_T aoa_span;
+    angle_span_t aoa_span;
     aoa_span.Ndim = 2;
     aoa_span.el_low = 90;
     aoa_span.el_high = 90;
@@ -208,33 +217,45 @@
 #endif
 
 #if AOA_EN
-    aoa_aux_info_set(AOA_AUX_ANT_IQ_RSSI_PDOA_AOA_FOM);
-    aoa_steering_vector_set((const float *)((uint32_t)((uwb_app_config.ppdu_params.ch_num == 9) ? svec_ch9_ptr : svec_ch5_ptr) | SRAM_BASE));
+    sts_param_config(uwb_app_config.ppdu_params->sts_pkt_cfg, STS_AUX_ANT_IQ_RSSI_PDOA_AOA_FOM, STS_BUF_NUM, STS_BUF_SIZE);
+    aoa_steering_vector_set((const float *)((uint32_t)((uwb_app_config.ppdu_params->ch_num == 9) ? svec_ch9_ptr : svec_ch5_ptr) | SRAM_BASE));
 #else
-    aoa_aux_info_set(AOA_AUX_ANT_IQ_RSSI);
+    sts_param_config(uwb_app_config.ppdu_params->sts_pkt_cfg, STS_AUX_ANT_IQ_RSSI, STS_BUF_NUM, STS_BUF_SIZE);
 #endif
 
-    aoa_param_config();
-
 #if PDOA_3D_EN
-    pdoa_3d_param_config(ANT_PATTERN, ANT_LAYOUT, PDOA_3D_AMBIGUITY_LEVEL_HIGH, mac_addr_cache, pdoa_data_cache, PDOA_3D_SUPPORT_NUM, PDOA_3D_TIMEOUT_MS);
+    pdoa_3d_param_config(ANT_PATTERN, ANT_LAYOUT, PDOA_3D_AMBIGUITY_LEVEL_NONE, mac_addr_cache, pdoa_data_cache, PDOA_3D_SUPPORT_NUM, PDOA_3D_TIMEOUT_MS);
     // pdoa_angle_reverse_set(1, 0);
 #endif
 
 #if FILTER_EN
     if (uwb_app_config.filter_en)
     {
-#if KF_EN
-        loc_post_kf_config(uwb_app_config.session_param.ranging_interval, kf_mac_addr_cache, kf_channel_cache, kf_mat_value_cache, KF_SUPPORT_NUM,
-                           KF_TIMEOUT_MS);
-#else
-        loc_post_filter_config(uwb_app_config.session_param.ranging_interval, 1, uwb_app_config.session_param.aoa_result_req);
-#endif
+        uint32_t update_period_ms = uwb_app_config.session_param.ranging_interval;
+        loc_post_kf_config(update_period_ms, kf_mac_addr_cache, kf_channel_cache, kf_mat_value_cache, KF_SUPPORT_NUM, KF_TIMEOUT_MS);
     }
 #endif
 
     LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_FIRA, "slot duration %d slots per round %d ranging interval %d\r\n",
              uwb_app_config.session_param.slot_duration, uwb_app_config.session_param.slots_per_round, uwb_app_config.session_param.ranging_interval);
+
+#if RANGING_FOM_FILTER_EN
+    ranging_debug_csi_en_set(1);
+#endif
+
+    if (uwb_app_config.session_param.sts_config == STS_DYNAMIC)
+    {
+        mac_ifs_set(PHY_LIFS_PERIOD_MACCLK_LONG, PHY_SIFS_PERIOD_MACCLK_LONG);
+    }
+
+    LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_FIRA, "Local %x\r\n", uwbs_local_short_addr_get());
+    LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_FIRA, "Peer %x\r\n", uwbs_peer_short_addr_get());
+    LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_FIRA, "Controller %x\r\n", ranging_controller_addr_get());
+    LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_FIRA, "Initiator %x\r\n", ranging_initiator_addr_get());
+    for (uint8_t i = 0; i < ranging_responder_num_get(); i++)
+    {
+        LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_FIRA, "Responder[%d] %x\r\n", i, ranging_responder_addr_get(i));
+    }
 }
 
 void ranging_start(void)
@@ -243,13 +264,11 @@
     ranging_env.lost_cnt = 0xFF;
     ranging_env.anchor_point = phy_timer_count_get();
     ranging_env.slot_idx = 0;
-#if FIRA_TEST_EN
     ranging_env.num_of_measure = 0;
-    uwb_app_config.session_param.result_report_config = (uwb_app_config.session_param.aoa_result_req) ? 0x0F : 1;
-#endif
+    uwb_app_config.session_param.result_report_config = (uwb_app_config.session_param.aoa_result_req) ? uwb_app_config.session_param.result_report_config : 1;
+
     ranging_env.is_hopping = uwb_app_config.session_param.hopping_mode;
-    enum DEV_ROLE_T role = uwb_app_config.session_param.device_role;
-    if ((role == DEV_ROLE_INITIATOR) || (role == DEV_ROLE_GATE_CONTROLLER))
+    if (uwb_app_config.session_param.device_type == DEV_TYPE_CONTROLLER)
     {
         uwb_app_config.ranging_stage = RANGING_RCM;
         phy_timer_target_set(ranging_env.anchor_point + ranging_env.ranging_period - ranging_env.uwb_period_prefetch_time, session_timer_callback);
@@ -262,12 +281,8 @@
         ranging_env.round_offset_in_block = 0;
         ranging_env.next_round_index = 0;
         uwb_app_config.ranging_stage = RANGING_SYNC;
-        phy_sts_pkt_cfg_set(SP0);
-        ranging_update_slot_index(ranging_env.slot_idx);
-        power_on_radio(0, 1);
-        mac_rx(EVT_MODE_MAC_PHY_ASAP, 0, ranging_env.ranging_period);
-        mac_start();
-        power_mode_request(POWER_UNIT_APP, POWER_MODE_SLEEP);
+        phy_timer_target_set(ranging_env.anchor_point + ranging_env.ranging_period / 2, session_timer_callback);
+        power_mode_request(POWER_UNIT_APP, POWER_MODE_POWER_DOWN);
     }
 
     ranging_env.count = 0;
@@ -296,7 +311,7 @@
 
 int8_t ranging_tx_power_get(void)
 {
-    return uwb_tx_power_get(uwb_app_config.ppdu_params.ch_num, uwb_app_config.session_param.tx_power_level);
+    return uwb_tx_power_get(uwb_app_config.ppdu_params->ch_num, uwb_app_config.session_param.tx_power_level);
 }
 
 void ranging_measurements_clear(void)
@@ -310,32 +325,13 @@
 
 void ranging_monitor_start(uint32_t time_ms)
 {
-    WsfTimerStartMs(&ranging_cb.daemon_timer, time_ms, WSF_TIMER_PERIODIC);
+    mk_timer_list_start_timer(&ranging_cb.daemon_timer, time_ms, MK_TIMER_PERIODIC);
 }
 
 void ranging_monitor_stop(void)
 {
-    WsfTimerStop(&ranging_cb.daemon_timer);
+    mk_timer_list_stop_timer(&ranging_cb.daemon_timer);
 }
-
-#if MCTT_TEST_EN
-extern void ranging_round_print_ind(void);
-void ranging_round_print_ind(void)
-{
-    struct RANGING_ROUND_PRINT_IND_T *ind;
-    if ((ind = WsfMsgAlloc(sizeof(struct RANGING_ROUND_PRINT_IND_T))) != NULL)
-    {
-        ind->hdr.event = RANGING_ROUND_PRINT_MSG;
-
-        // Send the message
-        WsfMsgSend(ranging_cb.handle_id, ind);
-    }
-    else
-    {
-        LOG_WARNING(TRACE_MODULE_UWB, "memory is not enough for RANGING_ROUND_PRINT_IND_T\r\n");
-    }
-}
-#endif
 
 void uwb_pkt_tx_done_ind(const struct MAC_HW_REPORT_T *tx, enum RANGING_STAGE_T stage, uint8_t slot_idx)
 {
@@ -346,10 +342,6 @@
         ind->ranging_stage = (uint8_t)stage;
         ind->slot_idx = slot_idx;
         ind->status = tx->err_code;
-#if MCTT_TEST_EN
-        ind->timestamp = tx->timestamp;
-        ind->phy_shr_duration = phy_shr_duration();
-#endif
         ind->tx_len = tx->pkt_len;
 
         if ((ind->tx_len) && (tx->pkt_data != NULL))
@@ -381,12 +373,9 @@
         ind->ranging_stage = (uint8_t)stage;
         ind->slot_idx = slot_idx;
         ind->status = rx->err_code;
-        ind->rssi = rx->rssi;
-        ind->snr = rx->snr;
-
-#if MCTT_TEST_EN
-        ind->timestamp = rx->timestamp;
-#endif
+        // ind->rssi = rx->rssi;
+        ind->rssi = correct_rssi(rx->rssi);
+        ind->snr = correct_snr(rx->snr);
 
         if (rx->err_code == UWB_RX_OK)
         {
@@ -403,9 +392,47 @@
             ind->rx_len = rx->pkt_len;
         }
 
-#if MCTT_TEST_EN
-        ind->phy_header = rx->phy_header;
+#if RANGING_FOM_FILTER_EN
+        if (ranging_debug_csi_en_get())
+        {
+            uint8_t frame_idx = 0;
+            if (ind->ranging_stage == RANGING_RIM)
+            {
+                frame_idx = 1;
+            }
+            else if (ind->ranging_stage == RANGING_RFM)
+            {
+                frame_idx = 2;
+            }
+            else if (ind->ranging_stage == RANGING_MRM)
+            {
+                frame_idx = 3;
+            }
+            else if (ind->ranging_stage == RANGING_RRRM)
+            {
+                frame_idx = 1;
+            }
+
+            debug_csi.frame_idx = frame_idx;
+
+            uint32_t val = REG_READ(0x40003050);
+            debug_csi.frame[frame_idx].rf_gain = (val & 0x07);
+            debug_csi.frame[frame_idx].bb_gain = ((val >> 3) & 0x1f);
+            debug_csi.frame[frame_idx].bd_cnt = phy_bd_cnt_get();
+            debug_csi.frame[frame_idx].sfd_cnt = phy_sfd_cnt_get();
+            debug_csi.frame[frame_idx].error_code = ind->status;
+
+            if (rx->err_code != 0x0830)
+            {
+                debug_csi.frame[frame_idx].rssi = ind->rssi;
+                debug_csi.frame[frame_idx].snr = ind->snr;
+                debug_csi.frame[frame_idx].channel_power = REG_READ(0x40002064);
+                debug_csi.frame[frame_idx].noise_power = REG_READ(0x40002078);
+                debug_csi.frame[frame_idx].freq_offset = phy_freq_offset_get();
+            }
+        }
 #endif
+
         // Send the message
         WsfMsgSend(ranging_cb.handle_id, ind);
         return ind->status;
@@ -420,14 +447,20 @@
 #pragma clang diagnostic pop
 #endif
 
-void distance_result_filter(uint8_t *mac_addr, uint16_t *distance)
+#if FILTER_EN
+/**
+ * @brief Filter distance result.
+ *
+ * @param [in] mac_addr             Pointer of device MAC address
+ * @param [inout] distance          Pointer of ranging distance result
+ */
+static void distance_result_filter(uint8_t *mac_addr, uint16_t *distance)
 {
     if (distance == NULL)
     {
         return;
     }
 
-#if KF_EN
     float post_range;
     float range_meas = (float)*distance / 100;
     // call filter
@@ -435,17 +468,22 @@
     // update distance
     *distance = (uint16_t)(post_range * 100);
     // LOG_INFO(TRACE_MODULE_APP, "Peer %X, $%u %u;\r\n", READ_SHORT(mac_addr), (uint16_t)(range_meas*100),(uint16_t)(post_range*100));
-#endif
 }
 
-void angle_result_filter(uint8_t *mac_addr, int16_t *angle, uint8_t type)
+/**
+ * @brief Filter angle result.
+ *
+ * @param [in] mac_addr             Pointer of device MAC address
+ * @param [inout] angle             Pointer of angle result
+ * @param [in] type                 azimuth or elevation
+ */
+static void angle_result_filter(uint8_t *mac_addr, int16_t *angle, uint8_t type)
 {
     if (angle == NULL)
     {
         return;
     }
 
-#if KF_EN
     float post_angle;
     float angle_meas = mk_q7_to_f32(*angle);
     // call filter
@@ -453,12 +491,18 @@
     // update angle
     *angle = mk_f32_to_q7(post_angle);
     // LOG_INFO(TRACE_MODULE_APP, "Peer %X, $%d %d;\r\n", READ_SHORT(mac_addr), (int16_t)angle_meas,(int16_t)post_angle);
-#endif
 }
 
+/**
+ * @brief Filter ranging result.
+ *
+ * @param [in] mac_addr             Pointer of device MAC address
+ * @param [inout] distance          Pointer of ranging distance result
+ * @param [inout] azimuth           Pointer of azimuth result
+ * @param [inout] elevation         Pointer of elevation result
+ */
 void ranging_result_filter(uint8_t *mac_addr, uint16_t *distance, int16_t *azimuth, int16_t *elevation)
 {
-#if KF_EN
     if (distance)
     {
         distance_result_filter(mac_addr, distance);
@@ -471,31 +515,13 @@
     {
         angle_result_filter(mac_addr, elevation, KF_DATA_TYPE_ELEVATION);
     }
-#else
-    // do not support multi-channel
-    if ((distance == NULL) || (azimuth == NULL))
-    {
-        return;
-    }
-
-    float post_range, post_azimuth;
-    int azimuth_meas = mk_q7_to_s16(*azimuth);
-    float range_meas = (float)*distance;
-    // call filter
-    loc_post_filter(0, range_meas, azimuth_meas, &post_range, &post_azimuth);
-    // update distance
-    *distance = (uint16_t)(post_range);
-    // update angle
-    *azimuth = mk_f32_to_q7(post_azimuth);
-
-    // LOG_INFO(TRACE_MODULE_APP, "$%u %u %d %d;\r\n", (uint16_t)(range_meas*100), (uint16_t)(post_range*100),(int16_t)azimuth_meas, (int16_t)post_azimuth);
-#endif
 }
+#endif
 
 int measure_report_handler(const struct UWB_PKT_RX_DONE_IND_T *ind)
 {
     int ret = 0;
-    struct RANGING_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[0];
+    struct TWR_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[0];
 
     if (uwb_app_config.session_param.ranging_round_usage == DS_TWR_DEFERRED || uwb_app_config.session_param.ranging_round_usage == DS_TWR)
     {
@@ -549,7 +575,6 @@
     }
     else if (uwb_app_config.session_param.ranging_round_usage == SS_TWR_DEFERRED)
     {
-#if FIRA_TEST_EN
         volatile int64_t Tround = 0;
         volatile int64_t Treply = ranging_treply(DEV_ROLE_RESPONDER, 0);
         // Measurement Report Message Type 2
@@ -566,31 +591,14 @@
                 break;
             }
         }
-#else
-        int64_t Tround = 0;
-        int64_t Treply = ranging_treply(DEV_ROLE_RESPONDER, 0);
 
-        // 34    --> Message Control
-        // 35-36 --> Round Index
-        // 37... --> Round-trip Time List
-        uint8_t responder_num = (ind->rx_data[34] >> 2);
-        for (uint8_t n = 0; n < responder_num; n++)
-        {
-            uint16_t addr = READ_SHORT(&ind->rx_data[37 + 6 * n]);
-            if (addr == uwbs_local_short_addr_get())
-            {
-                Tround = READ_WORD(&ind->rx_data[39 + 6 * n]);
-                break;
-            }
-        }
-#endif
         // LOG_INFO(TRACE_MODULE_FIRA, "Tround: %lld, Treply: %lld\r\n", Tround, Treply);
 
         if ((Tround) && (Treply))
         {
             // corrected by frequency offset
-            // Treply = (int64_t)((double)Treply * (1 - (double)ranging_env.freq_offset_filter / ch_center_freq_map[uwb_app_config.ppdu_params.ch_num]));
-            Tround = (int64_t)((double)Tround * (1 + (double)ranging_env.freq_offset_filter / ch_center_freq_map[uwb_app_config.ppdu_params.ch_num]));
+            // Treply = (int64_t)((double)Treply * (1 - (double)ranging_env.freq_offset_filter / uwb_ch_freq_table[uwb_app_config.ppdu_params->ch_num]));
+            Tround = (int64_t)((double)Tround * (1 + (double)ranging_env.freq_offset_filter / uwb_ch_freq_table[uwb_app_config.ppdu_params->ch_num]));
 
             int64_t tof_i = (Tround - Treply) / 2;
 
@@ -711,7 +719,7 @@
         uint16_t target_addr = ranging_responder_addr_get(responder_idx);
         double tof_f = (double)TIMESTAMP_UNIT_TO_NS(tof);
 
-        struct RANGING_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[responder_idx];
+        struct TWR_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[responder_idx];
 
         range_result->mac_addr[0] = target_addr & 0xff;
         range_result->mac_addr[1] = (target_addr >> 8) & 0xff;

--
Gitblit v1.9.3