From e328ebef585cea2351b37117b2d5ac4978ecd3c0 Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期二, 11 二月 2025 14:57:23 +0800
Subject: [PATCH] 1111111

---
 keil/include/components/app/src/ranging_fira_task.c |   59 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 40 insertions(+), 19 deletions(-)

diff --git a/keil/include/components/app/src/ranging_fira_task.c b/keil/include/components/app/src/ranging_fira_task.c
index 32cc98f..3e0dfe9 100644
--- a/keil/include/components/app/src/ranging_fira_task.c
+++ b/keil/include/components/app/src/ranging_fira_task.c
@@ -111,15 +111,22 @@
             {
                 const struct UWB_PKT_TX_DONE_IND_T *ind = (const struct UWB_PKT_TX_DONE_IND_T *)param;
 
+                if (ind->status != UWB_TX_OK)
+                {
+                    LOG_INFO(TRACE_MODULE_APP, "UWB TX fail  0x%04x\r\n", ind->status);
+                    break;
+                }
+
                 if (ind->slot_idx == 0)
                 {
                     ranging_env.range_data.sequence_num = (ranging_env.phy_sts_index - fira_key.phyStsIdxInit) / ranging_env.slots_per_block;
                     uint8_t work_mode_idx = uwb_app_config.session_param.ranging_round_usage < 5 ? uwb_app_config.session_param.ranging_round_usage : 0;
 #if MCTT_TEST_EN
-                    LOG_INFO(TRACE_NO_OPTION, "%s Init-seq:%u\r\n", work_mode_table[work_mode_idx], ranging_env.range_data.sequence_num + 1);
+                    LOG_INFO(TRACE_NO_OPTION, "%s Init-seq:%u Ridx:%d\r\n", work_mode_table[work_mode_idx], ranging_env.range_data.sequence_num,
+                             ranging_env.next_round_index);
 #else
                     LOG_INFO(TRACE_MODULE_APP | TRACE_NO_OPTION, "\r\n");
-                    LOG_INFO(TRACE_MODULE_APP, "FiRa %s Initiator SEQ NUM %u\r\n", work_mode_table[work_mode_idx], ranging_env.range_data.sequence_num);
+                    LOG_INFO(TRACE_MODULE_APP, "FiRa %s Controller SEQ NUM %u\r\n", work_mode_table[work_mode_idx], ranging_env.range_data.sequence_num);
 #endif
                     uwb_app_config.ranging_count++;
 
@@ -190,11 +197,11 @@
                         uint8_t work_mode_idx = uwb_app_config.session_param.ranging_round_usage < 5 ? uwb_app_config.session_param.ranging_round_usage : 0;
                         ranging_env.range_data.sequence_num = (ranging_env.phy_sts_index - fira_key.phyStsIdxInit) / ranging_env.slots_per_block;
 #if MCTT_TEST_EN
-                        LOG_INFO(TRACE_NO_OPTION, "%s Resp-seq:%u Ridx:%d\r\n", work_mode_table[work_mode_idx], ranging_env.range_data.sequence_num + 1,
+                        LOG_INFO(TRACE_NO_OPTION, "%s Resp-seq:%u Ridx:%d\r\n", work_mode_table[work_mode_idx], ranging_env.range_data.sequence_num,
                                  ranging_env.next_round_index);
 #else
                         LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_APP | TRACE_NO_OPTION, "\r\n");
-                        LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_APP, "FiRa %s Responder SEQ NUM %u\r\n", work_mode_table[work_mode_idx],
+                        LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_APP, "FiRa %s Controlee SEQ NUM %u\r\n", work_mode_table[work_mode_idx],
                                  ranging_env.range_data.sequence_num);
 #endif
                         // clear last round measurement
@@ -205,7 +212,8 @@
 #if MCTT_TEST_EN == 0
                         LOG_INFO(TRACE_MODULE_APP, "CH Freq Offset %d\r\n", ranging_env.freq_offset_filter);
 #endif
-#if XTAL_AUTO_TUNE_EN
+
+#if (X38M4_AUTO_TUNE_EN == 1)
                         int32_t ppm = ranging_env.freq_offset_filter / (int32_t)(ch_center_freq_map[uwb_app_config.ppdu_params.ch_num] * 1e-6);
                         calib_xtal38m4_load_cap_auto_tune(ppm);
 #endif
@@ -213,7 +221,7 @@
 
                     if (ind->ranging_stage == RANGING_RIM || ind->ranging_stage == RANGING_RRM)
                     {
-                        struct RANGING_MEASUREMENT_T *range_result = 0;
+                        struct TWR_MEASUREMENT_T *range_result = 0;
                         if (ind->ranging_stage == RANGING_RIM)
                         {
                             range_result = &ranging_env.range_data.measurements[0];
@@ -326,7 +334,7 @@
                     }
                     else if (ind->ranging_stage == RANGING_RFM)
                     {
-                        struct RANGING_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[0];
+                        struct TWR_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[0];
                         uint8_t NLoS, FoM;
                         ranging_fom_get(&NLoS, &FoM);
                         if (NLoS > range_result->NLoS)
@@ -369,7 +377,7 @@
                         if (res)
                         {
                             // LOG_INFO(TRACE_MODULE_APP, "ToF %d\r\n", ranging_env.tof);
-                            struct RANGING_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[0];
+                            struct TWR_MEASUREMENT_T *range_result = &ranging_env.range_data.measurements[0];
                             ranging_env.range_data.measurements_num = 1;
                             range_result->status = STATUS_OK;
 
@@ -410,9 +418,15 @@
                                      range_result->distance, mk_q7_to_s16(range_result->aoa_azimuth), mk_q7_to_s16(range_result->aoa_elevation),
                                      range_result->aoa_azimuth_fom);
 #elif AOA_EN
+#if MCTT_TEST_EN
+                            LOG_INFO(TRACE_NO_OPTION, "dt.%d.%d.%d\r\n", range_result->distance, mk_q7_to_s16(range_result->aoa_azimuth),
+                                     mk_q7_to_s16(range_result->aoa_elevation));
+#else
                             LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_APP, "Distance %ucm, AoA Azimuth %d Elevation %d Azimuth FoM %u\r\n",
                                      range_result->distance, mk_q7_to_s16(range_result->aoa_azimuth), mk_q7_to_s16(range_result->aoa_elevation),
                                      range_result->aoa_azimuth_fom);
+
+#endif
 #else
                             LOG_INFO(TRACE_NO_REPORT_HOST | TRACE_MODULE_APP, "Distance %ucm\r\n", (int16_t)range_result->distance);
 #endif
@@ -435,6 +449,10 @@
 
                             // int8_t expected_rssi = ranging_expected_rssi_get(ranging_tx_power_get(), range_result->distance, 2, 0);
                             // LOG_INFO(TRACE_MODULE_APP, "Expected RSSI: %ddBm\r\n", expected_rssi);
+
+                            // calculate_first_tap_power(1, 2);
+                            // print_preamble_chest(ranging_env.range_data.sequence_num, 1, 2);
+                            // print_sts_ch_taps(1, 2);
                         }
                     }
 
@@ -442,20 +460,14 @@
 #if MCTT_TEST_EN
                     if (ind->ranging_stage == RANGING_RCM || ind->ranging_stage == RANGING_MRM || ind->ranging_stage == RANGING_RRRM)
                     {
-                        if (ind->ranging_stage != RANGING_RRRM)
-                        {
-                            LOG_INFO(TRACE_NO_LEVEL_TAG | TRACE_NO_MODULE_NAME, "r%s tp=%x,%x,%x,%d\r\n", fira_fsm_table[stage_idx], ind->timestamp,
-                                     ind->phy_header, ranging_env.phy_sts_index, ind->slot_idx);
-                        }
-                        else
-                        {
-                            LOG_INFO(TRACE_NO_LEVEL_TAG | TRACE_NO_MODULE_NAME, "r%s,%x,%x,%d\r\n", fira_fsm_table[stage_idx], ind->phy_header,
-                                     ranging_env.phy_sts_index, ind->slot_idx);
-                        }
+                        // uint32_t sts_index = fira_key.phyStsIdxInit + ranging_env.curr_round_index * uwb_app_config.session_param.slots_per_round;
+                        LOG_INFO(TRACE_NO_LEVEL_TAG | TRACE_NO_MODULE_NAME, "r%s tp=%x,%x,%x,%d\r\n", fira_fsm_table[stage_idx], ind->timestamp,
+                                 ind->phy_header, ranging_env.phy_sts_index, ind->slot_idx);
                     }
                     else
                     {
-                        LOG_INFO(TRACE_NO_LEVEL_TAG | TRACE_NO_MODULE_NAME, "r%s\r\n", fira_fsm_table[stage_idx]);
+                        LOG_INFO(TRACE_NO_LEVEL_TAG | TRACE_NO_MODULE_NAME, "r%s tp=%x,%x,%x\r\n", fira_fsm_table[stage_idx], ind->timestamp,
+                                 ranging_env.curr_round_index, ranging_env.range_data.sequence_num);
                     }
 #else
 #if DYNAMIC_UPDATE_MAIN_ANTENNA_EN
@@ -489,6 +501,11 @@
                         if ((payload_print_len + ind->rx_len) < PAYLOAD_BUF_MAX)
                         {
                             memcpy(payload_print_buf + payload_print_len, ind->rx_data, ind->rx_len);
+                            if (uwb_app_config.session_param.sts_config == STS_DYNAMIC)
+                            {
+                                extern uint8_t vendor_oui_output[16];
+                                memcpy(payload_print_buf + payload_print_len + 10, vendor_oui_output, 16);
+                            }
                             payload_print_len += ind->rx_len;
                         }
                         else
@@ -520,6 +537,10 @@
                     {
                         // output result (notify)
                         uwbapi_report_ranging_data(&ranging_env.range_data);
+
+                        // calculate_first_tap_power(0, 1);
+                        // print_preamble_chest(ranging_env.range_data.sequence_num, 0, 1);
+                        // print_sts_ch_taps(0, 1);
                     }
                 }
             }

--
Gitblit v1.9.3