chen
2025-01-07 30bd11dac942b17928cc730da67768baf3f4c049
keil/uwb_app.c
@@ -443,9 +443,9 @@
    flag_temp2=uwb_tx(send_buffer, 40,1 ,resp_tx_en_start_u32);//立即发送测试size大小
    temp_count1=phy_timer_count_get();
    while(mac_is_busy());
    gpio_pin_clr(SCL_PIN);
}
uint32_t range_timeout_us = 5000;//yuan5000
uint32_t range_timeout_us = 1000000;//yuan5000
uint16_t uwb_searchcount;
uint8_t flag_recsuccess;
@@ -511,11 +511,11 @@
{
   uint32_t u32LogLen,datalenth;
   char acReadponse[200];
   u32LogLen = snprintf(acReadponse, sizeof(acReadponse), "车内:%d 人 测距成功数:%d ID: ",get_in_num,success_num);
   //u32LogLen = snprintf(acReadponse, sizeof(acReadponse), "车内:%d 人 测距成功数:%d ID: ",get_in_num,success_num);
   u32LogLen = snprintf(acReadponse, sizeof(acReadponse), "门内:%d 人 ID: ",get_in_num);
               for(uint16_t i=0;i<get_in_num;i++)
            {
                datalenth = sprintf((char*)&acReadponse[u32LogLen],",%04X",anchor_id_in[i]);
                datalenth = sprintf((char*)&acReadponse[u32LogLen],"%04X,",anchor_id_in[i]);
                u32LogLen += datalenth;
            }
      LOG_INFO(TRACE_MODULE_APP,"%s\r\n",acReadponse);
@@ -711,6 +711,7 @@
    temp_count3=phy_timer_count_get();
    gpio_pin_set(SCL_PIN);
      sts_lsp_store();
    flag_temp1=uwb_rx(0, 0, range_timeout_us);//开启接收
   
   // while(mac_is_busy());
@@ -721,25 +722,19 @@
   if(end_receive_count>=UINT32_MAX)
   {end_receive_count-=UINT32_MAX;}
   current_count=phy_timer_count_get();
      while(current_count<end_receive_count||current_count>end_receive_count+HALF_SECOND_TIME)//循环接受包体,若为124.8K则是+62400000
      {
         current_count=phy_timer_count_get();
         while(mac_is_busy())
        {
                  //Calibration_Time();
            IdleTask();
            current_count=phy_timer_count_get();
            if(current_count>end_receive_count&&current_count<end_receive_count+HALF_SECOND_TIME)
            {
                    break;
            }
        }
         sts_lsp_store_stop();
         
         
    if(receive_flag==1)//成功接收
    {
      gpio_pin_clr(SCL_PIN);
        //if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL&&!memcmp(&rx_buf[TAG_ID_IDX],&g_com_map[BIND_DEV_ID],2))//判断是否是和自己是同一组通讯的且为poll包
         if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL)//判断是否是和自己是同一组通讯的且为poll包
        {    flag_recsuccess = 1;
@@ -779,24 +774,20 @@
            }
                  recev_error_num=0;
              //range_timeout_us=5000;//恢复为5000进入range后
           LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 包序%d\r\n",g_com_receive_id,distance,frame_seq_nb2);
           //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 包序%d\r\n",g_com_receive_id,distance,frame_seq_nb2);
                  //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 信号强度ANT0:%f,信号强度ANT2: %f\r\n",g_com_receive_id,distance,sts_rssi[0],sts_rssi[2]);
                check_if_in_or_out_car(g_com_receive_id,distance,sts_rssi[0],sts_rssi[2]);
                  //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 信号强度ANT0:%f,信号强度ANT2: %f\r\n",g_com_receive_id,distance,sts_rssi[1],sts_rssi[2]);
                  LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d\r\n",g_com_receive_id,distance);
                check_if_in_or_out_car(g_com_receive_id,distance,sts_rssi[1],sts_rssi[2]);
               success_num++;
               
                  //gpio_pin_clr(SCL_PIN);
        //break;去掉break变为一对多
            }
    } 
         sts_lsp_store();
//         sts_lsp_store();
         gpio_pin_clr(SCL_PIN);
         break;
      //失败或者接受被高发射机打断都会再次开启接收
         //flag_temp1=uwb_rx(0, 0, range_timeout_us);
   }
//      delay_us(1);
      sts_lsp_store_stop();
//      sts_lsp_store_stop();
//      uwb_rx_force_off(1);
//      if(!flag_recsuccess)