zhangbo
2025-04-01 e4d167a7d5e73b58a7d4adbc8b91499dc1e2d4c4
keil/uwb_app.c
@@ -289,6 +289,8 @@
uint8_t receive_error_flag;
uint8_t rxnumoknum,rxnumerrornum;
uint8_t resp_tx_flag;
extern uint8_t ceju_onlinetime;
extern uint8_t in_the_room_flag;
static void rx_int_callback(struct MAC_HW_REPORT_T *rx_report)
{      uint8_t valid_sts=0;
    // Power off radio
@@ -344,6 +346,8 @@
                 temp_count= phy_timer_count_get();
        memcpy(&rx_rpt, rx_report, sizeof(struct MAC_HW_REPORT_T));
        rx_length = 0;
//           ceju_onlinetime==0;
//           in_the_room_flag++;
        receive_error_flag=1;
            OpenUWB();//再次开启UWB接收
    }
@@ -484,6 +488,8 @@
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;
@@ -496,15 +502,27 @@
                  anchordata_bat[j]=anchordata_bat[i];//电量随之更新
            anchor_rssi[j]=anchor_rssi[i];
            tagofflinetime[j++]=tagofflinetime[i];
                 in_the_room_flag=0;
                 ceju_onlinetime++;
        }
//                 in_the_room_flag=0;
                 last_id=tagid_list[i];
                  if(last_id=tagid_list[i])
                  {
                   ceju_onlinetime++;
                  }
        }
      }
      if(ceju_onlinetime>0||taglist_num==0)
//      if(ceju_onlinetime==0&&taglist_num==0)
//      {
//       in_the_room_flag=0;
//      }
//      if(ceju_onlinetime>1&&taglist_num==0)
//      {
//       in_the_room_flag=1;
//      }
      if(ceju_onlinetime>0&&taglist_num==0)
      {
       ceju_onlinetime=0;
       in_the_room_flag=1;
         ceju_onlinetime=0;
         ceju_leave_flag=1;
      }
       taglist_num=j;
}
@@ -834,23 +852,12 @@
                                    tagdist_list[taglist_pos]=rec_ancdistlist[i];
                                    anchordata_bat[taglist_pos] = battary;//保存该基站电量
                        anchor_rssi[taglist_pos]=rssi;
//                                   in_the_room_flag=1;
//                                   if(dev_id==g_com_map[DOOR_UWB_1])
//                                    {
//
//                                    }
//                                    if(dev_id==g_com_map[DOOR_UWB_2])
//                                    {
//
//                                    }
//                                    if(dev_id==g_com_map[DOOR_UWB_3])
//                                    {
//                                       IN_THE_ROOM_FLAG=1;
//                                    }
                         PCA9555_Set_One_Value_Output(GPS_POWER,1);
                                    if(taglist_pos==taglist_num)// taglist_pos==taglist_num 说明这个基站不在当前列表中
                                    {   //tempid==dev_id 说明基站下发测距报文有这个标签的信息
                                          taglist_num++;          //满足上述两种情况才会添加基站ID进入列表中,否则会出现标签不在基站列表中,标签也不响应的情况
                                          tagid_list[taglist_pos] = tag_id_recv;
                                          tagid_list[taglist_pos] = tag_id_recv;
                                    PCA9555_Set_One_Value_Output(GPS_POWER,1);
                                    }
                                    break;
                              }