From 5f02075313d646cd2bdb7a5ff720870455ba61fc Mon Sep 17 00:00:00 2001
From: yincheng.zhong <634916154@qq.com>
Date: 星期三, 29 十一月 2023 10:08:12 +0800
Subject: [PATCH] V1.4 去掉阈值修改,增加滤波功能,客户反馈还不行

---
 源码/核心板/Src/application/dw_app.c |   45 +++++++++++++++++++++++++++++----------------
 1 files changed, 29 insertions(+), 16 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 bd021f0..d9533db 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"
@@ -137,7 +137,7 @@
     /* Configure DW1000. See NOTE 6 below. */
     dwt_configure(&config);//配置DW1000
 	
-    SetNLOSNTMSettings();
+  //  SetNLOSNTMSettings();
 	
     /* Apply default antenna delay value. See NOTE 1 below. */
     dwt_setrxantennadelay(RX_ANT_DLY);		//设置接收天线延迟
@@ -743,7 +743,7 @@
 u16 taglist_num=0,taglist_pos;
 u16 tagid_list[TAG_NUM_IN_SYS],tagstate_list[TAG_NUM_IN_SYS];;
 u8 tagofflinetime[TAG_NUM_IN_SYS];
-int32_t tagdist_list[TAG_NUM_IN_SYS];
+int32_t tagdist_list[TAG_NUM_IN_SYS],tag_histdist_list[TAG_NUM_IN_SYS];
 void TagListUpdate(void)
 {
 	u16 i,j=0,temp[TAG_NUM_IN_SYS];
@@ -879,6 +879,7 @@
 int32_t filter_dist,filter_speed;
 u8 newmeasure,recpoll_len;
 uint8_t temp_nearbaspos;
+float fiter_p;
 uint8_t Anchor_RecNearPoll(uint8_t ancrec_nearbasepos) //0 mainbase  1 first near_base
 {
 	uint8_t motorstate;
@@ -958,20 +959,32 @@
             }
             if(!seize_anchor)
             {
-                usart_send[2] = 1;//正常模式 
-                usart_send[3] = 17;//数据段长度
-                usart_send[4] = frame_seq_nb2;//数据段长度
-                memcpy(&usart_send[5],&tag_id_recv,2);
-                memcpy(&usart_send[7],&dev_id,2);
-                memcpy(&usart_send[9],&tagdist_list[taglist_pos],4);
-                usart_send[13] = battary;
-                usart_send[14] = button;
-                usart_send[15] = firstpath_power;
-                usart_send[16] = rx_power;
-                checksum = Checksum_u16(&usart_send[2],17);
-                memcpy(&usart_send[19],&checksum,2);
-               
-                UART_PushFrame(usart_send,21);
+            if(abs(tagdist_list[taglist_pos]-tag_histdist_list[taglist_pos])<g_com_map[SPEEDFILTER_THRES]||misdist_num[taglist_pos]>3)
+                {                      
+                    if(tag_histdist_list[taglist_pos]>0&&tag_histdist_list[taglist_pos]<50000)
+                    {
+                        filter_dist=tagdist_list[taglist_pos]*fiter_p+(1-fiter_p)*tag_histdist_list[taglist_pos];
+                    }else{
+                        filter_dist = tagdist_list[taglist_pos];
+                    }
+                    tag_histdist_list[taglist_pos] = filter_dist; 
+                    usart_send[2] = 1;//正常模式 
+                    usart_send[3] = 17;//数据段长度
+                    usart_send[4] = frame_seq_nb2;//数据段长度
+                    memcpy(&usart_send[5],&tag_id_recv,2);
+                    memcpy(&usart_send[7],&dev_id,2);
+                    memcpy(&usart_send[9],&tag_histdist_list[taglist_pos],4);
+                    usart_send[13] = battary;
+                    usart_send[14] = button;
+                    usart_send[15] = firstpath_power;
+                    usart_send[16] = rx_power;
+                    checksum = Checksum_u16(&usart_send[2],17);
+                    memcpy(&usart_send[19],&checksum,2);
+                   
+                    UART_PushFrame(usart_send,21);
+            }else{
+                misdist_num[taglist_pos]++;
+            }
             }                
 
 }

--
Gitblit v1.9.3