From 8e3c571a48a30e8c1bd07dca4786a53d7c9994f5 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期一, 19 十月 2020 10:49:54 +0800 Subject: [PATCH] 修改基站临近接收BUG --- 源码/核心板/Src/application/dw_app.c | 60 ++++++++++-------------------------------------------------- 1 files changed, 10 insertions(+), 50 deletions(-) diff --git "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" index cb75c4a..32474ef 100644 --- "a/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" +++ "b/\346\272\220\347\240\201/\346\240\270\345\277\203\346\235\277/Src/application/dw_app.c" @@ -551,14 +551,8 @@ resp_rx_ts = get_rx_timestamp_u64(); //获得RESPONSE接收时间T4 recbase_num++; memcpy(&rec_nearbaseid,&rx_buffer[ANCHOR_ID_IDX],2); - if(last_nearbase_num==0) - { - get_newbase=1; - nearbaseid_list[0]=rec_nearbaseid; - nearbase_num=1; - memcpy(&tx_nearfinal_msg[ANCHOR_ID_IDX],&rec_nearbaseid,2); - } - if(rec_nearbaseid==nearbaseid_list[0]) + + if(rec_nearbaseid==mainbase_id) { //////////////////////////////////时间同步 temp_sync_timer2=sync_timer; @@ -593,7 +587,7 @@ rec_nearbasepos=0; memcpy(&temp_dist,&rx_buffer[DIST_IDX],4); - nearbase_distlist[rec_nearbasepos]=temp_dist; + mainbase_dist = temp_dist; if(temp_dist!=0x1ffff) exsistbase_list[rec_nearbasepos]=KEEP_TIMES; @@ -611,35 +605,6 @@ dwt_writetxdata(28+nearbase_num*4, tx_nearfinal_msg, 0);//将发送数据写入DW1000 dwt_writetxfctrl(28+nearbase_num*4, 0);//设定发送数据长度 memcpy(&rec_tagpos_binary,&rx_buffer[NEARMSG_EMPTYSLOTPOS_INDEX],4); - if(temp_dist!=0x1ffff) - { - #ifdef TAG_OUTPUT - #ifndef USART_INTEGRATE_OUTPUT - usart_send[2] = 1;//正常模式 - usart_send[3] = 17;//数据段长度 - usart_send[4] = frame_seq_nb;//数据段长度 - if(g_com_map[DEV_ROLE]) - { - memcpy(&usart_send[5],&dev_id,2); - memcpy(&usart_send[7],&rec_nearbaseid,2); - }else{ - memcpy(&usart_send[5],&rec_nearbaseid,2); - memcpy(&usart_send[7],&dev_id,2); - } - memcpy(&usart_send[9],&rx_buffer[DIST_IDX],4); - usart_send[13] = battary; - usart_send[14] = button; - checksum = Checksum_u16(&usart_send[2],17); - memcpy(&usart_send[19],&checksum,2); - UART_PushFrame(usart_send,21); - #endif - #endif - - //dwt_setdelayedtrxtime(final_tx_time);//设置final包发送时间T5 - // result=dwt_starttx(DWT_START_TX_DELAYED);//设定为延迟发送 - //dwt_writetxdata(4,&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos+1)*4], FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos+1)*4);//将发送数据写入DW1000 - } - }else{ rec_nearbasepos=FindNearBasePos(rec_nearbaseid); @@ -767,17 +732,7 @@ } report_num=0; - for (i=0;i<last_nearbase_num;i++) - { - nearbaseid_list[i]=true_nearbase_idlist[i]; - nearbase_distlist[i]=true_nearbase_distlist[i]; - if(nearbase_distlist[i]!=0x1ffff&&true_exsistbase_list[i]==KEEP_TIMES) - { - memcpy(&usart_send[4+6*report_num],&nearbaseid_list[i],2); - memcpy(&usart_send[6+6*report_num],&nearbase_distlist[i],4); - report_num++; - } - } + for(i=0;i<MAX_NEARBASE_NUM;i++) { nearbase_distlist[i]=0x1ffff; @@ -1227,6 +1182,10 @@ ancidlist_num=rec_nearbase_num; memcpy(ancidlist_rec,&rx_buffer[NEARBASEID_INDEX],rec_nearbase_num*2); } + if(anc_id_recv==dev_id) + { + Anchor_RecNearPoll(0); + }else{ for(i=0;i<rec_nearbase_num;i++) { @@ -1234,10 +1193,11 @@ if(tempid==dev_id) { seize_anchor=0; //非抢占。已存在列表中 - Anchor_RecNearPoll(i); + Anchor_RecNearPoll(i+1); break; } } + } //抢占模式 // if(i==rec_nearbase_num) // { -- Gitblit v1.9.3