From 84a8c0418e0f8ba87427afe20a345992f8764130 Mon Sep 17 00:00:00 2001 From: zhangbo <zhangbo@qq.com> Date: 星期五, 09 五月 2025 18:10:31 +0800 Subject: [PATCH] 修改了休眠唤不醒,以及测距一段时间不测距 --- keil/uwb_app.c | 33 +++++++++++++++++++++------------ 1 files changed, 21 insertions(+), 12 deletions(-) diff --git a/keil/uwb_app.c b/keil/uwb_app.c index 9389d22..7c425ea 100644 --- a/keil/uwb_app.c +++ b/keil/uwb_app.c @@ -11,6 +11,8 @@ #include "board.h" #include "lib_aoa.h" #include "WS2812.h" +#include "TCPClient.h" + extern int simple_main(void); extern int temp_main(void); void Calibration_Time(void); @@ -81,7 +83,7 @@ #define RANGING_PERIOD_MS (1000) /* This is the delay from Frame RX POLL frame to send RESP Frame */ -#define POLL_RX_TO_RESP_TX_DLY_US 670U //yuan550极限 +#define POLL_RX_TO_RESP_TX_DLY_US 550U //yuan550极限 //#define POLL_RX_TO_RESP_TX_DLY_US 550U //yuan550极限 #define RESP_TX_TO_FINAL_RX_DLY_US 500U @@ -141,7 +143,7 @@ // .phy_cfg.sts_seglen = STS_SEGLEN_BPRF_64, /* Number of symbols in an STS segment */ // .phy_cfg.rx_ant_id = UWB_RX_ANT_3, /* UWB RX antenna port */ //}; -#ifdef UWB_DW1000_XB +#ifdef UWB_MK8000_XB static struct mk_uwb_configure config = { .phy_work_mode = (uint8_t)(PHY_TX | PHY_RX), .phy_cfg.ch_num = 5, /* Channel number. */ @@ -158,7 +160,7 @@ .phy_cfg.rx_ant_id = UWB_RX_ANT_3, /* UWB RX antenna port */ }; #endif -#ifdef UWB_DW1000_MBXJZ +#ifdef UWB_DW1000_MBXJZ_OLD static struct mk_uwb_configure config = { .phy_work_mode = (uint8_t)(PHY_TX | PHY_RX), .phy_cfg.ch_num = 5, /* Channel number. */ @@ -356,9 +358,9 @@ Anchor_App(); if(resp_tx_flag==0) { - #ifdef UWB_CK + OpenUWB(); - #endif + } // #ifdef STS_MODE // valid_sts= sts_valid_check(); @@ -389,9 +391,9 @@ memcpy(&rx_rpt, rx_report, sizeof(struct MAC_HW_REPORT_T)); rx_length = 0; receive_error_flag=1; - #ifdef UWB_CK + OpenUWB(); - #endif + // OpenUWB();//再次开启UWB接收 } // CloseUWB(); @@ -412,9 +414,9 @@ temp_count= phy_timer_count_get(); temp_internal=temp_count; resp_tx_num++; - #ifdef UWB_CK + OpenUWB(); - #endif + // OpenUWB();//再次开启UWB接收 //LOG_INFO(TRACE_MODULE_APP, "poll_rx_num is %d,resp_tx_num is %d\r\n",poll_rx_num,resp_tx_num); } @@ -734,7 +736,7 @@ checksum = Checksum_u16(&usart_send[2],15+5*taglist_num); memcpy(&usart_send[17+5*taglist_num],&checksum,2); HexToAsciiSendUDP(usart_send,19+5*taglist_num); - taglist_num = 0; +// taglist_num = 0; // rxnum=0; } void UWBIdleTask(void) @@ -754,17 +756,22 @@ { uwbtasktimer = HIDO_TimerGetTick(); UWBOneSecondTask(); -// UWBSendUDPTask(); + #ifdef UWB_CK + UWBSendUDPTask(); + #endif } } int uwb_app_poll(void) { UWBIdleTask(); } +extern uint8_t uwb_offtime_count; int Anchor_App(void) { uint8_t i; uint16_t tempid; + uwb_offtime_count=0; + CountState_t current_state = STATE_NORMAL; if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL)//判断是否是和自己是同一组通讯的且为poll包 { flag_recsuccess = 1; wltag_state=RANGE;//成功后从search切换为range @@ -779,6 +786,8 @@ memcpy(rec_ancdistlist,&rx_buf[FZ_NEARBASEID_INDEX+2*rec_nearbase_num],2*rec_nearbase_num); memcpy(&rec_antdelay,&rx_buf[FZ_NEARBASEID_INDEX+rec_nearbase_num*4],2); uwbled=BLUE; + + // for(i=0; i<rec_nearbase_num; i++) // { // if(rec_ancidlist[i] == dev_id) @@ -814,7 +823,7 @@ Anchor_RecNearPoll(i); tagdist_list[taglist_pos]=rec_ancdistlist[i]; anchordata_bat[taglist_pos] = battary;//保存该基站电量 - anchor_rssi[taglist_pos]=rssi; + anchor_rssi[taglist_pos]=rssi; if(taglist_pos==taglist_num)// taglist_pos==taglist_num 说明这个基站不在当前列表中 { //tempid==dev_id 说明基站下发测距报文有这个标签的信息 taglist_num++; //满足上述两种情况才会添加基站ID进入列表中,否则会出现标签不在基站列表中,标签也不响应的情况 -- Gitblit v1.9.3