代码拉取完成,页面将自动刷新
#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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。