| | |
| | | dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR); |
| | | } |
| | | } |
| | | |
| | | extern u16 synclost_count; |
| | | uint32_t current_syncid=0xffffffff,synclost_timer; |
| | | extern u8 flag_syncbase,waitsync_flag; |
| | |
| | | memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2); |
| | | switch(rx_buffer[MESSAGE_TYPE_IDX]) |
| | | { |
| | | uint16_t checksum; |
| | | case POLL: |
| | | if (anchor_type == rx_buffer[ANC_TYPE_IDX]) |
| | | Anchor_RecPoll(); |
| | |
| | | ancidlist_num=g_com_map[NEARBASE_NUM]; |
| | | tx_near_msg[NEARBASENUM_INDEX]=g_com_map[NEARBASE_NUM]; |
| | | memcpy(&tx_near_msg[NEARBASEID_INDEX],&g_com_map[NEARBASE_ID1],g_com_map[NEARBASE_NUM]*2); |
| | | send_len=11+ancidlist_num*2+2; |
| | | send_len=21+ancidlist_num*2; |
| | | dwt_writetxdata(send_len, tx_near_msg, 0);//å°Pollå
æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» |
| | | dwt_writetxfctrl(send_len, 0);//设置è¶
宽带åéæ°æ®é¿åº¦ |
| | | dwt_starttx(DWT_START_TX_IMMEDIATE); |
| | | } |
| | | break; |
| | | case REG_POLL: |
| | | for(i=0;i<MAX_REGTAGNUM;i++) |
| | | { |
| | | if(tag_id_recv==regtag_map.tagid[i]) |
| | | { |
| | | tx_near_msg[REGR_TAGSLOTPOS_INDEX]=regtag_map.tag_slotpos[i]; |
| | | tx_near_msg[REGR_TAGFREQ_INDEX] = regtag_map.tag_frequency[i]; |
| | | memcpy(&tx_near_msg[TAG_ID_IDX],&tag_id_recv,2); |
| | | memcpy(&tx_near_msg[ANCHOR_ID_IDX],&dev_id,2); |
| | | tx_near_msg[MESSAGE_TYPE_IDX] = REG_RESPONSE; |
| | | ancidlist_num=g_com_map[NEARBASE_NUM]; |
| | | tx_near_msg[NEARBASENUM_INDEX]=g_com_map[NEARBASE_NUM]; |
| | | memcpy(&tx_near_msg[NEARBASEID_INDEX],&g_com_map[NEARBASE_ID1],g_com_map[NEARBASE_NUM]*2); |
| | | send_len=21+ancidlist_num*2; |
| | | dwt_writetxdata(send_len, tx_near_msg, 0);//å°Pollå
æ°æ®ä¼ ç»DW1000ï¼å°å¨å¼å¯åéæ¶ä¼ åºå» |
| | | dwt_writetxfctrl(send_len, 0);//设置è¶
宽带åéæ°æ®é¿åº¦ |
| | | dwt_starttx(DWT_START_TX_IMMEDIATE); |
| | | regtag_map.tagid[i] = 0; |
| | | } |
| | | |
| | | } |
| | | if(i==MAX_REGTAGNUM) |
| | | { |
| | | dwt_readdiagnostics(&d1); |
| | | LOS(&d1); |
| | | usart_send[2]=0x0a; |
| | | usart_send[3]=20; |
| | | memcpy(&usart_send[4],&dev_id,2); |
| | | memcpy(&usart_send[6],&tag_id_recv,2); |
| | | memcpy(&usart_send[8],&rx_buffer[10],9); |
| | | usart_send[17] = firstpath_power; |
| | | checksum = Checksum_u16(&usart_send[2],20); |
| | | memcpy(&usart_send[22],&checksum,2); |
| | | UART_PushFrame(usart_send,24); |
| | | } |
| | | break; |
| | | case NEAR_POLL: |
| | | // GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET); |
| | | memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2); |
| | |
| | | tagpos_rec[(u8)temp_tagpos]=1; |
| | | rec_nearbase_num=rx_buffer[NEARBASENUM_INDEX]; |
| | | |
| | | |
| | | GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET); |
| | | if(anc_id_recv==dev_id) |
| | | { |
| | | GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET); |
| | | Anchor_RecNearPoll(0); |
| | | }else{ |
| | | |