| | |
| | | #include "dw_app.h" |
| | | #include "ADC.h" |
| | | #include "modbus.h" |
| | | #define TDFILTER |
| | | enum enumtagstate |
| | | { |
| | |
| | | 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) |
| | |
| | | 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(); |
| | |
| | | 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]++; |