68 lines
2.1 KiB
C++
68 lines
2.1 KiB
C++
#include "instance/dataAccessor.h"
|
|
#include <QVariant>
|
|
#include <QJsonObject>
|
|
#include <QJsonArray>
|
|
|
|
DataAccessor::DataAccessor(QObject* parent)
|
|
: QObject(parent)
|
|
{
|
|
|
|
}
|
|
|
|
DataAccessor::~DataAccessor()
|
|
{
|
|
|
|
}
|
|
|
|
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);
|
|
}
|