| | |
| | | #define FINAL_MSG_FINAL_TX_TS_IDX 18 |
| | | #define FINAL_MSG_TS_LEN 4 |
| | | |
| | | #define STARTPOLL REGPOLL |
| | | #define SWITCHBASE_DIST |
| | | //#define SWITCHBASE_ZHUANDIAN |
| | | #define STARTPOLL REGPOLL//#define SWITCHBASE_DIST |
| | | #define SWITCHBASE_ZHUANDIAN |
| | | enum enumtagstate |
| | | { |
| | | REGPOLL, |
| | |
| | | extern float motor_keeptime; |
| | | uint8_t changemainbase_count=0,gotosleep_flag; |
| | | uint32_t frame_len; |
| | | int32_t salvebase_mindist; |
| | | void NearPoll(void) |
| | | { |
| | | |
| | | uint32_t temp1,temp2,dw_systime,salvebase_mindist=999999,mindist_slavebaseid; |
| | | uint32_t temp1,temp2,dw_systime,mindist_slavebaseid; |
| | | |
| | | uint32_t final_tx_time; |
| | | u32 start_poll; |
| | | u8 i,j,getsync_flag=0,timeout; |
| | | USART_putc(current_slotnum); |
| | | dwt_setrxaftertxdelay(POLL_TX_TO_RESP_RX_DLY_UUS); //设置发送后开启接收,并设定延迟时间 |
| | | dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS); |
| | | tag_succ_times = 0; |
| | | |
| | | salvebase_mindist=999999; |
| | | if(next_nearbase_num>=MAX_NEARBASE_NUM) |
| | | { |
| | | next_nearbase_num = MAX_NEARBASE_NUM-1; |
| | |
| | | } |
| | | ancsync_time=((sync_timer)*1000+tmp_time); |
| | | last_slotnum=current_slotnum; |
| | | current_slotnum=((float)(sync_timer*10)/(SLOTTIME_MS*bigslot_num))+1; |
| | | current_slotnum=((float)(sync_timer*10 - tagslotpos*SLOTTIME_MS)/(SLOTTIME_MS*bigslot_num))+1; |
| | | if(current_slotnum==last_slotnum-1) |
| | | {flag_getresponse=1;} |
| | | lastsync_timer=sync_timer; |
| | |
| | | } |
| | | // dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); |
| | | } |
| | | if(flag_finalsend!=1) |
| | | {flag_finalsend = 2;} |
| | | dwt_forcetrxoff(); |
| | | dwt_write32bitreg(SYS_STATUS_ID,SYS_STATUS_RXFCG| SYS_STATUS_ALL_RX_ERR); |
| | | |
| | |
| | | { |
| | | if( pack_index == MOTOR_ONTIME_INDEX) |
| | | { |
| | | motor_keeptime = rec_remotepara[3]; |
| | | if(motor_keeptime==0) |
| | | motor_keeptime = rec_remotepara[3]; |
| | | }else{ |
| | | memcpy((uint8_t*)&g_com_map + pack_index, &rec_remotepara[3], pack_length); |
| | | //返回一个error状态 |
| | | //SendComMap(pack_datalen,pack_index); |
| | | save_com_map_to_flash(); |
| | | delay_ms(100); |
| | | NVIC_SystemReset(); |
| | | if(pack_index<200) |
| | | { |
| | | memcpy((uint8_t*)&g_com_map + pack_index, &rec_remotepara[3], pack_length); |
| | | //返回一个error状态 |
| | | //SendComMap(pack_datalen,pack_index); |
| | | save_com_map_to_flash(); |
| | | delay_ms(100); |
| | | NVIC_SystemReset(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | u32 id; |
| | | u32 id,error_times=0; |
| | | void Tag_App(void)//发送模式(TAG标签) |
| | | { |
| | | |
| | |
| | | { |
| | | // Dw1000_Init(); |
| | | id = dwt_readdevid() ; |
| | | IdleTask(); |
| | | if(error_times++>20) |
| | | { |
| | | SCB->AIRCR = 0X05FA0000|(unsigned int)0x04; //软复位回到bootloader |
| | | } |
| | | } |
| | | error_times = 0; |
| | | switch(tag_state) |
| | | { |
| | | case REGPOLL: |