WXK
2025-08-22 d93c5e1b77f58b19b6a7c26ddd7da05848bdd04c
keil/uwb_app.c
@@ -49,11 +49,11 @@
//resp函数
void PushAnchorDataArray(uint16_t ancid,int16_t dist,uint8_t battary);//找到自己的id信息对应位置更新自己的交互信息
static void resp_msg_set_ts(uint8_t *ts_field, int64_t ts);//用来对应位置放入时间戳
static uint16_t tagid_list[TAG_NUM_IN_SYS];
uint16_t tagid_list[TAG_NUM_IN_SYS];
uint16_t CmpTagInList(uint16_t tagid);
uint8_t Anchor_RecNearPoll(uint8_t ancrec_nearbasepos);
static uint8_t send_buffer[100];
static uint8_t tagofflinetime[TAG_NUM_IN_SYS];
uint8_t tagofflinetime[TAG_NUM_IN_SYS];
uint32_t temp_count=0;
uint32_t temp_count1=0;
uint32_t temp_endcount1=0;
@@ -145,7 +145,7 @@
//    .phy_cfg.rx_ant_id = UWB_RX_ANT_3,    /* UWB RX antenna port                       */
//};
#ifdef UWB_MK8000_XB
static struct mk_uwb_configure config = {
 struct mk_uwb_configure config = {
    .phy_work_mode = (uint8_t)(PHY_TX | PHY_RX),
    .phy_cfg.ch_num = 5,                      /* Channel number.                           */
    .phy_cfg.code_index = 9,                  /* TRX preamble code                         */
@@ -162,7 +162,7 @@
};
#endif
#ifdef UWB_DW1000_MBXJZ_OLD
static struct mk_uwb_configure config = {
 struct mk_uwb_configure config = {
    .phy_work_mode = (uint8_t)(PHY_TX | PHY_RX),
    .phy_cfg.ch_num = 5,                      /* Channel number.                           */
    .phy_cfg.code_index = 9,                  /* TRX preamble code                         */
@@ -423,10 +423,10 @@
}
uint32_t start_receive_count,end_receive_count,poll_timeout,current_count,temp_resp;
uint16_t anchordata_id[TAG_NUM_IN_SYS],anchordata_dist[TAG_NUM_IN_SYS];
static uint8_t anchordata_bat[TAG_NUM_IN_SYS];
static int8_t anchor_rssi[TAG_NUM_IN_SYS];
uint8_t anchordata_bat[TAG_NUM_IN_SYS];
int8_t anchor_rssi[TAG_NUM_IN_SYS];
uint8_t anchordata_num = 0;
static int16_t tagdist_list[TAG_NUM_IN_SYS];
int16_t tagdist_list[TAG_NUM_IN_SYS];
uint16_t random_time;
//anchor
int32_t hist_dist;
@@ -671,6 +671,7 @@
        uwb_losttimer=g_com_map[UWB_RNAGE_TIME]+1;//防止溢出
}
extern uint16_t gaodu;
extern uint8_t jingzhi_flag;
void UWBSendUDPTask(void)
{
    uint16_t checksum,tempdistarray[20];
@@ -722,7 +723,7 @@
    usart_send[7] = (tagseq++)>>8;
    usart_send[8] = bat_percent;
//                    usart_send[8] = rxnum;
    usart_send[9] = userkey_state|0<<1|0<<2|0<<5|uwb_state<<6;
    usart_send[9] = userkey_state|jingzhi_flag<<1|0<<2|0<<5|uwb_state<<6;
    //   memcpy(&usart_send[10],&rec_tagheight,2);
    memcpy(&usart_send[12],gaodu,2);
//               usart_send[12] = 0;
@@ -737,7 +738,7 @@
    checksum = Checksum_u16(&usart_send[2],15+5*taglist_num);
    memcpy(&usart_send[17+5*taglist_num],&checksum,2);
    HexToAsciiSendUDP(usart_send,19+5*taglist_num);
//                    taglist_num = 0;
                    taglist_num = 0;
//                    rxnum=0;
}
extern uint32_t step_count;
@@ -760,7 +761,7 @@
        step_count = mir3da_get_step(); // 获取步数
        uwbtasktimer = HIDO_TimerGetTick();
        UWBOneSecondTask();
        if(g_com_map[UWBFrequency]==1&&uwb_OpenClose_flag==1)
        if(g_com_map[UWBFrequency]==1&&uwb_OpenClose_flag==1&&current_state==STATE_NORMAL&&g_com_map[UWBENBLE]==1)
        {
            UWBSendUDPTask();
        }
@@ -776,7 +777,7 @@
    uint8_t i;
    uint16_t tempid;
    uwb_offtime_count=0;
#ifdef  CEJU_ZIUMIAN
#ifdef  CEJU_XIUMIAN
    current_state = STATE_NORMAL;
#endif
    if(group_id==rx_buf[GROUP_ID_IDX]&&rx_buf[MESSAGE_TYPE_IDX] == MBX_POLL)//判断是否是和自己是同一组通讯的且为poll包
@@ -820,7 +821,7 @@
//                Anchor_RecNearPoll(i);
//            }
        taglist_pos=CmpTagInList(tag_id_recv);
        if(taglist_num>=TAG_NUM_IN_SYS)
        if(taglist_pos>=TAG_NUM_IN_SYS)
            return 0;
        for(i=0; i<rec_nearbase_num; i++)
        {