181 lines
4.9 KiB
C
181 lines
4.9 KiB
C
|
/***************************************************************
|
|||
|
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-DD<SPACE键>hh: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-DD<SPACE键>hh: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 */
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|