From d5b7f8cee7bbe731224627ee58b3a324e0c8bd56 Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期三, 20 十一月 2024 08:28:45 +0800
Subject: [PATCH] V2.8 小组ID可以改,提高响应速度

---
 Src/application/dw_mbx_tag.c |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/Src/application/dw_mbx_tag.c b/Src/application/dw_mbx_tag.c
index 884f7ed..52331e0 100644
--- a/Src/application/dw_mbx_tag.c
+++ b/Src/application/dw_mbx_tag.c
@@ -41,7 +41,7 @@
 #define REPORT_TAG_KEEPTIMES     5
 static uint16_t ancidlist_rec[TAG_NUM_IN_SYS],ancidlist_send[TAG_NUM_IN_SYS],rec_ancidlist[TAG_NUM_IN_SYS],rec_ancdistlist[TAG_NUM_IN_SYS];
 static u8 frame_seq_nb2,battary,button,uwb_losttimer,taglist_pos;
-
+uint8_t rec_num[3];
 static u8 tagofflinetime[ANC_MAX_NUM];
 u8 taglist_num;
 uint16_t tagid_list[ANC_MAX_NUM],tagdist_list[ANC_MAX_NUM];
@@ -78,21 +78,25 @@
     dwt_writetxdata(38, send_buffer, 0);//写入发送数据
     dwt_writetxfctrl(38, 0);//设定发送长度
     result = dwt_starttx(DWT_START_TX_DELAYED);
-
-    start_time=HAL_LPTIM_ReadCounter(&hlptim1);
-    timeout=100; //单位0.1ms
-    end_time=start_time+(timeout<<2);
-    if(end_time>=32768)
+    if(result==0)
     {
-        end_time-=32768;
-    }
-    current_time=HAL_LPTIM_ReadCounter(&hlptim1);
-    while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & SYS_STATUS_TXFRS ))///不断查询芯片状态直到接收成功或者出现错误
-    {
+        rec_num[2]++;
+        start_time=HAL_LPTIM_ReadCounter(&hlptim1);
+        timeout=100; //单位0.1ms
+        end_time=start_time+(timeout<<2);
+        if(end_time>=32768)
+        {
+            end_time-=32768;
+        }
         current_time=HAL_LPTIM_ReadCounter(&hlptim1);
-        if(current_time>=end_time&&current_time<end_time+15000)
-            break;
-    };
+        while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & SYS_STATUS_TXFRS ))///不断查询芯片状态直到接收成功或者出现错误
+        {
+            current_time=HAL_LPTIM_ReadCounter(&hlptim1);
+            if(current_time>=end_time&&current_time<end_time+15000)
+                break;
+        };
+    }
+
     tagofflinetime[taglist_pos] = 0;
 //            printf("测距成功,序号%d,距离%d\r\n",frame_seq_nb2,tagdist_list[taglist_pos]);
 //            delay_ms(10);
@@ -129,6 +133,7 @@
     return i;
 }
 uint32_t temp231;
+
 void MbxTagUwbRec(void)
 {
 
@@ -149,6 +154,7 @@
     {
         end_time-=32768;
     }
+    rec_num[0]++;
     current_time=HAL_LPTIM_ReadCounter(&hlptim1);
 
     while (!((status_reg = dwt_read32bitreg(SYS_STATUS_ID)) & (SYS_STATUS_RXFCG | SYS_STATUS_ALL_RX_ERR)))//不断查询芯片状态直到接收成功或者出现错误
@@ -165,7 +171,7 @@
 
         dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_RXFCG | SYS_STATUS_TXFRS);
         frame_len = dwt_read32bitreg(RX_FINFO_ID) & RX_FINFO_RXFL_MASK_1023;//获得接收数据长度
-
+        rec_num[1]++;
         dwt_readrxdata(rx_buffer, frame_len, 0);//读取接收数据
         memcpy(&anc_id_recv,&rx_buffer[ANCHOR_ID_IDX],2);
         //将收到的tag_id分别写入各次通讯的包中,为多标签通讯服务,防止一次通讯中接收到不同ID标签的数据

--
Gitblit v1.9.3