yincheng.zhong
2023-10-11 d66187e82c8715a36aa5c790ed0e01bb0e656081
Src/application/dw_app.c
@@ -81,7 +81,7 @@
    SINGLEPOLL,
}tag_state=STARTPOLL;
static dwt_config_t config = {
   2,               /* Channel number. */
   5,               /* Channel number. */
   DWT_PRF_64M,     /* Pulse repetition frequency. */
   DWT_PLEN_128,    /* Preamble length. */
   DWT_PAC8,        /* Preamble acquisition chunk size. Used in RX only. */
@@ -118,7 +118,7 @@
LPFilter_Frac* p_Dis_Filter;      //测距用的低通滤波器
void GetNearMsg(void);
static uint64_t get_tx_timestamp_u64(void)
{
    uint8_t ts_tab[5];
@@ -610,8 +610,9 @@
    if(minddist!=0x1ffff&&minddist!=0)
    {
         trygetnearmsg_times = 0;
            tag_state = GETNEARMSG;
            tag_state = GETNEARMSG;
            mainbase_id = mindist_ancid;   
            GetNearMsg();
    }
   
   if(getsync_flag==0)
@@ -997,8 +998,8 @@
                           mainbase_dist=temp_dist;
                                    nearbase_distlist[0] = temp_dist;
                                    base_mindist = temp_dist;
                           if((rx_buffer[MOTORSTATE_INDEX]&0xf)!=3)
                              motor_state=rx_buffer[MOTORSTATE_INDEX]&0xf;
//                           if((rx_buffer[MOTORSTATE_INDEX]&0xf)!=3)
//                              motor_state=rx_buffer[MOTORSTATE_INDEX]&0xf;
                                    if(frame_len==38)
                                     {
                                         memcpy(&rec_maxrangelen,&rx_buffer[MAXRANGE_DISTANCE],2);
@@ -1055,18 +1056,18 @@
                                    }
                           nearbase_distlist[rec_nearbasepos+1]=temp_dist;   //   nearbase_distlist[1]对应   rec_nearbaseid[0]的距离               
                           final_msg_set_ts(&tx_near_msg[FINAL_MSG_RESP_RX_NEARBASE_IDX+(rec_nearbasepos)*4], resp_rx_ts);
                           if(temp_dist<salvebase_mindist&&nearbase_switchdistlist[rec_nearbasepos]==1&&temp_dist>0)
                              if(temp_dist<salvebase_mindist&&nearbase_switchdistlist[rec_nearbasepos]!=0&&(nearbase_switchdistlist[rec_nearbasepos]==1||temp_dist<nearbase_switchdistlist[rec_nearbasepos]))
                           {
                              salvebase_mindist = temp_dist;
                              mindist_slavebaseid = rec_nearbaseid;
                           }
                           #ifdef SWITCHBASE_ZHUANDIAN
                                       if(temp_dist<nearbase_switchdistlist[rec_nearbasepos]&&nearbase_switchdistlist[rec_nearbasepos]>1&&temp_dist>0)
                             {
                                            mainbase_id = rec_nearbaseid;
                                            tag_state = GETNEARMSG;
                                 trygetnearmsg_times = 0;
                                        }
//                                       if(temp_dist<nearbase_switchdistlist[rec_nearbasepos]&&nearbase_switchdistlist[rec_nearbasepos]>1&&temp_dist>0)
//                             {
//                                            mainbase_id = rec_nearbaseid;
//                                            tag_state = GETNEARMSG;
//                                 trygetnearmsg_times = 0;
//                                        }
                                    #endif
                  }                        
@@ -1094,12 +1095,13 @@
            if(salvebase_mindist<mainbase_dist- THRESHOLD_CHANGE_MAINBASE_DIST )
            {
               changemainbase_count++;
               if(changemainbase_count>5)
               if(changemainbase_count>2)
               {
                                        changemainbase_count = 0;
                              mainbase_id = mindist_slavebaseid;
                              tag_state = GETNEARMSG;
                              trygetnearmsg_times = 0;
                        changemainbase_count = 0;
                        mainbase_id = mindist_slavebaseid;
                        tag_state = GETNEARMSG;
                        trygetnearmsg_times = 0;
                        GetNearMsg();
               }
            }else{
               changemainbase_count = 0;
@@ -1109,6 +1111,7 @@
         {
                mainbase_lost_count = 0;
            tag_state = DISCPOLL;
                DiscPoll();
         }   
         if(mainbase_lost_count!=0)
         {
@@ -1169,6 +1172,7 @@
                if(nearbaseid_list[i]!=nearbaseid_list2[i])
                {
                    tag_state = GETNEARMSG;
                    GetNearMsg();
                           trygetnearmsg_times = 0;
                           nearbaseid_list0[i]=1;
                }