zhyinch
2022-02-18 4a13529748c983ff0d5627a28365ad7737141016
源码/核心板/Src/application/dw_app.c
@@ -1,5 +1,6 @@
#include "dw_app.h"
#include "ADC.h"
#include "modbus.h"
#define TDFILTER
enum enumtagstate
{
@@ -738,7 +739,7 @@
int8_t correction_time,new_tagid=0;
extern uint8_t sync_seq;
u16 taglist_num=0,taglist_pos;
u16 tagid_list[TAG_NUM_IN_SYS];
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];
void TagListUpdate(void)
@@ -981,7 +982,7 @@
               if(hex_dist>-100000&&hex_dist<2000000)
               {
               if(abs(hex_dist-his_dist[taglist_pos])<dist_threshold||misdist_num[taglist_pos]>3)
               {
               {u8 i=0;
                  
                        g_Resttimer=0;
                        IWDG_Feed();
@@ -1017,12 +1018,38 @@
               usart_send[16] = rx_power;
               checksum = Checksum_u16(&usart_send[2],17);
               memcpy(&usart_send[19],&checksum,2);
               if(g_com_map[MODBUS_MODE]!=1)
               UART_PushFrame(usart_send,21);
            #else      
               memcpy(&usart_send_anc[4+6*anc_report_num],&tag_id_recv,2);
               memcpy(&usart_send_anc[6+6*anc_report_num],&tagdist_list[taglist_pos],4);
               anc_report_num++;
            #endif
               for(i=0;i<taglist_num-1;i++)
               {
                  if( tagdist_list[i]>tagdist_list[i+1]&&tagdist_list[i+1]!=0)
                  {
                     int32_t tempdist;
                     u16 tempid,tempstate;
                     tempdist = tagdist_list[i];
                     tempid = tagid_list[i];
                     tempstate = tagstate_list[i];
                     tagdist_list[i] = tagdist_list[i+1];
                     tagid_list[i] = tagid_list[i+1];
                     tagstate_list[i] = tagstate_list[i+1];
                     tagdist_list[i+1] = tempdist;
                     tagid_list[i+1] = tempid;
                     tagstate_list[i+1] = tempstate;
                  }
               }
               for(i=0;i<taglist_num;i++)
               {
                  Modbus_HoldReg[i*4] = tagid_list[i];
                  Modbus_HoldReg[i*4+1] = tagstate_list[i];
                  memcpy(&Modbus_HoldReg[i*4+2],&tagdist_list[i],4);
               }
               }else{
               //   printf("%d",hex_dist);
                  misdist_num[taglist_pos]++;