From 0017519b68e7c8f47ccc1df3d92eaf07a2b21050 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期五, 26 五月 2023 13:59:19 +0800
Subject: [PATCH] 修改标签测距0bug

---
 Src/application/dw_app.c |   29 ++++++++++++++++-------------
 1 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c
index 646b349..42dec63 100644
--- a/Src/application/dw_app.c
+++ b/Src/application/dw_app.c
@@ -315,10 +315,11 @@
 double rtd_init, rtd_resp;
 double tof,distance;
 extern int32_t dwt_readcarrierintegrator(void) ;
-uint32_t testtimer[10],testtimer2,anc_pollrx[11],anc_resptx[11],tag_resprx[11];
-int32_t anc_clockoffset[11];
-int16_t anc_distoffset[11];
+uint32_t testtimer2,anc_pollrx[MAX_NEARBASE_NUM],anc_resptx[MAX_NEARBASE_NUM],tag_resprx[MAX_NEARBASE_NUM];
+int32_t anc_clockoffset[MAX_NEARBASE_NUM];
+int16_t anc_distoffset[MAX_NEARBASE_NUM];
 int32_t test2;
+uint16_t u16_nearbase_distlist[MAX_NEARBASE_NUM];
 uint8_t get_newdist,notenoughdist_count;
 void SetANCTimestap(uint8_t i,uint8_t* pollrx,uint8_t* resptx,uint32_t resprx,uint8_t* distoffset)
 {
@@ -336,13 +337,13 @@
       if(exsistbase_list[i]>0)
       {
 
-          exsistbase_list[i]--;
+         // exsistbase_list[i]--;
           clockOffsetRatio = anc_clockoffset[i] * (FREQ_OFFSET_MULTIPLIER * HERTZ_TO_PPM_MULTIPLIER_CHAN_5 / 1.0e6) ;
           rtd_init = tag_resprx[i] - poll_tx_ts;
           rtd_resp = anc_resptx[i] - anc_pollrx[i];
           tof = ((rtd_init - rtd_resp * (1 - clockOffsetRatio)) / 2.0) * DWT_TIME_UNITS;
           distance = tof * SPEED_OF_LIGHT;
-          if(distance>-1000&&distance<100000)
+          if(distance>-10&&distance<1000)
             nearbase_distlist[i] = distance*100+anc_distoffset[i];
       }else{
           nearbase_distlist[i] = 0x1ffff;
@@ -373,13 +374,17 @@
 	nearbase_num=next_nearbase_num;
 	recbase_num=0;
 //	motor_state=0;
+    for(uint8_t i=0;i<nearbase_num;i++)
+    {
+        u16_nearbase_distlist[i] = nearbase_distlist[i];
+    }
 	tx_near_msg[GROUP_ID_IDX] = group_id;
 	tx_near_msg[BATTARY_IDX] = bat_percent;
 	tx_near_msg[BUTTON_IDX] = !GET_USERKEY|stationary_flag<<1;
 	tx_near_msg[SEQUENCE_IDX] = frame_seq_nb++;
 	tx_near_msg[NEARBASENUM_INDEX] = nearbase_num;
 	memcpy(&tx_near_msg[NEARBASEID_INDEX],&nearbaseid_list,nearbase_num*2);
-    memcpy(&tx_near_msg[NEARBASEID_INDEX+nearbase_num*2],&nearbase_distlist,nearbase_num*2);
+    memcpy(&tx_near_msg[NEARBASEID_INDEX+nearbase_num*2],&u16_nearbase_distlist,nearbase_num*2);
 	tx_near_msg[MESSAGE_TYPE_IDX] = MBX_POLL;	
 	memcpy(&tx_near_msg[ANCHOR_ID_IDX],&mainbase_id,2);	
 	dwt_writetxdata(13+4*nearbase_num, tx_near_msg, 0);//将Poll包数据传给DW1000,将在开启发送时传出去
@@ -543,7 +548,7 @@
 //									} 
 								}else{
 									rec_nearbasepos=FindNearBasePos(rec_nearbaseid);
-									SetANCTimestap(rec_nearbasepos+1,&rx_buffer[RESP_MSG_POLL_RX_TS_IDX],&rx_buffer[RESP_MSG_RESP_TX_TS_IDX],resp_rx_ts,&rx_buffer[RESP_MSG_ANC_DISTOFFSET]);
+									SetANCTimestap(rec_nearbasepos,&rx_buffer[RESP_MSG_POLL_RX_TS_IDX],&rx_buffer[RESP_MSG_RESP_TX_TS_IDX],resp_rx_ts,&rx_buffer[RESP_MSG_ANC_DISTOFFSET]);
 
 										if(rec_nearbasepos>=last_nearbase_num)          //发现新的基站
 									{
@@ -602,8 +607,6 @@
 			{
                 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++)
 			{
@@ -627,10 +630,10 @@
 			}
 			
 			report_num=0;
-            if(last_nearbase_num>4)
-            {
-                last_nearbase_num = 5;
-            }
+//            if(last_nearbase_num>4)
+//            {
+//                last_nearbase_num = 5;
+//            }
 	for (i=0;i<last_nearbase_num;i++)
 			{
 				nearbaseid_list[i]=true_nearbase_idlist[i];

--
Gitblit v1.9.3