#ifndef __CA_CAU_H__ #define __CA_CAU_H__ #ifdef CFG_DEV_TYPE_LAND_CA /* Includes ------------------------------------------------------------------*/ #include "ca_main.h" /* Define --------------------------------------------------------------------*/ #define MODBUS_DATA_LENGTH (512) #define MESSAGE_HEAD_POS (0) #define MESSAGE_FUNC_POS (1) #define MESSAGE_DATA_LEN_POS (2) //#define MESSAGE_BODY_LEN_POS (1) //#define MESSAGE_BODY_POS (2) //#define MODBUS_HEAD_POS (0) //#define MODBUS_FUNC_POS (1) #define CALI_POINT_MAX (5) // 5个校准点 /* Exported types ------------------------------------------------------------*/ typedef struct { float tag[MAX_CAU_CHANNEL]; }cau_real_data_t; typedef struct { cau_real_data_t cauVal[100];// 每个点采集20次取平均值 cau_real_data_t cauAvg[5];//校准计算平均值 }cali_value_t; typedef int32_t (*cb_send_data)(int cmd, char *psrc, int len); typedef struct { int serial_fd; unsigned char modbus_recv_buf[MODBUS_DATA_LENGTH]; unsigned char modbus_send_buf[MODBUS_DATA_LENGTH]; cau_real_data_t real_data; unsigned int last_collect_time; Parameters_t cali_param; cali_value_t cali_val; int ismanual; int workstat; //0:正常工作 1:正在校准 cb_send_data send_data; } cau_t; typedef struct { int vsc;//超级电容 输出电压 单位mv int vbat;//电池电压 单位mv int vout;//系统供电电压(Vsc ,Vbat,V5v三者的最大值) 用于判断电池是否在供电中 } pwr_t; /* Exported macro ------------------------------------------------------------*/ /* Extern global variables ---------------------------------------------------*/ //extern csg_t csg; extern cau_t cau; extern pwr_t pwr; /* Extern functions ----------------------------------------------------------*/ extern int32_t cau_handle_init(void); extern int _cau_set_calibration_param(float *pparam); extern void _cau_reset_real_data(); extern int _cau_get_current_values(float *fdestArr); #endif #endif