zhangbo
2025-04-21 57b984b8395bb30b2d170369c75f19722502b104
keil/uwb_app.c
@@ -832,69 +832,71 @@
    }
    return 0;
}
enumwltagstate wltag_state=RANGE;
uint32_t wltag_statetimer,wltag_uwbtimer;
//enumwltagstate wltag_state=RANGE;
//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:
//   if(HIDO_TimerGetTick()-wltag_uwbtimer>2&&uwb_rx_flag==0)
//      {
//
//            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();
}
@@ -906,7 +908,7 @@
            uint16_t tempid;
         if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL)//判断是否是和自己是同一组通讯的且为poll包
        {    flag_recsuccess = 1;
                  wltag_state=RANGE;//成功后从search切换为range
//                  wltag_state=RANGE;//成功后从search切换为range
                 REV_POLL_NUM++;
                  memcpy(&g_com_receive_id,&rx_buf[TAG_ID_IDX],2);
                 //temp_count2=phy_timer_count_get();