keil/uwb_app.c
@@ -477,6 +477,7 @@
}
uint8_t position;
extern uint8_t change_buffer_flag;
uint8_t Anchor_RecNearPoll(uint8_t ancrec_nearbasepos)//根据自己是否为新基站定制消息去发送,根据是否抢占判断
{
    temp_count2=poll_rx_en_start_u32;
@@ -485,7 +486,11 @@
    memcpy(&send_buffer[ANCHOR_ID_IDX],&dev_id,2);//自身id
    memcpy(&send_buffer[TAG_ID_IDX],&tag_id_recv,2);//接受者id
    send_buffer[MESSAGE_TYPE_IDX]=MBX_RESPONSE;
      if(change_buffer_flag)
      {
       send_buffer[MESSAGE_CONTROL_TYPE_FLAG]=1;
         change_buffer_flag=0;
      }
//    if(rec_nearbase_num == ancrec_nearbasepos)//抢占模式自己为新基站
//    {
//        random_time = (phy_timer_count_get()%100);//多基站抢占一个位置时避免一个也收不到的情况就每一个随机错开几十uS
@@ -509,6 +514,7 @@
    temp_count3= phy_timer_count_get();
    flag_temp2=uwb_tx(send_buffer, 40,1 ,resp_tx_en_start_u32);//立即发送测试size大小
      tagofflinetime[taglist_pos] = 0;//更新标签通信
      memset( send_buffer,0,40);//多加清除数组逻辑
//    temp_count1=phy_timer_count_get();
    //while(mac_is_busy());
    //gpio_pin_clr(SCL_PIN);
@@ -571,6 +577,12 @@
   }
}
uint16_t g_com_receive_id;
typedef enum
{UWB_UNLINE=0,
   VOLTAGE_NORMAL,
  VOLTAGE_ABNORMAL,
} UWB_State;
UWB_State Voltage_State=UWB_UNLINE;
void CloseUWB(void)
{
      uwb_rx_force_off(1);
@@ -651,6 +663,12 @@
        {    flag_recsuccess = 1;
                  wltag_state=RANGE;//成功后从search切换为range
                  memcpy(&g_com_receive_id,&rx_buf[TAG_ID_IDX],2);
               if(rx_buf[BATTARY_IDX])
               {
               Voltage_State=VOLTAGE_NORMAL;
               }else{
               Voltage_State=VOLTAGE_ABNORMAL;
               }
                 //temp_count2=phy_timer_count_get();
                  uwb_losttimer=0;//成功测距清0 lost时间
            frame_seq_nb2 = rx_buf[SEQUENCE_IDX];//获取包序