From 9fbe15b3abbe1d7227126d2a151fd11cb5e62066 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期四, 05 十二月 2024 18:27:08 +0800
Subject: [PATCH] 解决多设备丢包问题版本

---
 keil/uwb_app.c |   30 ++++++++++--------------------
 1 files changed, 10 insertions(+), 20 deletions(-)

diff --git a/keil/uwb_app.c b/keil/uwb_app.c
index 568fbe7..cbfdfb7 100644
--- a/keil/uwb_app.c
+++ b/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;
 
@@ -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,19 @@
             }
 						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]);
+					 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)

--
Gitblit v1.9.3