From 4619bf589dca444b867173ec409e0346836db587 Mon Sep 17 00:00:00 2001 From: yincheng.zhong <634916154@qq.com> Date: 星期三, 09 八月 2023 17:01:58 +0800 Subject: [PATCH] V2.71 1.增加随机时间片模式,标签初始不注册,直接进入搜索模式查找附近最近基站,然后随机挑选时间片,进行定位。 此模式标签和基站定位不需要基站下发时间片。 2.标签输出55AA0C报文,可以通过串口进入电脑上位机,进行定位。这种模式下定位延迟基本可忽略。 --- Src/application/dw_app.c | 26 +++++++++++++++++++++----- 1 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Src/application/dw_app.c b/Src/application/dw_app.c index a5ac547..7cde645 100644 --- a/Src/application/dw_app.c +++ b/Src/application/dw_app.c @@ -68,8 +68,12 @@ #define FINAL_MSG_RESP_RX_TS_IDX 14 #define FINAL_MSG_FINAL_TX_TS_IDX 18 #define FINAL_MSG_TS_LEN 4 - -#define STARTPOLL REGPOLL//#define SWITCHBASE_DIST +#define SUIJI_SHIJIANPIAN +#ifdef SUIJI_SHIJIANPIAN +#define STARTPOLL DISCPOLL//#define SWITCHBASE_DIST +#else +#define STARTPOLL REGPOLL +#endif #define SWITCHBASE_ZHUANDIAN #define SWITCHBASE_DIST enum enumtagstate @@ -226,7 +230,7 @@ } u16 tag_time_recv[TAG_NUM_IN_SYS]; -u8 usart_send[25]; +u8 usart_send[250]; u8 battary,button; extern uint8_t g_pairstart; void tag_sleep_configuraion(void) @@ -775,6 +779,8 @@ } void SendHuiZongData(void) { + usart_send[0] = 0x55; + usart_send[1] = 0xaa; usart_send[2] = 0x0c;//正常模式 usart_send[3] = 15+8*(nearbase_num+1);//数据段长度 memcpy(&usart_send[4],&dev_id,2); @@ -843,12 +849,18 @@ #else clockOffsetRatio = anc_clockoffset[i] * (FREQ_OFFSET_MULTIPLIER * HERTZ_TO_PPM_MULTIPLIER_CHAN_5 / 1.0e6) ; #endif - rtd_init = tag_resprx[i] - poll_tx_ts; + rtd_init = tag_resprx[i] - poll_tx_ts&0xffffffff; rtd_resp = anc_resptx[i] - anc_pollrx[i]; tof = ((rtd_init - rtd_resp * (1 - clockOffsetRatio)) / 2.0) * DWT_TIME_UNITS; distance = tof * SPEED_OF_LIGHT; if(distance>-10&&distance<1000) + { nearbase_distlist[i] = distance*100+anc_distoffset[i]; +// if(nearbase_distlist[i]>4000) +// { +// nearbase_distlist[i] = 4100; +// } + } }else{ nearbase_distlist[i] = 0x1ffff; } @@ -1180,7 +1192,7 @@ nearbaseid_list0[i]=1; } } - // SendHuiZongData(); + 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); @@ -1304,6 +1316,10 @@ case DISCPOLL: LED_LG_ON; DiscPoll(); +#ifdef SUIJI_SHIJIANPIAN + if(tagslotpos--<2) + tagslotpos=bigslot_num; +#endif LED_LG_OFF; break; case GETNEARMSG: -- Gitblit v1.9.3