zhyinch
2020-05-16 650a51bb30a4c8c97898648f72d826fbc1a8a59a
Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -202,7 +202,7 @@
u16 anclist_num=0,anclist_pos; //list æ€»æ•°é‡å’Œå½“前位置
u16 ancid_list[TAG_NUM_IN_SYS];
u8 nearbase_num=0;
u8 nearbase_num=0,last_nearbase_num,next_nearbase_num;
u16 nearbaseid_list[MAX_NEARBASE_NUM],mainbase_id,true_nearbase_idlist[MAX_NEARBASE_NUM];
int32_t mainbase_dist,nearbase_distlist[MAX_NEARBASE_NUM],true_nearbase_distlist[MAX_NEARBASE_NUM];
uint8_t trygetnearmsg_times;
@@ -266,11 +266,12 @@
    dwt_setrxtimeout(RESP_RX_TIMEOUT_UUS);      
   tag_succ_times = 0;
   GPIO_WriteBit(GPIOA, GPIO_Pin_10, Bit_SET);
   if(nearbase_num>=MAX_NEARBASE_NUM)
   if(next_nearbase_num>=MAX_NEARBASE_NUM)
   {
      nearbase_num = MAX_NEARBASE_NUM-1;
      next_nearbase_num = MAX_NEARBASE_NUM-1;
   }
   //nearbase_num=0;
   last_nearbase_num=next_nearbase_num;
   recbase_num=0;
   tx_nearpoll_msg[BATTARY_IDX] = Get_Battary();
   tx_nearpoll_msg[BUTTON_IDX] = !READ_KEY0;
@@ -282,9 +283,6 @@
   dwt_writetxdata(13+2*nearbase_num, tx_nearpoll_msg, 0);//将Poll包数据传给DW1000,将在开启发送时传出去
   dwt_writetxfctrl(13+2*nearbase_num, 0);//设置超宽带发送数据长度
   dwt_starttx(DWT_START_TX_IMMEDIATE | DWT_RESPONSE_EXPECTED);//开启发送,发送完成后等待一段时间开启接收,等待时间在dwt_setrxaftertxdelay中设置
   for(i=0;i<MAX_NEARBASE_NUM;i++)
   exsistbase_list[i]=0;
   
   flag_finalsend=0;
   flag_rxon=1;
@@ -345,7 +343,7 @@
                           memcpy(&temp_sync_timer1,&rx_buffer[ANCTIMEMS],2);
                           memcpy(&tmp_time,&rx_buffer[ANCTIMEUS],2);
                           sync_timer=temp_sync_timer1;
                           exsistbase_list[0]=1;
                           exsistbase_list[0]=10;
////                           memcpy(&tagslotpos,&rx_buffer[TAGSLOTPOS],2);      
//                           
                           tmp_time=tmp_time+450;
@@ -363,7 +361,7 @@
//                              tyncpoll_time=(tagslotpos-1)*slottime;
                           ////////////////////////////
                           rec_nearbasepos=0;
                           exsistbase_list[rec_nearbasepos]=1;
                           exsistbase_list[rec_nearbasepos]=10;
                           memcpy(&temp_dist,&rx_buffer[DIST_IDX],4);
                           nearbase_distlist[rec_nearbasepos]=temp_dist;
                           
@@ -406,7 +404,7 @@
                              memcpy(&tx_nearfinal_msg[ANCHOR_ID_IDX],&rec_nearbaseid,2);
                           }
                           
                           exsistbase_list[rec_nearbasepos]=1;
                           exsistbase_list[rec_nearbasepos]=10;
                           memcpy(&temp_dist,&rx_buffer[DIST_IDX],4);
                           nearbase_distlist[rec_nearbasepos]=temp_dist;
                           
@@ -465,19 +463,21 @@
            }
            tyncpoll_time=(random_value%max_slotpos)*slottime;   
         }
         for(i=0;i<MAX_NEARBASE_NUM;i++)
         next_nearbase_num=0;
         for(i=0;i<last_nearbase_num;i++)
         {
            if(exsistbase_list[i]==1)
            if(exsistbase_list[i]-->0)
            {
               next_nearbase_num++;
               true_nearbase_idlist[j]=nearbaseid_list[i];         
               true_nearbase_distlist[j++]=nearbase_distlist[i];
            }
         
         }
      
         for(i=0;i<nearbase_num-1;i++)
         for(i=0;i<last_nearbase_num-1;i++)
         {
            for(j=0;j<nearbase_num-1;j++)
            for(j=0;j<last_nearbase_num-1;j++)
            {
               if(true_nearbase_distlist[j]>true_nearbase_distlist[j+1])
               {
@@ -503,6 +503,10 @@
               report_num++;
            }
         }
         for(i=0;i<MAX_NEARBASE_NUM;i++)
         {
            nearbase_distlist[i]=0x1ffff;
         }
      //   printf("%d,%d",temp_sync_timer2,temp_sync_timer1);
         #ifdef USART_INTEGRATE_OUTPUT      
            usart_send[2] = 4;//正常模式