keil/uwb_app.c
@@ -747,6 +747,53 @@
    // 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)
{
@@ -789,65 +836,65 @@
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();
}