From bccfff0ace10f85619e9f1fd4b2806f99e9390c2 Mon Sep 17 00:00:00 2001 From: chen <15335560115@163.com> Date: 星期六, 16 八月 2025 18:33:27 +0800 Subject: [PATCH] 防丢标签V1.0,demo版本实现震动和测距 --- keil/uwb_tag.c | 28 ++++++++++++++++++++++++++-- 1 files changed, 26 insertions(+), 2 deletions(-) diff --git a/keil/uwb_tag.c b/keil/uwb_tag.c index ffddf52..8a8ff09 100644 --- a/keil/uwb_tag.c +++ b/keil/uwb_tag.c @@ -36,7 +36,7 @@ #define FINAL_MSG_RESP_RX_TS_IDX 14 #define FINAL_MSG_FINAL_TX_TS_IDX 18 #define DELAY_DEFAULT 50000 -#define DELAY_BETWEEN_TWO_FRAME_UUS 500 //yuan1400 +#define DELAY_BETWEEN_TWO_FRAME_UUS 550 //yuan1400 #define HALF_SECOND_TIME 62400000 uint16_t CmpTagInList(uint16_t tagid); @@ -401,6 +401,7 @@ { taglist_id[j]=taglist_id[i]; taglist_keeptime[j++]=taglist_keeptime[i];//自动覆盖,即从前往后寻找存活时间为0的标签,并把它用后面离得最近的第一个有效存活的标签覆盖,那么最后j的值就是当前有效个数 + } } temp_j=j; @@ -564,7 +565,25 @@ } } uint8_t motor_keeptime,motor_state; +uint8_t tagmotortime_list[MAX_TAG_LIST_NUM]; uint32_t reboot_num; + +void search_in_motor_list(void) +{ + uint8_t min_index; + for (int i = 1; i < taglist_total_num; i++) { + if (taglist_dist[i] < taglist_dist[min_index]) { + min_index = i; + } + } + + // 将最小距离对应的时间值赋给motor_keeptime + motor_keeptime = tagmotortime_list[min_index]; +// tagmotortime_list[min_index]=0; + if(taglist_total_num==0)//仅表示在线的 + motor_keeptime=0; +} +uint8_t num1,temp_index4; int TagRange(void) { if(readgcom_flag) @@ -663,7 +682,12 @@ freqlost_count = 0; temp_index =rec_tag_index -taglist_current_index; SetANCTimestap(temp_index,&rx_buf[RESP_MSG_POLL_RX_TS_IDX],&rx_buf[RESP_MSG_RESP_TX_TS_IDX],(uint32_t)resp_rx_ts_i64,&rx_buf[RESP_MSG_ANC_DISTOFFSET],test2,(uint32_t)poll_tx_ts_i64); - motor_keeptime=rx_buf[RESP_MSG_TAG_MOTOR]; + tagmotortime_list[rec_tag_index]=rx_buf[RESP_MSG_TAG_MOTOR]; + if(rx_buf[RESP_MSG_TAG_MOTOR]==5) + { + num1++; + temp_index4=rec_tag_index; + } // if(rec_nearbasepos>=nearbase_num) //发现新的基站 // { // //get_newbase=1; -- Gitblit v1.9.3