3 Star 11 Fork 11

xin-yue / XQt6

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
XQGizwitsDeviceMonitor.h 2.77 KB
一键复制 编辑 原始数据 按行查看 历史
#ifndef XQGIZWITSDEVICEMONITOR_H
#define XQGIZWITSDEVICEMONITOR_H
#include"XQGizwitsObject.h"
#include"XQDatabaseData.h"
#include<QJsonArray>
//机智云设备监控
class XQGizwitsDeviceMonitor :public XQGizwitsObject
{
Q_OBJECT
public:
XQGizwitsDeviceMonitor(QObject* parent = nullptr);
~XQGizwitsDeviceMonitor();
class DeviceStatic;//设备状态
class DataPoint;//数据点定义
public:
/*
* @brief 设备状态结果.
* @retval DeviceStatic(设备状态)
*/
DeviceStatic deviceStatic()const;
/*
* @brief 设备状态结果(替换attr参数中的各种属性键名).
* @param hash:映射的键值 deviceStaticAttrDataPoint获取
* @retval DeviceStatic(设备状态,替换后的)
*/
DeviceStatic deviceStatic(const QHash<QString, QString>& hash)const;
/*
* @brief 数据定义结果.
* @retval DataPoint(数据定义)
*/
DataPoint dataPoint()const;
/*
* @brief 设备状态attr属性名映射到数据定义.(请先运行getDeviceStatic和getDataPoint)
* @param fields:用于映射的DataPoint(数据定义)中的字段名
* @retval DataPoint(数据定义)
*/
QHash<QString, QString> deviceStaticAttrDataPoint(const QString& fields="desc");
public:
/*
* @brief 获取设备最新状态(联网).
* @param did:设备did号
* @retval 成功返回true
*/
bool getDeviceStatic(const QString& did);
/*
* @brief 获取数据定义(联网).
* @param product_key:设备product_key
* @retval 成功返回true
*/
bool getDataPoint(const QString& product_key);
protected:
DeviceStatic* m_deviceStatic = nullptr;
DataPoint* m_dataPoint = nullptr;
};
//设备状态
class XQGizwitsDeviceMonitor::DeviceStatic :public XQDatabaseData
{
public:
friend XQGizwitsDeviceMonitor;
//默认字段名
QStringList fields()const override;
//转VariantMap 输出
QVariantMap toVariantMap(bool base64 = false, const QStringList& fields = QStringList())const override;
//QVariantMap 数据构造
void setDatas(const QVariantMap& datas, bool base64 = false)override;
//创建表的sql语句
QString createTableSql(const QString& tableName)override;
protected:
QString did;//设备ip
QDateTime updated_at;//更新时间
QJsonObject attr;//设备状态信息
};
//数据点定义
class XQGizwitsDeviceMonitor::DataPoint :public XQDatabaseData
{
public:
friend XQGizwitsDeviceMonitor;
//默认字段名
QStringList fields()const override;
//转VariantMap 输出
QVariantMap toVariantMap(bool base64 = false, const QStringList& fields = QStringList())const override;
//QVariantMap 数据构造
void setDatas(const QVariantMap& datas, bool base64 = false)override;
//创建表的sql语句
QString createTableSql(const QString& tableName)override;
protected:
QString name;
QJsonArray entities;
QString protocolType;
QString product_key;
QString packetVersion;
QJsonObject ui;
};
#endif
1
https://gitee.com/xin___yue/XQt6.git
git@gitee.com:xin___yue/XQt6.git
xin___yue
XQt6
XQt6
master

搜索帮助