#ifndef __CHECK_H__ #define __CHECK_H__ #include "stdint.h" #ifdef __cplusplus extern "C" { #endif #define CHECK_RX_BUF_LEN (512 + 20) // 128,modified by yuewei 20260304 #define CHECK_TX_BUF_LEN (512 + 20) // 128,modified by yuewei 20260304 #define CHECK_RX_VLD (0x0001u) #define CHECK_RX_ERROR (0x0001u) #define CHECKED (0) #define CHECKING (1) #define CHECK_RX_HEAD (0) #define CHECK_RX_CMD (1) #define CHECK_RX_S_ADDR (2) #define CHECK_RX_D_ADDR (3) #define CHECK_RX_LEN (4) #define CHECK_RX_DATA (5) #define CHECK_RX_CRC_16 (6) // add by yuewei 20260305 #define CHECK_RX_CRC (7) // 6,modified by yuewei 20260305 #define CHECK_RX_TAIL (8) // 7,modified by yuewei 20260305 #define CHECK_RX_CRC_MODBUS (9) // add by yuewei 20260317 typedef struct { uint32_t state; uint8_t rx_buf[CHECK_RX_BUF_LEN]; uint16_t rx_idx; uint16_t rx_over_time; uint16_t rx_flag; uint16_t rx_err; uint8_t tx_buf[CHECK_TX_BUF_LEN]; double start_cum_flow; double curr_cum_flow; double total_spd_lvl; double total_water_temp; uint32_t flow_cnt; uint32_t flow_rate; uint8_t c_point_idx; uint32_t total_pulse; uint16_t checking_cnt; uint32_t start_time; uint32_t end_time; } check_t; extern uint32_t GetCheckState(void); extern uint32_t GetCheckPulse(void); extern void SetCheckFlow(double cum_flow, float spdLvl, float temp); extern void check_init(void); extern void CheckRxData(volatile uint8_t data); extern void CheckRxTimeout(void); extern void CheckRxHandler(void); extern uint8_t CheckRxState(void); extern void CheckingCoundown(void); extern uint8_t finsh_txing_flag; #ifdef __cplusplus } #endif #endif