| | |
| | | static uint8_t tx_sync_msg[14] = {0}; |
| | | static uint8_t tx_final_msg[60] = {0}; |
| | | static uint8_t tx_resp_msg[22] = {0}; |
| | | static uint8_t tx_near_msg[32] = {0}; |
| | | static uint8_t tx_near_msg[80] = {0}; |
| | | |
| | | static uint32_t frame_seq_nb = 0; |
| | | static uint32_t status_reg = 0; |
| | |
| | | memcpy(&tx_near_msg[NEARBASEID_INDEX],&nearbaseid_list,nearbase_num*2); |
| | | tx_near_msg[MESSAGE_TYPE_IDX] = NEAR_POLL; |
| | | memcpy(&tx_near_msg[ANCHOR_ID_IDX],&mainbase_id,2); |
| | | dwt_writetxdata(sizeof(tx_near_msg), tx_near_msg, 0);//å°Pollå
æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» |
| | | dwt_writetxfctrl(sizeof(tx_near_msg), 0);//设置è¶
宽带åéæ°æ®é¿åº¦ |
| | | dwt_writetxdata(24, tx_near_msg, 0);//å°Pollå
æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» |
| | | dwt_writetxfctrl(24, 0);//设置è¶
宽带åéæ°æ®é¿åº¦ |
| | | dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED);//å¼å¯åéï¼åé宿åçå¾
䏿®µæ¶é´å¼å¯æ¥æ¶ï¼çå¾
æ¶é´å¨dwt_setrxaftertxdelayä¸è®¾ç½® |
| | | |
| | | neartimout_timer=0; |
| | |
| | | resp_rx_ts = get_rx_timestamp_u64(); //è·å¾RESPONSEæ¥æ¶æ¶é´T4 |
| | | recbase_num++; |
| | | memcpy(&rec_nearbaseid,&rx_buffer[ANCHOR_ID_IDX],2); |
| | | rec_nearbasepos=FindNearBasePos(rec_nearbaseid); |
| | | if(rec_nearbaseid==mainbase_id) |
| | | { |
| | | //æ¶é´åæ¥ |
| | |
| | | dwt_setdelayedtrxtime(final_tx_time);//设置finalå
åéæ¶é´T5 |
| | | final_tx_ts = (((uint64_t)(final_tx_time & 0xFFFFFFFE)) << 8) + TX_ANT_DLY;//finalå
å®é
åéæ¶é´æ¯è®¡ç®æ¶é´å ä¸åé天线delay |
| | | final_msg_set_ts(&tx_near_msg[FINAL_MSG_POLL_TX_TS_IDX], poll_tx_ts);//å°T1ï¼T4ï¼T5åå
¥åéæ°æ® |
| | | final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_TS_IDX], resp_rx_ts); |
| | | final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX], resp_rx_ts); |
| | | final_msg_set_ts(&tx_near_msg[FINAL_MSG_FINAL_TX_TS_IDX], final_tx_ts); |
| | | tx_near_msg[MESSAGE_TYPE_IDX]=NEAR_FINAL; |
| | | dwt_writetxdata(sizeof(tx_near_msg), tx_near_msg, 0);//å°åéæ°æ®åå
¥DW1000 |
| | | dwt_writetxfctrl(sizeof(tx_near_msg), 0);//设å®åéæ°æ®é¿åº¦ |
| | | dwt_writetxdata(28+nearbase_num*4, tx_near_msg, 0);//å°åéæ°æ®åå
¥DW1000 |
| | | dwt_writetxfctrl(28+nearbase_num*4, 0);//设å®åéæ°æ®é¿åº¦ |
| | | result=dwt_starttx(DWT_START_TX_DELAYED);//设å®ä¸ºå»¶è¿åé |
| | | }else{ |
| | | rec_nearbasepos=FindNearBasePos(rec_nearbaseid); |
| | | final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+rec_nearbasepos*4], resp_rx_ts); |
| | | memcpy(&nearbase_distlist[rec_nearbasepos],&rx_buffer[DIST_IDX],4); |
| | | dwt_writetxdata(sizeof(tx_near_msg), tx_near_msg, 0);//å°åéæ°æ®åå
¥DW1000 |
| | |
| | | |
| | | memcpy(&tx_near_msg[DIST_IDX], &tagdist_list[taglist_pos], 4); |
| | | tx_near_msg[MESSAGE_TYPE_IDX]=NEAR_RESPONSE; |
| | | dwt_writetxdata(sizeof(tx_near_msg), tx_near_msg, 0);//åå
¥åéæ°æ® |
| | | dwt_writetxfctrl(sizeof(tx_near_msg), 0);//设å®åéé¿åº¦ |
| | | dwt_writetxdata(24, tx_near_msg, 0);//åå
¥åéæ°æ® |
| | | dwt_writetxfctrl(24, 0);//设å®åéé¿åº¦ |
| | | result = dwt_starttx(DWT_START_TX_DELAYED | DWT_RESPONSE_EXPECTED);//å»¶è¿åéï¼çå¾
æ¥æ¶ |
| | | |
| | | battary = rx_buffer[BATTARY_IDX]; |