zhangbo
2025-03-11 32ec78bbb74df89564f3998fd32bc3411fca5613
keil/uwb_app.c
@@ -9,6 +9,7 @@
#include "global_param.h"
#include "board.h"
#include "lora_1268.h"
#include "PCA9555.h"
#define TAG_KEEPTIMES           30
#define REPORT_TAG_KEEPTIMES     1
@@ -396,6 +397,8 @@
    //tagofflinetime[i] = 0;
    return i;
}
static void resp_msg_set_ts(uint8_t *ts_field, int64_t ts)
{
    int i,ts2;
@@ -760,46 +763,65 @@
uint32_t wltag_statetimer,wltag_uwbtimer;
int uwb_app_poll(void)
{
//   switch(wltag_state)
//   {
//   case RANGE:
//   if(HIDO_TimerGetTick()-wltag_uwbtimer>2&&uwb_rx_flag==0)
//      {
//            wltag_uwbtimer = HIDO_TimerGetTick();
//            OpenUWB();
//      }
//   else if(HIDO_TimerGetTick()-wltag_uwbtimer>1&&uwb_rx_flag==1)
//      {
//            wltag_uwbtimer = HIDO_TimerGetTick();
//            CloseUWB();
//      }
//      if(uwb_losttimer>g_com_map[UWB_RNAGE_TIME])
//      {
//       wltag_statetimer = HIDO_TimerGetTick();
//         if(uwb_rx_flag==0)//若要切换到搜索模式时没有开启则开启UWB
//         {
//            OpenUWB();
//         }
//     wltag_state = SEARCH;
//      }
//      break;
//   case SEARCH:
//      if(HIDO_TimerGetTick()-wltag_statetimer>1)
//      {
//      wltag_statetimer = HIDO_TimerGetTick();
//    wltag_state = CLOSE;
//    CloseUWB();
//      }
//      break;
//   case CLOSE:
//      if(HIDO_TimerGetTick()-wltag_statetimer>g_com_map[UWB_WAIT_TIME])
//      {
//      wltag_statetimer = HIDO_TimerGetTick();
//    wltag_state = SEARCH;
//    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();
}
int Anchor_App(void)