#ifndef __SGA500E_H__ #define __SGA500E_H__ #include "plt.h" #define SGA500E_NBR_MAX 4 /* 0X0100 设备状态 0-6;(0:正常;1:低报;2:高报;6:传感器故障) 0X0101 测量浓度值0-65535 0X0102 小数点位置 0-4(0:无;1:1位小数;2:2位小数;3:3位小数;4:4位小数) 0X0103 物质名称0-255,详见附表1 0X0104 测量单位 0-3;(0 :%LEL;1:%VOL等于mol/mol ;2:PPM等于μmol/mol;3:PPB) 0X0105 高限报警值00-65535 0X0106 低限报警值00-65535 0X0107 检测仪地址01-247 0X0108 检测量程00-65535 */ struct sga500e_t{ char szinfo[32]; int cmd; struct comm_t comm; struct statemachine_t sm; int state; // 0 : normal // 6 : fault char szstate[16]; double density; int decimal_pos; // int name; char szname[32]; int unit; char szunit[32]; int alarm_hi; int alarm_lo; }; extern struct sga500e_t sga500e[SGA500E_NBR_MAX + 1]; int sga500e_init(); int sga500e_get_state( int idx); char* sga500e_get_state_str( int idx); int sga500e_get_cmd( int idx); void sga500e_reset_cmd( int idx); int sga500e_send_sm_cmd( int idx, int val ); int sga500e_get_addr( int idx ); int sga500e_chk_stat_all( int stat); int sga500e_send_sm_cmd_all( int val ); int sga500e_get_comm_st(int idx); double sga500e_get_density( int idx); int sga500e_get_chan_idx(int idx); int sga500e_get_tick(int idx); char* sga500e_get_comm_state_str(int idx); int sga500e_get_nbr(); int sga500e_get_tool_data(int idx,char* buf); int sga500e_get_tbmqtt_data(int idx,char* buf); int sga500e_get_cloud_data(int ctn_idx,int idx,char* buf); int sga500e_get_bkds_data(int idx,char* buf); #endif