From 310754a3de9ee12cbabc4b46ab2c144c62fa8d7e Mon Sep 17 00:00:00 2001
From: zhyinch <zhyinch@gmail.com>
Date: 星期六, 13 八月 2022 21:27:35 +0800
Subject: [PATCH] V2.53 增加震动状态上传和震动实时响应功能

---
 Src/application/dw_app.c |   42 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c
index d97279d..0eb9c2a 100644
--- a/Src/application/dw_app.c
+++ b/Src/application/dw_app.c
@@ -81,7 +81,7 @@
     SINGLEPOLL,
 }tag_state=STARTPOLL;
 static dwt_config_t config = {
-	3,               /* Channel number. */
+	2,               /* Channel number. */
 	DWT_PRF_64M,     /* Pulse repetition frequency. */
 	DWT_PLEN_128,    /* Preamble length. */
 	DWT_PAC8,        /* Preamble acquisition chunk size. Used in RX only. */
@@ -573,7 +573,7 @@
                 memcpy(&mindist_ancid,&rx_buffer[ANCHOR_ID_IDX],2);
                 
             }
-            send_buffer[MESSAGE_TYPE_IDX] = FINAL;	
+            send_buffer[MESSAGE_TYPE_IDX] = DISCOVERFINAL;	
 			/* Compute final message transmission time. See NOTE 9 below. */
 			final_tx_time = (resp_rx_ts + (600 * UUS_TO_DWT_TIME)) >> 8;//计算final包发送时间,T5=T4+Treply2
 			dwt_setdelayedtrxtime(final_tx_time);//设置final包发送时间T5
@@ -769,7 +769,34 @@
 //			tyncpoll_time = (tagslotpos--%max_slotpos)*slottime;
 	}
 }
+void SendHuiZongData(void)
+{
+                usart_send[2] = 0x0c;//正常模式 
+					usart_send[3] = 15+8*(nearbase_num+1);//数据段长度
+					memcpy(&usart_send[4],&dev_id,2);
+                    usart_send[6] = frame_seq_nb;
+                    usart_send[7] = frame_seq_nb>>8;
+					usart_send[8] = bat_percent;
+                    usart_send[9] = tx_near_msg[BUTTON_IDX];
+
+                    memcpy(&usart_send[10],&intheight,2);
+					usart_send[12] = tag_frequency;
+                    usart_send[13] = tagslotpos;
+                    usart_send[14] = 0;
+                    usart_send[15] = 0;
+					usart_send[16] = nearbase_num+1;
+                    memcpy(&usart_send[17],&mainbase_id,2);
+                    memcpy(&usart_send[19],&nearbaseid_list,2*nearbase_num);
+                    memcpy(&usart_send[19+nearbase_num*2],&nearbase_distlist,4*nearbase_num+4);
+					 memcpy(&usart_send[19+nearbase_num*6+4],&rec_anc_signalpower,2*nearbase_num+2);
+                    
+					checksum = Checksum_u16(&usart_send[2],23+8*nearbase_num);
+					memcpy(&usart_send[25+8*nearbase_num],&checksum,2);
+					USART_puts(usart_send,27+8*nearbase_num);
+					//HexToAsciiSendUDP(usart_send,27+8*nearbase_num);
+}
 uint8_t pack_length = 0,pack_index = 0,pack_msgtype = 0;
+uint8_t motor_flag;
 void NearPoll(void)
 {
 	
@@ -794,9 +821,15 @@
 
 	recbase_num=0;
 //	motor_state=0;
+    if(motor_state!=0&&motor_state!=3)
+    {
+        motor_flag = 1;
+    }else{
+        motor_flag = 0;
+    }
 	
 	tx_near_msg[BATTARY_IDX] = bat_percent;
-	tx_near_msg[BUTTON_IDX] = userkey_state|stationary_flag<<1|gotosleep_flag<<2;
+	tx_near_msg[BUTTON_IDX] = userkey_state|stationary_flag<<1|gotosleep_flag<<2|motor_flag<<5;
 	tx_near_msg[SEQUENCE_IDX] = frame_seq_nb;
   tx_near_msg[SEQUENCEH_IDX] = (frame_seq_nb++)>>8;
 	tx_near_msg[NEARBASENUM_INDEX] = nearbase_num;
@@ -1037,7 +1070,7 @@
 				{
 					if( pack_index == MOTOR_ONTIME_INDEX)
 					{
-                        if(motor_keeptime==0)
+                       // if(motor_keeptime==0)
                             motor_keeptime = rec_remotepara[3];
 					}else{
                         if(pack_index<200)
@@ -1071,6 +1104,7 @@
 									nearbaseid_list0[i]=1;
                 }
 			}
+        //    SendHuiZongData();
 	dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR| SYS_STATUS_TXFRS |SYS_STATUS_RXFCG);
 //HAL_GPIO_WritePin(LED0_GPIO, GPIO_PIN_9, GPIO_PIN_RESET);
 

--
Gitblit v1.9.3