zhyinch
2020-11-02 c194f604712122b2640e10b6d7d901cf4ba3712f
Ô´Âë/ºËÐİå/Src/application/dw_app.c
@@ -1110,6 +1110,7 @@
            dwt_write32bitreg(SYS_STATUS_ID, SYS_STATUS_ALL_RX_ERR);
         }
}
extern u16 synclost_count;
uint32_t current_syncid=0xffffffff,synclost_timer;
extern u8 flag_syncbase,waitsync_flag;
@@ -1146,6 +1147,7 @@
      memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2);
      switch(rx_buffer[MESSAGE_TYPE_IDX])
      {
         uint16_t checksum;
         case POLL:
            if (anchor_type == rx_buffer[ANC_TYPE_IDX])
            Anchor_RecPoll();
@@ -1174,13 +1176,48 @@
               ancidlist_num=g_com_map[NEARBASE_NUM];
               tx_near_msg[NEARBASENUM_INDEX]=g_com_map[NEARBASE_NUM];
               memcpy(&tx_near_msg[NEARBASEID_INDEX],&g_com_map[NEARBASE_ID1],g_com_map[NEARBASE_NUM]*2);
               send_len=11+ancidlist_num*2+2;
               send_len=21+ancidlist_num*2;
               dwt_writetxdata(send_len, tx_near_msg, 0);//将Poll包数据传给DW1000,将在开启发送时传出去
               dwt_writetxfctrl(send_len, 0);//设置超宽带发送数据长度
               dwt_starttx(DWT_START_TX_IMMEDIATE);
            }
            break;
      case REG_POLL:
         for(i=0;i<MAX_REGTAGNUM;i++)
      {
         if(tag_id_recv==regtag_map.tagid[i])
         {
               tx_near_msg[REGR_TAGSLOTPOS_INDEX]=regtag_map.tag_slotpos[i];
               tx_near_msg[REGR_TAGFREQ_INDEX] = regtag_map.tag_frequency[i];
               memcpy(&tx_near_msg[TAG_ID_IDX],&tag_id_recv,2);
               memcpy(&tx_near_msg[ANCHOR_ID_IDX],&dev_id,2);
               tx_near_msg[MESSAGE_TYPE_IDX] = REG_RESPONSE;
               ancidlist_num=g_com_map[NEARBASE_NUM];
               tx_near_msg[NEARBASENUM_INDEX]=g_com_map[NEARBASE_NUM];
               memcpy(&tx_near_msg[NEARBASEID_INDEX],&g_com_map[NEARBASE_ID1],g_com_map[NEARBASE_NUM]*2);
               send_len=21+ancidlist_num*2;
               dwt_writetxdata(send_len, tx_near_msg, 0);//将Poll包数据传给DW1000,将在开启发送时传出去
               dwt_writetxfctrl(send_len, 0);//设置超宽带发送数据长度
               dwt_starttx(DWT_START_TX_IMMEDIATE);
               regtag_map.tagid[i] = 0;
         }
      
      }
      if(i==MAX_REGTAGNUM)
      {
         dwt_readdiagnostics(&d1);
         LOS(&d1);
         usart_send[2]=0x0a;
         usart_send[3]=20;
         memcpy(&usart_send[4],&dev_id,2);
         memcpy(&usart_send[6],&tag_id_recv,2);
         memcpy(&usart_send[8],&rx_buffer[10],9);
         usart_send[17] = firstpath_power;
         checksum = Checksum_u16(&usart_send[2],20);
         memcpy(&usart_send[22],&checksum,2);
         UART_PushFrame(usart_send,24);
      }
      break;
         case NEAR_POLL:      
      //   GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET);               
            memcpy(&tag_id_recv,&rx_buffer[TAG_ID_IDX],2);
@@ -1199,10 +1236,9 @@
            tagpos_rec[(u8)temp_tagpos]=1;
            rec_nearbase_num=rx_buffer[NEARBASENUM_INDEX];
         
GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET);
         if(anc_id_recv==dev_id)
         {
            GPIO_WriteBit(GPIOB, GPIO_Pin_10, Bit_SET);
            Anchor_RecNearPoll(0);   
         }else{