EdgeGateway_FSU/DevicePortGet/Mqtt_src/MqttClient.h

181 lines
4.9 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/***************************************************************
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 */