EdgeGateway_FSU/DevicePortGet/Mqtt_src/MqttClient.h

181 lines
4.9 KiB
C
Raw Permalink Normal View History

2024-03-15 17:25:04 +08:00
/***************************************************************
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 */