From 5b6fe0edc2790d1948c09b191a2a565e8874f875 Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期二, 24 五月 2022 09:57:23 +0800
Subject: [PATCH] V1.64 只和3个基站测距

---
 源码/核心板/Src/application/dw_app.c |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c"
index 6b63b94..531fcdb 100644
--- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c"
+++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c"
@@ -294,7 +294,7 @@
 	}
 	return random_value;
 }
-u8 GetRandomSlotPos(uint32_t emptyslot)
+u8 GetRandomSlotPos(uint32_t emptyslot) //随机选一个位置,如果被占用,则从头到尾选择第一个没被占用的位置
 {
 	u8 i,temp_value;
 	temp_value = GetRandomValue();
@@ -461,10 +461,13 @@
 									memcpy(&temp_dist,&rx_buffer[DIST_IDX],4);
 								tagrec_datalen = rx_buffer[RT_USERDATA_INDEX+2];
 								memcpy(&rec_userdata_targetid,&rx_buffer[RT_USERDATA_INDEX],2);
-								if(tagrec_datalen==USERDATA_LEN&&rec_userdata_targetid==dev_id)
+								if(tagrec_datalen==USERDATA_LEN)
 								{
+									if(rec_userdata_targetid==dev_id||rec_userdata_targetid==0xffff)
+									{
 									memcpy(tagrec_userdata,&rx_buffer[RT_USERDATA_INDEX+2],tagrec_datalen+1);
-									OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen);									
+									OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen);
+									}										
 								}
 									nearbase_distlist[rec_nearbasepos]=temp_dist;
 								if(temp_dist!=0x1ffff)
@@ -526,10 +529,13 @@
 									memcpy(&temp_dist,&rx_buffer[DIST_IDX],4);
 								tagrec_datalen = rx_buffer[RT_USERDATA_INDEX+2];
 								memcpy(&rec_userdata_targetid,&rx_buffer[RT_USERDATA_INDEX],2);
-								if(tagrec_datalen==USERDATA_LEN&&rec_userdata_targetid==dev_id)
+								if(tagrec_datalen==USERDATA_LEN)
 								{
+									if(rec_userdata_targetid==dev_id||rec_userdata_targetid==0xffff)
+									{
 									memcpy(tagrec_userdata,&rx_buffer[RT_USERDATA_INDEX+2],tagrec_datalen+1);
-									OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen);									
+									OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen);	
+									}						
 								}
 									nearbase_distlist[rec_nearbasepos]=temp_dist;
 									
@@ -1149,10 +1155,13 @@
 				rec_nearbase_num=rx_buffer[NEARBASENUM_INDEX];
 				tagrec_datalen = rx_buffer[NEARBASEID_INDEX+rec_nearbase_num*2+2];
 				memcpy(&rec_userdata_targetid,&rx_buffer[NEARBASEID_INDEX+rec_nearbase_num*2],2);
-				if(tagrec_datalen==USERDATA_LEN&&rec_userdata_targetid==dev_id)
+				if(tagrec_datalen==USERDATA_LEN)
 				{
+					if(rec_userdata_targetid==dev_id||rec_userdata_targetid==0xffff)
+					{
 					memcpy(tagrec_userdata,&rx_buffer[NEARBASEID_INDEX+rec_nearbase_num*2+2],tagrec_datalen+1);
-					OutputUserData(tag_id_recv,tagrec_userdata,tagrec_datalen);									
+					OutputUserData(tag_id_recv,tagrec_userdata,tagrec_datalen);		
+					}						
 				}	
 				if(rec_nearbase_num>ancidlist_num)
 					{

--
Gitblit v1.9.3