From 6f05c0c8a8e5b4ccabc20cb75b57bd59ef145bcc Mon Sep 17 00:00:00 2001
From: WXK <287788329@qq.com>
Date: 星期五, 17 三月 2023 18:32:38 +0800
Subject: [PATCH] 解决uwb测距 3个以上标签出错的bug。

---
 Src/application/dw_app.c |   37 +++++++++++++++++++------------------
 1 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c
index cbc0205..26abfec 100644
--- a/Src/application/dw_app.c
+++ b/Src/application/dw_app.c
@@ -304,7 +304,7 @@
         freqlost_count = 0;
     }
 }
-
+u16 rec_nearbaseid,rec_nearbasepos;
 void NearPoll(void)
 {
 	
@@ -340,6 +340,7 @@
 	
 	tx_near_msg[TAGCONFIGSUCCESS_INDEX] =0;
 	para_update = 0;
+    get_newbase = 0;
 	flag_finalsend=0;
 	flag_rxon=1;
 	flag_getresponse=0;
@@ -397,7 +398,7 @@
 							dwt_setrxtimeout(0);//DELAY_BETWEEN_TWO_FRAME_UUS*(nearbase_num+1-recbase_num)+10);//设定接收超时时间,0位没有超时时间
 							dwt_rxenable(0);//打开接收
 							if (rx_buffer[MESSAGE_TYPE_IDX] == MBX_RESPONSE&&!memcmp(&rx_buffer[TAG_ID_IDX],&dev_id,2)&&rx_buffer[GROUP_ID_IDX]==group_id) //判断接收到的数据是否是response数据
-							{	u16 rec_nearbaseid,rec_nearbasepos;
+							{	
 								poll_tx_ts = get_tx_timestamp_u64();										//获得POLL发送时间T1
 								resp_rx_ts = get_rx_timestamp_u64();										//获得RESPONSE接收时间T4	
 								recbase_num++;
@@ -548,6 +549,8 @@
 			{
                 last_lpcount+= HAL_LPTIM_ReadCounter(&hlptim1)%(g_com_map[COM_INTERVAL]*16);
 			}
+            if(nearbase_num==4)
+            {nearbase_num=4;}
             last_nearbase_num = next_nearbase_num;
 			for(i=0;i<last_nearbase_num-1;i++)
 			{
@@ -571,26 +574,24 @@
 			}
 			
 			report_num=0;
+            if(last_nearbase_num>4)
+            {
+                last_nearbase_num = 5;
+            }
 	for (i=0;i<last_nearbase_num;i++)
 			{
 				nearbaseid_list[i]=true_nearbase_idlist[i];
 				nearbase_distlist[i]=true_nearbase_distlist[i];
-				if(nearbase_distlist[i]!=0x1ffff&&true_exsistbase_list[i]==KEEP_TIMES)
-				{
-					memcpy(&usart_send[4+6*report_num],&nearbaseid_list[i],2);
-					memcpy(&usart_send[6+6*report_num],&nearbase_distlist[i],4);
-					report_num++;
-				}
 			}
-            #ifdef USART_INTEGRATE_OUTPUT	
-                usart_send[0] = 0x55;     
-                usart_send[1] = 0xAA;              
-				usart_send[2] = 4;//正常模式
-				usart_send[3] = report_num*6+2;//正常模式
-				checksum = Checksum_u16(&usart_send[2],report_num*6+2);
-				memcpy(&usart_send[4+report_num*6],&checksum,2);
-				USART_puts(usart_send,6+report_num*6);
-			#endif
+//            #ifdef USART_INTEGRATE_OUTPUT	
+//                usart_send[0] = 0x55;     
+//                usart_send[1] = 0xAA;              
+//				usart_send[2] = 4;//正常模式
+//				usart_send[3] = report_num*6+2;//正常模式
+//				checksum = Checksum_u16(&usart_send[2],report_num*6+2);
+//				memcpy(&usart_send[4+report_num*6],&checksum,2);
+//				USART_puts(usart_send,6+report_num*6);
+//			#endif
             
 			for(i=0;i<MAX_NEARBASE_NUM;i++)
 			{
@@ -605,7 +606,7 @@
         if(memcmp(&calCRC,&rec_remotepara[5],2)==0)
         {   uint8_t pack_msgtype,pack_index,pack_length;
             pack_msgtype = rec_remotepara[0];
-            pack_index = rec_remotepara[1]*2;
+            pack_index = rec_remotepara[1];
             pack_length = rec_remotepara[2];
             if(pack_msgtype==2)
             {

--
Gitblit v1.9.3