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