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