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);
    }
}