From dd7cafaa933d27a9cabcf071147cb8ad09b49c62 Mon Sep 17 00:00:00 2001 From: zhyinch <zhyinch@gmail.com> Date: 星期四, 20 五月 2021 10:23:47 +0800 Subject: [PATCH] V1.50 增加小组功能 --- 源码/核心板/Src/application/dw_app.c | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 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 774a2b6..c98ce3b 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" @@ -137,6 +137,7 @@ * As this example only handles one incoming frame with always the same delay and timeout, those values can be set here once for all. */ //设置接收超时时间 } +extern u16 group_id; void Dw1000_App_Init(void) { //g_com_map[DEV_ID] = 0x0b; @@ -145,6 +146,10 @@ tx_final_msg[MESSAGE_TYPE_IDX]=FINAL; tx_sync_msg[MESSAGE_TYPE_IDX]=SYNC; + memcpy(&tx_poll_msg[GROUP_ID_IDX], &group_id, 1); + memcpy(&tx_final_msg[GROUP_ID_IDX], &group_id, 1); + memcpy(&tx_resp_msg[GROUP_ID_IDX], &group_id, 1); + memcpy(&tx_poll_msg[TAG_ID_IDX], &dev_id, 2); memcpy(&tx_final_msg[TAG_ID_IDX], &dev_id, 2); memcpy(&tx_resp_msg[ANCHOR_ID_IDX], &dev_id, 2); @@ -333,6 +338,7 @@ last_nearbase_num=next_nearbase_num; nearbase_num=next_nearbase_num; recbase_num=0; + tx_nearpoll_msg[GROUP_ID_IDX] = group_id; tx_nearpoll_msg[BATTARY_IDX] = Get_Battary(); tx_nearpoll_msg[BUTTON_IDX] = !READ_KEY0; tx_nearpoll_msg[SEQUENCE_IDX] = frame_seq_nb++; @@ -451,6 +457,7 @@ final_msg_set_ts(&tx_nearfinal_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX], resp_rx_ts); final_msg_set_ts(&tx_nearfinal_msg[FINAL_MSG_FINAL_TX_TS_IDX], final_tx_ts); tx_nearfinal_msg[MESSAGE_TYPE_IDX]=NEAR_FINAL; + tx_nearfinal_msg[GROUP_ID_IDX] = group_id; 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); @@ -899,7 +906,7 @@ { return 1; } - if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_FINAL&&!memcmp(&rx_buffer[TAG_ID_IDX],&tag_id_recv,2)) //判断是否为Final包 + if (rx_buffer[MESSAGE_TYPE_IDX] == NEAR_FINAL&&!memcmp(&rx_buffer[TAG_ID_IDX],&tag_id_recv,2)&&group_id==rx_buffer[GROUP_ID_IDX]) //判断是否为Final包 { uint32_t poll_tx_ts, resp_rx_ts, final_tx_ts; uint32_t poll_rx_ts_32, resp_tx_ts_32, final_rx_ts_32; @@ -1083,6 +1090,8 @@ #endif if(tag_id_recv>=g_com_map[WHITELIST1_START]&&tag_id_recv<=g_com_map[WHITELIST1_END]) {break;} + if(group_id!=rx_buffer[GROUP_ID_IDX]) + {break;} taglist_pos=CmpTagInList(tag_id_recv); if(taglist_pos==taglist_num) { -- Gitblit v1.9.3