| | |
| | | // Register rx interrupt callback function |
| | | mac_register_process_handler(tx_int_callback, rx_int_callback); |
| | | } |
| | | //void Uwbinit(void) |
| | | //{ |
| | | // uwb_open(); |
| | | // #ifdef STS_MODE |
| | | // // Set STS key and IV |
| | | // phy_sts_key_configure(&sts_iv_key); |
| | | // |
| | | // // which RX ports will be used for AoA/PDoA |
| | | // phy_rx_ant_mode_set(RX_ANT_PORTS_COMBINATION); |
| | | // #endif |
| | | // // Set calibration parameters |
| | | // uwb_calibration_params_set(config.phy_cfg.ch_num); |
| | | // #ifndef STS_MODE |
| | | // // set advanced parameters |
| | | // struct PHY_ADV_CONFIG_T adv_config = { |
| | | // .thres_fap_detect = 40, |
| | | // .nth_scale_factor = 4, |
| | | // .ranging_performance_mode = 0, |
| | | // .skip_weakest_port_en = 0, |
| | | // }; |
| | | // #else |
| | | // // set advanced parameters |
| | | // struct PHY_ADV_CONFIG_T adv_config = { |
| | | // .thres_fap_detect = 40, |
| | | // .nth_scale_factor = 4, |
| | | // .ranging_performance_mode = 3, |
| | | // .skip_weakest_port_en = 0, |
| | | // }; |
| | | // #endif |
| | | // phy_adv_params_configure(&adv_config); |
| | | |
| | | // // uwb configure |
| | | // uwb_configure(config.phy_work_mode, board_param.tx_power_fcc[CALIB_CH(config.phy_cfg.ch_num)], &config.phy_cfg); |
| | | // #if (defined STS_MODE) || (defined MK_MODE) |
| | | // ranging_lib_init(); |
| | | // #endif |
| | | // ranging_frame_type_set(config.phy_cfg.sts_pkt_cfg); |
| | | // #ifdef STS_MODE |
| | | // aoa_aux_info_set(AOA_AUX_ANT_IQ_RSSI_PDOA_AOA_FOM); |
| | | // aoa_steering_vector_set((const float *)((uint32_t)((config.phy_cfg.ch_num == 9) ? svec_ch9_ptr : svec_ch5_ptr) | SRAM_BASE)); |
| | | |
| | | // aoa_param_config(); |
| | | // |
| | | // phy_rx_sts_switch_mode_set(config.phy_cfg.sts_pkt_cfg, STS_SWITCH_EVERY_4SYM, 0, 0); |
| | | // #endif |
| | | // mac_register_process_handler(tx_int_callback, rx_int_callback);//初始化回调 |
| | | //} |
| | | uint16_t g_com_receive_id; |
| | | void CloseUWB(void) |
| | | { |
| | |
| | | uint32_t wltag_statetimer,wltag_uwbtimer; |
| | | int uwb_app_poll(void) |
| | | { |
| | | // switch(wltag_state) |
| | | // { |
| | | // |
| | | // case RANGE: |
| | | //// time_flag=HIDO_TimerGetTick()-wltag_uwbtimer; |
| | | // if(HIDO_TimerGetTick()-wltag_uwbtimer>2&&uwb_rx_flag==0) |
| | | // { |
| | | // UWB_LED_ON; |
| | | // wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | // if(UWB_STATE==UWB_STATE_IDLE) |
| | | // { |
| | | // UWB_STATE=UWB_RX_STATE_BUSY; |
| | | // OpenUWB(); |
| | | // } |
| | | // } |
| | | // else if(HIDO_TimerGetTick()-wltag_uwbtimer>1&&uwb_rx_flag==1) |
| | | // { |
| | | //// time_flag=HIDO_TimerGetTick()-wltag_uwbtimer; |
| | | // UWB_LED_OFF; |
| | | // wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | // CloseUWB(); |
| | | // UWB_STATE=UWB_STATE_IDLE; |
| | | // } |
| | | // if(uwb_losttimer>g_com_map[UWB_RNAGE_TIME]) |
| | | // { |
| | | // wltag_statetimer = HIDO_TimerGetTick(); |
| | | // if(uwb_rx_flag==0)//若要切换到搜索模式时没有开启则开启UWB |
| | | // { |
| | | // if(UWB_STATE==UWB_STATE_IDLE) |
| | | // { |
| | | // UWB_STATE=UWB_RX_STATE_BUSY; |
| | | // OpenUWB(); |
| | | // } |
| | | // } |
| | | // wltag_state = SEARCH; |
| | | // } |
| | | // break; |
| | | // case SEARCH: |
| | | // if(HIDO_TimerGetTick()-wltag_statetimer>1) |
| | | // { |
| | | // wltag_statetimer = HIDO_TimerGetTick(); |
| | | // wltag_state = CLOSE; |
| | | // CloseUWB(); |
| | | // UWB_STATE=UWB_STATE_IDLE; |
| | | // } |
| | | // break; |
| | | // case CLOSE: |
| | | // if(HIDO_TimerGetTick()-wltag_statetimer>g_com_map[UWB_WAIT_TIME]) |
| | | // { |
| | | // wltag_statetimer = HIDO_TimerGetTick(); |
| | | // wltag_state = SEARCH; |
| | | // if(UWB_STATE==UWB_STATE_IDLE) |
| | | // { |
| | | // UWB_STATE=UWB_RX_STATE_BUSY; |
| | | // OpenUWB(); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | switch(wltag_state) |
| | | { |
| | | |
| | | case RANGE: |
| | | // time_flag=HIDO_TimerGetTick()-wltag_uwbtimer; |
| | | if(HIDO_TimerGetTick()-wltag_uwbtimer>2&&uwb_rx_flag==0) |
| | | { |
| | | UWB_LED_ON; |
| | | wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | if(UWB_STATE==UWB_STATE_IDLE) |
| | | { |
| | | UWB_STATE=UWB_RX_STATE_BUSY; |
| | | OpenUWB(); |
| | | } |
| | | } |
| | | else if(HIDO_TimerGetTick()-wltag_uwbtimer>1&&uwb_rx_flag==1) |
| | | { |
| | | // time_flag=HIDO_TimerGetTick()-wltag_uwbtimer; |
| | | UWB_LED_OFF; |
| | | wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | CloseUWB(); |
| | | UWB_STATE=UWB_STATE_IDLE; |
| | | } |
| | | if(uwb_losttimer>g_com_map[UWB_RNAGE_TIME]) |
| | | { |
| | | wltag_statetimer = HIDO_TimerGetTick(); |
| | | if(uwb_rx_flag==0)//若要切换到搜索模式时没有开启则开启UWB |
| | | { |
| | | if(UWB_STATE==UWB_STATE_IDLE) |
| | | { |
| | | UWB_STATE=UWB_RX_STATE_BUSY; |
| | | OpenUWB(); |
| | | } |
| | | } |
| | | wltag_state = SEARCH; |
| | | } |
| | | break; |
| | | case SEARCH: |
| | | if(HIDO_TimerGetTick()-wltag_statetimer>1) |
| | | { |
| | | wltag_statetimer = HIDO_TimerGetTick(); |
| | | wltag_state = CLOSE; |
| | | CloseUWB(); |
| | | UWB_STATE=UWB_STATE_IDLE; |
| | | } |
| | | break; |
| | | case CLOSE: |
| | | if(HIDO_TimerGetTick()-wltag_statetimer>g_com_map[UWB_WAIT_TIME]) |
| | | { |
| | | wltag_statetimer = HIDO_TimerGetTick(); |
| | | wltag_state = SEARCH; |
| | | if(UWB_STATE==UWB_STATE_IDLE) |
| | | { |
| | | UWB_STATE=UWB_RX_STATE_BUSY; |
| | | OpenUWB(); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | UWBIdleTask(); |
| | | } |
| | | |