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/ul_tdoa.c | 31 +++++++++++++------------------ 1 files changed, 13 insertions(+), 18 deletions(-) diff --git a/keil/include/components/app/src/ul_tdoa.c b/keil/include/components/app/src/ul_tdoa.c index 43f7d63..1e049f6 100644 --- a/keil/include/components/app/src/ul_tdoa.c +++ b/keil/include/components/app/src/ul_tdoa.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. @@ -118,10 +118,11 @@ srand(seed); LOG_INFO(TRACE_MODULE_APP, "Random seed %u\r\n", seed); - phy_rx_sts_switch_mode_set(uwb_app_config.ppdu_params.sts_pkt_cfg, STS_NEVER_SWITCH, 0, 0); uwbs_configure(PHY_TX | PHY_RX, uwb_app_config.session_param.tx_power_level); - aoa_param_config(); + phy_rx_sts_switch_mode_set(uwb_app_config.ppdu_params->sts_pkt_cfg, STS_NEVER_SWITCH, 0, 0); + + sts_param_config(uwb_app_config.ppdu_params->sts_pkt_cfg, STS_AUX_ANT_IQ_RSSI, STS_BUF_NUM, STS_BUF_SIZE); } static uint32_t ul_tdoa_tx_offset_get(void) @@ -258,10 +259,8 @@ } if (count > MS_TO_PHY_TIMER_COUNT(2)) { - power_on_radio(0, 1); ul_tdoa_env.stage = UL_TDOA_LISTEN; - mac_rx(EVT_MODE_MAC_PHY_ASAP, 0, count - MS_TO_PHY_TIMER_COUNT(2)); - mac_start(); + uwb_rx(RX_MODE_IMMEDIATE, 0, count - MS_TO_PHY_TIMER_COUNT(2)); } else { @@ -276,10 +275,8 @@ } else { - power_on_radio(0, 1); ul_tdoa_env.stage = UL_TDOA_LISTEN; - mac_rx(EVT_MODE_MAC_PHY_ASAP, 0, ul_tdoa_env.random_window); - mac_start(); + uwb_rx(RX_MODE_IMMEDIATE, 0, ul_tdoa_env.random_window); } ul_tdoa_env.enable = 1; @@ -301,14 +298,16 @@ enum OWR_MESSAGE_TYPE_T type = (uwb_app_config.session_param.device_role == DEV_ROLE_UT_SYNC_ANCHOR ? OWR_SYNV_UTM : OWR_BLINK_UTM); ul_tdoa_pkt_construct(type, tx_time); - power_on_radio(1, 0); - mac_tx(EVT_MODE_MAC_ASAP_PHY_FIX, ul_tdoa_env.anchor_point + ul_tdoa_env.tx_offset, 0, tx_msg, tx_msg_len); - mac_start(); + + uwb_tx(tx_msg, tx_msg_len, TX_MODE_DEFER, ul_tdoa_env.anchor_point + ul_tdoa_env.tx_offset); } void ul_tdoa_process(const struct MAC_HW_REPORT_T *ind) { enum DEV_ROLE_T role = uwb_app_config.session_param.device_role; + // Power off radio + power_off_radio(); + if (role == DEV_ROLE_UT_SYNC_ANCHOR) { if (ul_tdoa_env.stage == UL_TDOA_LISTEN) @@ -337,14 +336,12 @@ if (count > MS_TO_PHY_TIMER_COUNT(2)) { ul_tdoa_env.stage = UL_TDOA_LISTEN; - mac_rx(EVT_MODE_MAC_PHY_ASAP, 0, count - MS_TO_PHY_TIMER_COUNT(2)); - mac_start(); + uwb_rx(RX_MODE_IMMEDIATE, 0, count - MS_TO_PHY_TIMER_COUNT(2)); } else { ul_tdoa_env.stage = UL_TDOA_TX_SYNC; phy_timer_target_set(ul_tdoa_env.anchor_point + ul_tdoa_env.tx_offset - UWB_PERIOD_PREFETCH_TIME, ul_tdoa_timer_callback); - power_off_radio(); } } else if (role == DEV_ROLE_UT_TAG) @@ -354,7 +351,6 @@ ul_tdoa_env.anchor_point += ul_tdoa_env.ranging_period; phy_timer_target_set(ul_tdoa_env.anchor_point + ul_tdoa_env.tx_offset - UWB_PERIOD_PREFETCH_TIME, ul_tdoa_timer_callback); - power_off_radio(); LOG_INFO(TRACE_MODULE_APP, "UL-TDoA TX Blink %u\r\n", ul_tdoa_env.sequence_num); } @@ -366,8 +362,7 @@ ul_tdoa_rx_ind(ind->err_code, ind->pkt_data, ind->pkt_len, timestamp); } - mac_rx(EVT_MODE_MAC_PHY_ASAP, 0, ul_tdoa_env.random_window); - mac_start(); + uwb_rx(RX_MODE_IMMEDIATE, 0, ul_tdoa_env.random_window); } } -- Gitblit v1.9.3