From 612814daf9bb44c4104ab3708d8a5fcba6f2a6d5 Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期五, 23 七月 2021 14:25:42 +0800
Subject: [PATCH] 增加继电器控制时间,还有速度显示

---
 源码/核心板/Src/application/dw_app.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 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 c98ce3b..17a2dd3 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"
@@ -396,7 +396,7 @@
 							dwt_readrxdata(rx_buffer, frame_len, 0);   //读取接收数据
 							dwt_setrxtimeout(0);//DELAY_BETWEEN_TWO_FRAME_UUS*(nearbase_num+1-recbase_num)+10);//设定接收超时时间,0位没有超时时间
 							dwt_rxenable(0);//打开接收
-							if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_RESPONSE&&!memcmp(&rx_buffer[TAG_ID_IDX],&dev_id,2)) //判断接收到的数据是否是response数据
+							if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_RESPONSE&&!memcmp(&rx_buffer[TAG_ID_IDX],&dev_id,2)&&rx_buffer[GROUP_ID_IDX] == group_id) //判断接收到的数据是否是response数据
 							{	u16 rec_nearbaseid,rec_nearbasepos;
 								int32_t temp_dist;
 								poll_tx_ts = get_tx_timestamp_u64();										//获得POLL发送时间T1
@@ -838,6 +838,8 @@
 }
 extern u16 dist_threshold;
 u8 misdist_num[TAG_NUM_IN_SYS],seize_anchor,getrange_success=0;
+int32_t filter_dist,filter_speed;
+u8 newmeasure;
 u8 Anchor_RecNearPoll(u8 ancrec_nearbasepos) //0 mainbase  1 first near_base
 {
 	u8 motorstate;
@@ -873,6 +875,7 @@
 			}else{
 				memcpy(&tx_nearresp_msg[DIST_IDX], &tagdist_list[taglist_pos], 4);
 			}
+            tx_nearresp_msg[GROUP_ID_IDX] = group_id;
 			tx_nearresp_msg[MAINBASE_INDEX]=flag_syncbase;
 			tx_nearresp_msg[MESSAGE_TYPE_IDX]=NEAR_RESPONSE;
 			tx_nearresp_msg[MOTORSTATE_INDEX]=(remotesend_state<<4)|motorstate;
@@ -942,12 +945,14 @@
 					{
 					if(abs(hex_dist-his_dist[taglist_pos])<dist_threshold||misdist_num[taglist_pos]>3)
 					{
-						int32_t filter_dist;
+						
                         g_Resttimer=0;
                         IWDG_Feed();
 						#ifdef TDFILTER
 						NewTrackingDiffUpdate(taglist_pos, (float)hex_dist);
-						filter_dist=pos_predict[taglist_pos]/10;
+						filter_dist = pos_predict[taglist_pos]/10;
+                        filter_speed = vel_predict[taglist_pos]/10;
+                        newmeasure = 1;
 						#else
 						filter_dist=hex_dist/10;
 						#endif
@@ -1019,6 +1024,8 @@
 		memcpy(&anc_id_recv,&rx_buffer[ANCHOR_ID_IDX],2);
 		//将收到的tag_id分别写入各次通讯的包中,为多标签通讯服务,防止一次通讯中接收到不同ID标签的数据
 		memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2);
+       if(group_id==rx_buffer[GROUP_ID_IDX])
+       {
 		switch(rx_buffer[MESSAGE_TYPE_IDX])
 		{
 //			case POLL:
@@ -1090,8 +1097,6 @@
             #endif
 			if(tag_id_recv>=g_com_map[WHITELIST1_START]&&tag_id_recv<=g_com_map[WHITELIST1_END])
 			{break;}
-            if(group_id!=rx_buffer[GROUP_ID_IDX])
-            {break;}
 				taglist_pos=CmpTagInList(tag_id_recv);
 				if(taglist_pos==taglist_num)
 				{
@@ -1136,4 +1141,5 @@
 		dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR);
 	}
 }
+}
 

--
Gitblit v1.9.3