| | |
| | | } |
| | | return 0; |
| | | } |
| | | enumwltagstate wltag_state=RANGE; |
| | | uint32_t wltag_statetimer,wltag_uwbtimer; |
| | | |
| | | //enumwltagstate wltag_state=RANGE; |
| | | //uint32_t wltag_statetimer,wltag_uwbtimer; |
| | | int uwb_app_poll(void) |
| | | { |
| | | switch(wltag_state) |
| | | { |
| | | |
| | | case RANGE: |
| | | // time_flag=HIDO_TimerGetTick()-wltag_uwbtimer; |
| | | if(HIDO_TimerGetTick()-wltag_uwbtimer>2&&uwb_rx_flag==0) |
| | | { |
| | | UWB_LED_ON; |
| | | wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | if(UWB_STATE==UWB_STATE_IDLE) |
| | | { |
| | | UWB_STATE=UWB_RX_STATE_BUSY; |
| | | OpenUWB(); |
| | | } |
| | | } |
| | | else if(HIDO_TimerGetTick()-wltag_uwbtimer>1&&uwb_rx_flag==1) |
| | | { |
| | | // time_flag=HIDO_TimerGetTick()-wltag_uwbtimer; |
| | | UWB_LED_OFF; |
| | | wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | CloseUWB(); |
| | | UWB_STATE=UWB_STATE_IDLE; |
| | | } |
| | | if(uwb_losttimer>g_com_map[UWB_RNAGE_TIME]) |
| | | { |
| | | wltag_statetimer = HIDO_TimerGetTick(); |
| | | if(uwb_rx_flag==0)//若要切换到搜索模式时没有开启则开启UWB |
| | | { |
| | | if(UWB_STATE==UWB_STATE_IDLE) |
| | | { |
| | | UWB_STATE=UWB_RX_STATE_BUSY; |
| | | OpenUWB(); |
| | | } |
| | | } |
| | | wltag_state = SEARCH; |
| | | } |
| | | break; |
| | | case SEARCH: |
| | | if(HIDO_TimerGetTick()-wltag_statetimer>1) |
| | | { |
| | | wltag_statetimer = HIDO_TimerGetTick(); |
| | | wltag_state = CLOSE; |
| | | CloseUWB(); |
| | | UWB_STATE=UWB_STATE_IDLE; |
| | | } |
| | | break; |
| | | case CLOSE: |
| | | if(HIDO_TimerGetTick()-wltag_statetimer>g_com_map[UWB_WAIT_TIME]) |
| | | { |
| | | wltag_statetimer = HIDO_TimerGetTick(); |
| | | wltag_state = SEARCH; |
| | | if(UWB_STATE==UWB_STATE_IDLE) |
| | | { |
| | | UWB_STATE=UWB_RX_STATE_BUSY; |
| | | OpenUWB(); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | |
| | | // switch(wltag_state) |
| | | // { |
| | | // case RANGE: |
| | | // if(HIDO_TimerGetTick()-wltag_uwbtimer>2&&uwb_rx_flag==0) |
| | | // { |
| | | // |
| | | // wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | // if(UWB_STATE==UWB_STATE_IDLE) |
| | | // { |
| | | // UWB_STATE=UWB_RX_STATE_BUSY; |
| | | // OpenUWB(); |
| | | // } |
| | | // } |
| | | // else if(HIDO_TimerGetTick()-wltag_uwbtimer>1&&uwb_rx_flag==1) |
| | | // { |
| | | //// time_flag=HIDO_TimerGetTick()-wltag_uwbtimer; |
| | | // UWB_LED_OFF; |
| | | // wltag_uwbtimer = HIDO_TimerGetTick(); |
| | | // CloseUWB(); |
| | | // UWB_STATE=UWB_STATE_IDLE; |
| | | // } |
| | | // if(uwb_losttimer>g_com_map[UWB_RNAGE_TIME]) |
| | | // { |
| | | // wltag_statetimer = HIDO_TimerGetTick(); |
| | | // if(uwb_rx_flag==0)//若要切换到搜索模式时没有开启则开启UWB |
| | | // { |
| | | // if(UWB_STATE==UWB_STATE_IDLE) |
| | | // { |
| | | // UWB_STATE=UWB_RX_STATE_BUSY; |
| | | // OpenUWB(); |
| | | // } |
| | | // } |
| | | // wltag_state = SEARCH; |
| | | // } |
| | | // break; |
| | | // case SEARCH: |
| | | // if(HIDO_TimerGetTick()-wltag_statetimer>1) |
| | | // { |
| | | // wltag_statetimer = HIDO_TimerGetTick(); |
| | | // wltag_state = CLOSE; |
| | | // CloseUWB(); |
| | | // UWB_STATE=UWB_STATE_IDLE; |
| | | // } |
| | | // break; |
| | | // case CLOSE: |
| | | // if(HIDO_TimerGetTick()-wltag_statetimer>g_com_map[UWB_WAIT_TIME]) |
| | | // { |
| | | // wltag_statetimer = HIDO_TimerGetTick(); |
| | | // wltag_state = SEARCH; |
| | | // if(UWB_STATE==UWB_STATE_IDLE) |
| | | // { |
| | | // UWB_STATE=UWB_RX_STATE_BUSY; |
| | | // OpenUWB(); |
| | | // } |
| | | // } |
| | | // break; |
| | | // } |
| | | |
| | | UWBIdleTask(); |
| | | } |
| | | |
| | |
| | | uint16_t tempid; |
| | | if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL)//判断是否是和自己是同一组通讯的且为poll包 |
| | | { flag_recsuccess = 1; |
| | | wltag_state=RANGE;//成功后从search切换为range |
| | | // wltag_state=RANGE;//成功后从search切换为range |
| | | REV_POLL_NUM++; |
| | | memcpy(&g_com_receive_id,&rx_buf[TAG_ID_IDX],2); |
| | | //temp_count2=phy_timer_count_get(); |