WXK
2023-11-01 eddac77c8fa85acccbf6eeff48b1ff760c70843a
Src/application/dw_ds_anc.c
@@ -147,6 +147,40 @@
   }
   return i;
}
/**
* 冒泡排序数组
* @param int a[] 要排序的数组
* @param int n 数组元素的个数
**/
void bubble_sort(int32_t a[],uint16_t n)
{
    for(int i=0; i<n-1; i++)
    {
        int isSorted = 1;
        for(int j=0; j<n-1-i; j++)
          {
            if(a[j] > a[j+1])
         {
                isSorted = 0;
                int32_t temp = a[j];//时间
                       uint16_t temp1 = tagid_list[j];//id
//                       uint16_t temp2 = uwbqueue.fail_num[j];//uwb接受失败的次数
//                       uint8_t temp3 = uwbqueue.flag_newanchor[j];//新老基站
                a[j] = a[j+1];
                       tagid_list[j]= tagid_list[j+1];
//                       uwbqueue.fail_num[j]= uwbqueue.fail_num[j+1];
//                       uwbqueue.flag_newanchor[j]= uwbqueue.flag_newanchor[j+1];
                a[j+1]=temp;
                     tagid_list[j+1]=temp1;
//                     uwbqueue.fail_num[j+1]=temp2;
//                     uwbqueue.flag_newanchor[j+1]=temp3;
            }
        }
        if(isSorted) break;
    }
}
uint8_t Anchor_RecNearPoll(uint8_t ancrec_nearbasepos) //0 mainbase  1 first near_base
{
   uint8_t motorstate;
@@ -412,6 +446,8 @@
               memcpy(&usart_send[10+4*rec_nearbase_num],&checksum,2);
               UART_PushFrame(usart_send,12+rec_nearbase_num*4);
            #endif
//            taglist_num = 30;
//            tagid_list[29] = 0x5288;
            taglist_pos=CmpTagInList(tag_id_recv);
            if(taglist_pos==taglist_num)
            {
@@ -472,4 +508,5 @@
       dwt_setinterrupt(  DWT_INT_RFCG | (DWT_INT_ARFE | DWT_INT_RFSL | DWT_INT_SFDT | DWT_INT_RPHE | DWT_INT_RFCE | DWT_INT_RFTO | DWT_INT_RXPTO), 1);
      dwt_setrxtimeout(0);//设定接收超时时间,0位没有超时时间
        dwt_rxenable(0);
    bubble_sort(tagdist_list,taglist_num);
        }