zhangbo
2025-05-13 e0a196fc7dcb47d200ab81a933dde2b18d169ed5
keil/uwb_app.c
@@ -12,6 +12,7 @@
#include "lib_aoa.h"
#include "WS2812.h"
#include "TCPClient.h"
#include "PCA9555.h"
extern int simple_main(void);
extern int temp_main(void);
@@ -534,6 +535,29 @@
//    }
//    anchordata_num=j;
//}
//void TagListUpdate(void)
//{
//uint16_t i,j=0,k=0;
//    for(i=0; i<taglist_num; i++)
//    {
//          if(tagofflinetime[i]++<TAG_KEEPTIMES)
//        {
//            tagid_list[j]=tagid_list[i];
//            tagdist_list[j] = tagdist_list[i];
//                  anchordata_bat[j]=anchordata_bat[i];//电量随之更新
//            anchor_rssi[j]=anchor_rssi[i];
//            tagofflinetime[j++]=tagofflinetime[i];
//        }
//      }
//       taglist_num=j;
//}
extern uint8_t in_the_room_flag;
extern uint8_t lounei_flag;
uint8_t ceju_onlinetime;
uint16_t last_id=0;
uint8_t ceju_leave_flag=0;
void TagListUpdate(void)
{
uint16_t i,j=0,k=0;
@@ -546,11 +570,22 @@
                  anchordata_bat[j]=anchordata_bat[i];//电量随之更新
            anchor_rssi[j]=anchor_rssi[i];
            tagofflinetime[j++]=tagofflinetime[i];
                 last_id=tagid_list[i];
                  if(last_id=tagid_list[i])
                  {
                   ceju_onlinetime++;
                  }
        }
      }
      if(ceju_onlinetime>0&&taglist_num==0)
      {
         ceju_onlinetime=0;
         ceju_leave_flag=1;
      }
       taglist_num=j;
}
uint8_t position;
uint8_t resp_tx_error;
uint8_t Anchor_RecNearPoll(uint8_t ancrec_nearbasepos)//根据自己是否为新基站定制消息去发送,根据是否抢占判断
@@ -774,9 +809,12 @@
         uwb_offtime_count=0;
         current_state = STATE_NORMAL;
         if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL)//判断是否是和自己是同一组通讯的且为poll包
        {    flag_recsuccess = 1;
        {
                 PCA9555_Set_One_Value_Output(GPS_POWER,1);
                 flag_recsuccess = 1;
                  wltag_state=RANGE;//成功后从search切换为range
                  memcpy(&g_com_receive_id,&rx_buf[TAG_ID_IDX],2);
                 //temp_count2=phy_timer_count_get();
                  uwb_losttimer=0;//成功测距清0 lost时间
            frame_seq_nb2 = rx_buf[SEQUENCE_IDX];//获取包序