DiagramDesigner/diagramCavas/source/instance/dataAccessor.cpp

68 lines
2.1 KiB
C++
Raw Normal View History

2025-12-12 17:46:37 +08:00
#include "instance/dataAccessor.h"
2025-12-15 14:38:17 +08:00
#include <QVariant>
#include <QJsonObject>
#include <QJsonArray>
2025-12-12 17:46:37 +08:00
DataAccessor::DataAccessor(QObject* parent)
: QObject(parent)
{
}
DataAccessor::~DataAccessor()
{
}
2025-12-15 14:38:17 +08:00
void DataAccessor::onReceiveHttpData(const QString& sType,const QVariant& data)
{
if(sType == "subscriptions"){
QJsonObject dataObj = data.toJsonObject();
QString sClientId = dataObj.value("client_id").toString();
QMap<QString,QString> lstRequest;
QJsonArray measureArr = dataObj.value("measurements").toArray();
for(const QJsonValue& value : measureArr){
QJsonObject obj = value.toObject();
QString sId = obj["id"].toString();
QString sCode = obj["code"].toString();
if(sId == "1001"){
if(!lstRequest.contains(sId)){
lstRequest.insert(sId,sCode);
}
}
}
/*QString input = dataObj.value("input").toString();
int offSet = dataObj.value("offset").toInt();
QJsonArray recommendedList = dataObj.value("recommended_list").toArray();
for(const QJsonValue& value : recommendedList){
QString content = value.toString();
}*/
}
}
void DataAccessor::onReceiveWebsocketData(const QVariant& data)
{
QJsonObject dataObj = data.toJsonObject();
if(dataObj.contains("targets")){
QJsonArray arrTarget = dataObj.value("targets").toArray();
for (const QJsonValue& value : arrTarget) {
QJsonObject targetObj = value.toObject();
QString targetId = targetObj["id"].toString();
QJsonArray arrData = targetObj["datas"].toArray();
for (const QJsonValue& data : arrData){
QJsonObject dataObj = data.toObject();
QString sTime = dataObj["time"].toString();
bool ok = false;
quint64 value = sTime.toULongLong(&ok);
if (ok) {
// 使用 value
}
double dVal = dataObj["value"].toDouble();
}
}
}
QMutexLocker locker(&m_mutex);
}