From d0dda34680bb885a8525cc82bfdeb9008025df80 Mon Sep 17 00:00:00 2001
From: chen <15335560115@163.com>
Date: 星期四, 28 十一月 2024 17:32:06 +0800
Subject: [PATCH] 一对多稳定版本不丢包,加了错位时间

---
 keil/uwb_app.c |   21 ++++++++++++++-------
 1 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/keil/uwb_app.c b/keil/uwb_app.c
index befa0c1..1e5b622 100644
--- a/keil/uwb_app.c
+++ b/keil/uwb_app.c
@@ -69,7 +69,7 @@
 #define RANGING_PERIOD_MS (1000)
 
 /* This is the delay from Frame RX POLL frame to send RESP Frame */
-#define POLL_RX_TO_RESP_TX_DLY_US 4000U //yuan670 with urt 3000success
+#define POLL_RX_TO_RESP_TX_DLY_US 2000U //yuan670 with urt 3000success
 
 #define RESP_TX_TO_FINAL_RX_DLY_US 500U
 
@@ -432,7 +432,7 @@
 //       resp_tx_en_start_u32 = phy_timer_count_get()+US_TO_PHY_TIMER_COUNT(20*rec_nearbase_num+POLL_RX_TO_RESP_TX_DLY_US+ancrec_nearbasepos*DELAY_BETWEEN_TWO_FRAME_UUS);//后面的需要根据已有基站数量进行更改,如果是抢占自己最后一个回复,要有底数
 //				//这里应该有问题问一下钟工
 //		}//此处设置绝对时间将poll u32改为phy_timer_count_get()
-		resp_tx_en_start_u32 = phy_timer_count_get()+US_TO_PHY_TIMER_COUNT(POLL_RX_TO_RESP_TX_DLY_US);
+		resp_tx_en_start_u32 = poll_rx_en_start_u32+US_TO_PHY_TIMER_COUNT(POLL_RX_TO_RESP_TX_DLY_US);
     resp_tx_ts_i64 = ranging_tx_time_correct(resp_tx_en_start_u32 + phy_shr_duration());//修正时间戳
     /* Write all timestamps in the final message. See NOTE 8 below. */
     resp_msg_set_ts(&send_buffer[RESP_MSG_POLL_RX_TS_IDX], poll_rx_ts_i64);
@@ -652,18 +652,25 @@
 	if(rssi_ant0>rssi_ant2&&distance_from_tag<200)
 	{
 		change_count[position_anchor_exist]++;
+		if(change_count[position_anchor_exist]>0)
+		{
+		position_anchor_in_table=CmpCarInTable(receive_success_id);
+		add_in_car_table(position_anchor_in_table,receive_success_id);
+		}
 		if(change_count[position_anchor_exist]>=3)
 		{	change_count[position_anchor_exist]=3;
-			position_anchor_in_table=CmpCarInTable(receive_success_id);
-			add_in_car_table(position_anchor_in_table,receive_success_id);
+			
 		}
 	}else if(rssi_ant0<rssi_ant2&&distance_from_tag<200)
 	{
 		change_count[position_anchor_exist]--;
-		if(change_count[position_anchor_exist]<=-3)
-		{change_count[position_anchor_exist]=-3;
+		if(change_count[position_anchor_exist]<0)
+		{
 		position_anchor_in_table=CmpCarInTable(receive_success_id);
 		delete_in_car_table(position_anchor_in_table);
+		}
+		if(change_count[position_anchor_exist]<=-3)
+		{change_count[position_anchor_exist]=-3;
 		}	
 	}
 }
@@ -768,7 +775,7 @@
             }
 						recev_error_num=0;
            	//range_timeout_us=5000;//恢复为5000进入range后
-           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]);
+           LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 包序%d\r\n",g_com_receive_id,distance,frame_seq_nb2);
 					 check_if_in_or_out_car(g_com_receive_id,distance,sts_rssi[0],sts_rssi[2]);
 					
 					

--
Gitblit v1.9.3