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