yincheng.zhong
2023-11-29 5f02075313d646cd2bdb7a5ff720870455ba61fc
Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -137,7 +137,7 @@
    /* Configure DW1000. See NOTE 6 below. */
    dwt_configure(&config);//配置DW1000
   
    SetNLOSNTMSettings();
  //  SetNLOSNTMSettings();
   
    /* Apply default antenna delay value. See NOTE 1 below. */
    dwt_setrxantennadelay(RX_ANT_DLY);      //设置接收天线延迟
@@ -743,7 +743,7 @@
u16 taglist_num=0,taglist_pos;
u16 tagid_list[TAG_NUM_IN_SYS],tagstate_list[TAG_NUM_IN_SYS];;
u8 tagofflinetime[TAG_NUM_IN_SYS];
int32_t tagdist_list[TAG_NUM_IN_SYS];
int32_t tagdist_list[TAG_NUM_IN_SYS],tag_histdist_list[TAG_NUM_IN_SYS];
void TagListUpdate(void)
{
   u16 i,j=0,temp[TAG_NUM_IN_SYS];
@@ -879,6 +879,7 @@
int32_t filter_dist,filter_speed;
u8 newmeasure,recpoll_len;
uint8_t temp_nearbaspos;
float fiter_p;
uint8_t Anchor_RecNearPoll(uint8_t ancrec_nearbasepos) //0 mainbase  1 first near_base
{
   uint8_t motorstate;
@@ -958,20 +959,32 @@
            }
            if(!seize_anchor)
            {
                usart_send[2] = 1;//正常模式
                usart_send[3] = 17;//数据段长度
                usart_send[4] = frame_seq_nb2;//数据段长度
                memcpy(&usart_send[5],&tag_id_recv,2);
                memcpy(&usart_send[7],&dev_id,2);
                memcpy(&usart_send[9],&tagdist_list[taglist_pos],4);
                usart_send[13] = battary;
                usart_send[14] = button;
                usart_send[15] = firstpath_power;
                usart_send[16] = rx_power;
                checksum = Checksum_u16(&usart_send[2],17);
                memcpy(&usart_send[19],&checksum,2);
                UART_PushFrame(usart_send,21);
            if(abs(tagdist_list[taglist_pos]-tag_histdist_list[taglist_pos])<g_com_map[SPEEDFILTER_THRES]||misdist_num[taglist_pos]>3)
                {
                    if(tag_histdist_list[taglist_pos]>0&&tag_histdist_list[taglist_pos]<50000)
                    {
                        filter_dist=tagdist_list[taglist_pos]*fiter_p+(1-fiter_p)*tag_histdist_list[taglist_pos];
                    }else{
                        filter_dist = tagdist_list[taglist_pos];
                    }
                    tag_histdist_list[taglist_pos] = filter_dist;
                    usart_send[2] = 1;//正常模式
                    usart_send[3] = 17;//数据段长度
                    usart_send[4] = frame_seq_nb2;//数据段长度
                    memcpy(&usart_send[5],&tag_id_recv,2);
                    memcpy(&usart_send[7],&dev_id,2);
                    memcpy(&usart_send[9],&tag_histdist_list[taglist_pos],4);
                    usart_send[13] = battary;
                    usart_send[14] = button;
                    usart_send[15] = firstpath_power;
                    usart_send[16] = rx_power;
                    checksum = Checksum_u16(&usart_send[2],17);
                    memcpy(&usart_send[19],&checksum,2);
                    UART_PushFrame(usart_send,21);
            }else{
                misdist_num[taglist_pos]++;
            }
            }                
}