/*************************************************************** Copyright © huijue Network Co., Ltd. 1998-2129. All rights reserved. Copyright © 上海汇珏网络通信设备股份有限公司 1998-2129. All rights reserved. 文件名 : MqttClient.h 作者 : kooloo 版本 : V1.0 描述 : 动环监控/边缘网关FSU主进程入口 支持设置调试输出口 头文件 硬件平台 : iMX6ULL 内核版本 : linux-imx-4.1.15-2.1.0-g3dc0a4b-v2.7 编译器版本 :gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf 日志 : 初版V1.0 2023/7/15 kooloo创建 ***************************************************************/ #ifndef __MQTTCLIENT_H #define __MQTTCLIENT_H #if 0 // 枚举定义 /**@brief 报文返回结果 */ enum EnumResult { FSU_FAILURE=0, ///< 失败 FSU_SUCCESS, ///< 成功 FSU_LOGIN ///< 重新登录 }; /**@brief 监控系统数据的种类 */ typedef enum { DI=0, ///< 数字输入量(包含多态数字输入量),遥信 AI=1, ///< 模拟输入量,遥测 DO=2, ///< 数字输出量,遥控 AO=3 ///< 模拟输出量,遥调 }EnumType; /**@brief 数据值的状态 */ typedef enum { NOALARM=0, ///< 正常数据 CRITICAL=1, ///< 一级告警 MAJOR=2, ///< 二级告警 MINOR=3, ///< 三级告警 HINT=4, ///< 四级告警 OPEVENT=5, ///< 操作事件 INVALID=6, ///< 无效数据 }EnumState; /**@brief 告警标志 */ typedef enum { BEGIN, ///< 开始 END, ///< 结束 }EnumFlag; /**@brief 门禁命令执行结果 */ typedef enum { // FAILURE=0, ///< 失败 // SUCCESS=1, ///< 成功 BROKEN=2, ///< 控制器断线 }EnumDoorResult; // 数据结构定义 /**@brief 时间的结构 */ typedef struct { short Years; ///< 年 char Month; char Day; char Hour; char Minute; char Second; } TTime; /**@brief 信号量的值的结构 */ typedef struct { EnumType Type; ///< 数据类型 char ID[ID_LENGTH]; ///< 监控点ID float MeasuredVal; ///< 实测值 float SetupVal; ///< 设置值 EnumState Status; ///< 状态 char Time[TIME_LEN]; ///< 时间,格式YYYY-MM-DDhh:mm:ss(采用24小时的时间制式) } TSemaphore; /**@brief 信号量的门限值的结构 */ typedef struct { EnumType Type; ///< 数据类型 char ID[ID_LENGTH]; ///< 监控点ID float Threshold; ///< 门限值 float AbsoluteVal; ///< 绝对阀值 float RelativeVal; ///< 百分比阀值 EnumState Status; ///< 状态 short Period; ///< 存储周期(秒) } TThreshold; /**@brief 告警消息的结构 */ typedef struct { char SerialNo[SERIALNO_LEN]; ///< 告警序号,同一条告警的开始和结束,告警序号要一致 char ID[ID_LENGTH]; ///< 监控点ID char DeviceID[DEVICEID_LEN]; ///< 设备ID char AlarmTime[TIME_LEN]; ///< 告警时间,YYYY-MM-DDhh:mm:ss(采用24小时的时间制式) EnumState AlarmLevel; ///< 告警级别 EnumFlag AlarmFlag; ///< 告警标志 char AlarmDesc[DES_LENGTH]; ///< 告警的事件描述,内容为:信号标准名 + 空格 + 告警信息(告警信息根据B接口规范填写) float EventValue; ///< 告警触发值 char AlarmRemark1[ALARMREMARK_LEN]; ///< 预留字段1 char AlarmRemark2[ALARMREMARK_LEN]; ///< 预留字段2 } TAlarm; /**@brief 监控点信号配置信息 */ typedef struct { EnumType Type; ///< 数据类型 char ID[ID_LENGTH]; ///< 监控点ID char SignalName[NAME_LENGTH]; ///< 信号名称 EnumState AlarmLevel; ///< 告警等级 float Threshold; ///< 门限值 float AbsoluteVal; ///< 绝对阀值 float RelativeVal; ///< 百分比阀值 char Describe[DES_LENGTH]; ///< 描述信息。状态信号为状态描述,格式举例:0&正常;1&告警 。模拟信号为单位 short Period; ///< 存储周期(秒) } TSignal; /**@brief FSU状态参数 */ typedef struct { float CPUUsage; ///< CPU使用率 float MEMUsage; ///< 内存使用率 } TFSUStatus; #endif /** * 485 相关参数集合 枚举常用变量 kooloo add 20230921 */ typedef enum { ePublicTopic_Len = 50, /*主题长度 */ eServerAddress_Port_Len =40, /*broker 服务器地址和端口长度 */ eMqttClientID_Len = 20, /*Mqtt客户ID 长度 */ eMqttUserName_Len=20, /*Mqtt用户名 长度 */ eMqttPassWord_Len = 20, /*Mqtt密码 长度 */ } MqttInfoConfLen_enum; /**@brief 监控对象配置信息 MQTT*/ typedef struct { char GateWayPublicTopic_Server[ePublicTopic_Len]; //网关发布主题到服务器 char ServerPublicTopic_GateWay[ePublicTopic_Len]; //服务器发布主题到网关 char BrokerAddress_Port[eServerAddress_Port_Len]; //MQTTBroker服务器地址端口 char MqttClientID[eMqttClientID_Len]; //Mqtt客户ID char MqttUserName[eMqttUserName_Len]; //Mqtt用户名 char MqttPassWord[eMqttPassWord_Len]; //Mqtt密码 char MqttWillToplic_Server[ePublicTopic_Len]; } MqttInfoConf_t; #endif /* __MQTTCLIENT_H */