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