From b13574876322e59f75f26ac38f72c6b19c9d4aba Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期五, 27 六月 2025 14:02:08 +0800 Subject: [PATCH] 刚解决完网关下发会导致异常问题,但蓝牙那边mk给蓝牙发未配置成功未解决,开始调lora功耗 --- keil/include/drivers/uwb_app.c | 32 +++++++++++++++++++++++++------- 1 files changed, 25 insertions(+), 7 deletions(-) diff --git a/keil/include/drivers/uwb_app.c b/keil/include/drivers/uwb_app.c index ca02d07..956fe4e 100644 --- a/keil/include/drivers/uwb_app.c +++ b/keil/include/drivers/uwb_app.c @@ -281,7 +281,7 @@ /* RX done process handler. */ int8_t rssi; uint32_t range_timeout_us = 2000000;//yuan5000 -uint8_t flag_temp2,flag_temp1; +uint8_t flag_temp2,flag_temp1,resp_tx_flag; uint16_t uwb_losttimer; static void rx_int_callback(struct MAC_HW_REPORT_T *rx_report) { uint8_t valid_sts=0; @@ -290,7 +290,7 @@ /** UWB RX success */ if (rx_report->err_code == UWB_RX_OK) - { + { resp_tx_flag=0; /* Received data does not contain FCS */ rx_length = rx_report->pkt_len; memcpy(rx_buf, rx_report->pkt_data, rx_length); @@ -303,6 +303,10 @@ rssi = rx_report->rssi; receive_flag=1; Anchor_App(); + if(resp_tx_flag==0) + { + OpenUWB(); + } #ifdef STS_MODE valid_sts= sts_valid_check(); if (valid_sts) @@ -330,9 +334,9 @@ temp_count= phy_timer_count_get(); memcpy(&rx_rpt, rx_report, sizeof(struct MAC_HW_REPORT_T)); rx_length = 0; - // OpenUWB();//再次开启UWB接收 + OpenUWB();//再次开启UWB接收 } - OpenUWB();//再次开启UWB接收 + //OpenUWB();//再次开启UWB接收 } /* TX done process handler. */ @@ -346,6 +350,7 @@ { temp_count= phy_timer_count_get(); temp_internal=temp_count; + OpenUWB(); resp_tx_num++; // 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); @@ -461,11 +466,18 @@ // } // anchordata_num=j; //} +uint16_t report_ancdist[ANC_MAX_NUM],report_ancid[ANC_MAX_NUM]; void TagListUpdate(void) { uint16_t i,j=0,k=0; for(i=0; i<taglist_num; i++) - { + { + + if(tagofflinetime[i]<REPORT_TAG_KEEPTIMES) + { + report_ancid[k]=tagid_list[i]; + report_ancdist[k++]=(uint16_t)tagdist_list[i]; + } if(tagofflinetime[i]++<TAG_KEEPTIMES) { tagid_list[j]=tagid_list[i]; @@ -474,6 +486,7 @@ tagofflinetime[j++]=tagofflinetime[i]; } } + report_ancnum = k; taglist_num=j; } @@ -509,6 +522,7 @@ temp_resp_i64=resp_tx_ts_i64; temp_count3= phy_timer_count_get(); flag_temp2=uwb_tx(send_buffer, 40,1 ,resp_tx_en_start_u32);//立即发送测试size大小 + resp_tx_flag=1;//限制重复开启 tagofflinetime[taglist_pos] = 0;//更新标签通信 // temp_count1=phy_timer_count_get(); //while(mac_is_busy()); @@ -529,8 +543,11 @@ enumwltagstate wltag_state=RANGE; uint32_t wltag_statetimer,wltag_uwbtimer; uint32_t uwbtasktimer=0,uwbtagsendtimer=0; +uint8_t report_ancnum; +uint16_t report_ancdist[ANC_MAX_NUM],report_ancid[ANC_MAX_NUM]; void IdleTask(void) {UART_CheckReceive(); + UART0_CheckReceive(); //if(read_5v_input_pca()) // { // if(state5v==0) @@ -584,7 +601,7 @@ if(secondtask_search_flag)//更新S时间TICK { HIDO_TimerTick(); - TagListUpdate(); + //TagListUpdate(); // GPS_Poll(); // if(nomove_count<=g_com_map[NOMOVESLEEP_TIME])//防止溢出 // nomove_count++; @@ -734,6 +751,7 @@ Anchor_RecNearPoll(rec_nearbase_num); } } + //LOG_INFO(TRACE_MODULE_APP,"存在时间%d. \r\n", tagofflinetime[0]); } @@ -1047,7 +1065,7 @@ } //gpio_pin_clr(SCL_PIN);//测试 - LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 信号强度ANT0:%f,信号强度ANT2: %f\r\n",g_com_map[BIND_DEV_ID],distance,sts_rssi[0],sts_rssi[2]); + //LOG_INFO(TRACE_MODULE_APP,"标签ID:%X,距离: %d 信号强度ANT0:%f,信号强度ANT2: %f\r\n",g_com_map[BIND_DEV_ID],distance,sts_rssi[0],sts_rssi[2]); return 1;//返回发送成功标志 } -- Gitblit v1.9.3