| | |
| | | #include "PCA9555.h" |
| | | |
| | | #define TAG_KEEPTIMES 20 |
| | | #define REPORT_TAG_KEEPTIMES 1 |
| | | #define REPORT_TAG_KEEPTIMES 20 |
| | | |
| | | #define GROUP_NUM 3 |
| | | uint16_t group_min_dist[GROUP_NUM+1]; |
| | |
| | | memcpy(&send_buffer[TAG_ID_IDX],&tag_id_recv,2);//接受者id |
| | | send_buffer[MESSAGE_TYPE_IDX]=MBX_RESPONSE; |
| | | |
| | | // if(rec_nearbase_num == ancrec_nearbasepos)//抢占模式自己为新基站 |
| | | // { |
| | | // random_time = (phy_timer_count_get()%100);//多基站抢占一个位置时避免一个也收不到的情况就每一个随机错开几十uS |
| | | // //resp_tx_time = (poll_rx_ts+((random_time+rec_nearbase_num*20 + POLL_RX_TO_RESP_TX_DLY_UUS+ancrec_nearbasepos*DELAY_BETWEEN_TWO_FRAME_UUS) * UUS_TO_DWT_TIME)) >> 8;//计算Response发送时间T3。 |
| | | // // (resp_tx_en_start_u32) is the moment when TX enable |
| | | // resp_tx_en_start_u32 = phy_timer_count_get()+US_TO_PHY_TIMER_COUNT(20*rec_nearbase_num+POLL_RX_TO_RESP_TX_DLY_US+rec_nearbase_num*DELAY_BETWEEN_TWO_FRAME_UUS);//后面的需要根据已有基站数量进行更改,如果是抢占自己最后一个回复,要有底数 |
| | | // |
| | | // } else { |
| | | // //resp_tx_time = (poll_rx_ts + ((rec_nearbase_num*20+POLL_RX_TO_RESP_TX_DLY_UUS+ancrec_nearbasepos*DELAY_BETWEEN_TWO_FRAME_UUS) * UUS_TO_DWT_TIME)) >> 8;//计算Response发送时间T3。 |
| | | // resp_tx_en_start_u32 = phy_timer_count_get()+US_TO_PHY_TIMER_COUNT(20*rec_nearbase_num+POLL_RX_TO_RESP_TX_DLY_US+ancrec_nearbasepos*DELAY_BETWEEN_TWO_FRAME_UUS);//后面的需要根据已有基站数量进行更改,如果是抢占自己最后一个回复,要有底数 |
| | | // //这里应该有问题问一下钟工 |
| | | // }//此处设置绝对时间将poll u32改为phy_timer_count_get() |
| | | position=ancrec_nearbasepos; |
| | | |
| | | resp_tx_en_start_u32 = poll_rx_en_start_u32+US_TO_PHY_TIMER_COUNT(POLL_RX_TO_RESP_TX_DLY_US)+ancrec_nearbasepos*US_TO_PHY_TIMER_COUNT(DELAY_BETWEEN_TWO_FRAME_UUS);//加入帧间隔 |
| | |
| | | UWB_STATE==UWB_TX_STATE_BUSY; |
| | | flag_temp2=uwb_tx(send_buffer, 40,1 ,resp_tx_en_start_u32);//立即发送测试size大小 |
| | | resp_tx_flag=1; |
| | | |
| | | tagofflinetime[taglist_pos] = 0;//更新标签通信 |
| | | // temp_count1=phy_timer_count_get(); |
| | | // temp_tx_flag=1; |
| | | // Delay_Ms(2); |
| | | |
| | | // while(mac_is_busy()); |
| | | // gpio_pin_clr(SCL_PIN); |
| | | } |
| | | uint16_t uwb_searchcount= 2000000; |
| | | uint8_t flag_recsuccess; |
| | |
| | | |
| | | //uint16_t REV_POLL_NUM; |
| | | //uint16_t REPLY_POLL_NUM; |
| | | extern uint8_t uwbled,gpsled,loraled,powerled; |
| | | int Anchor_App(void) |
| | | { |
| | | uint8_t i; |
| | |
| | | memcpy(&rec_antdelay,&rx_buf[FZ_NEARBASEID_INDEX+rec_nearbase_num*4],2); |
| | | taglist_pos=CmpTagInList(tag_id_recv); |
| | | // UWB_LED_ON; |
| | | uwbled=1; |
| | | temp_count3=phy_timer_count_get(); |
| | | if(taglist_num>=ANC_MAX_NUM) |
| | | return 0; |