From 5b6fe0edc2790d1948c09b191a2a565e8874f875 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期二, 24 五月 2022 09:57:23 +0800 Subject: [PATCH] V1.64 只和3个基站测距 --- 源码/核心板/Src/application/dw_app.c | 23 ++++++++++++++++------- 1 files changed, 16 insertions(+), 7 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 6b63b94..531fcdb 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" @@ -294,7 +294,7 @@ } return random_value; } -u8 GetRandomSlotPos(uint32_t emptyslot) +u8 GetRandomSlotPos(uint32_t emptyslot) //随机选一个位置,如果被占用,则从头到尾选择第一个没被占用的位置 { u8 i,temp_value; temp_value = GetRandomValue(); @@ -461,10 +461,13 @@ memcpy(&temp_dist,&rx_buffer[DIST_IDX],4); tagrec_datalen = rx_buffer[RT_USERDATA_INDEX+2]; memcpy(&rec_userdata_targetid,&rx_buffer[RT_USERDATA_INDEX],2); - if(tagrec_datalen==USERDATA_LEN&&rec_userdata_targetid==dev_id) + if(tagrec_datalen==USERDATA_LEN) { + if(rec_userdata_targetid==dev_id||rec_userdata_targetid==0xffff) + { memcpy(tagrec_userdata,&rx_buffer[RT_USERDATA_INDEX+2],tagrec_datalen+1); - OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen); + OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen); + } } nearbase_distlist[rec_nearbasepos]=temp_dist; if(temp_dist!=0x1ffff) @@ -526,10 +529,13 @@ memcpy(&temp_dist,&rx_buffer[DIST_IDX],4); tagrec_datalen = rx_buffer[RT_USERDATA_INDEX+2]; memcpy(&rec_userdata_targetid,&rx_buffer[RT_USERDATA_INDEX],2); - if(tagrec_datalen==USERDATA_LEN&&rec_userdata_targetid==dev_id) + if(tagrec_datalen==USERDATA_LEN) { + if(rec_userdata_targetid==dev_id||rec_userdata_targetid==0xffff) + { memcpy(tagrec_userdata,&rx_buffer[RT_USERDATA_INDEX+2],tagrec_datalen+1); - OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen); + OutputUserData(rec_nearbaseid,tagrec_userdata,tagrec_datalen); + } } nearbase_distlist[rec_nearbasepos]=temp_dist; @@ -1149,10 +1155,13 @@ rec_nearbase_num=rx_buffer[NEARBASENUM_INDEX]; tagrec_datalen = rx_buffer[NEARBASEID_INDEX+rec_nearbase_num*2+2]; memcpy(&rec_userdata_targetid,&rx_buffer[NEARBASEID_INDEX+rec_nearbase_num*2],2); - if(tagrec_datalen==USERDATA_LEN&&rec_userdata_targetid==dev_id) + if(tagrec_datalen==USERDATA_LEN) { + if(rec_userdata_targetid==dev_id||rec_userdata_targetid==0xffff) + { memcpy(tagrec_userdata,&rx_buffer[NEARBASEID_INDEX+rec_nearbase_num*2+2],tagrec_datalen+1); - OutputUserData(tag_id_recv,tagrec_userdata,tagrec_datalen); + OutputUserData(tag_id_recv,tagrec_userdata,tagrec_datalen); + } } if(rec_nearbase_num>ancidlist_num) { -- Gitblit v1.9.3