feat:实时数据服务中增加stop接口

This commit is contained in:
duanshengchao 2026-01-13 11:34:05 +08:00
parent 59c3707e06
commit a2ab901d1d
2 changed files with 22 additions and 5 deletions

View File

@ -1,6 +1,7 @@
#ifndef MEASUREMENTDATAMANAGER_H
#define MEASUREMENTDATAMANAGER_H
#include "measurementDataUtils.h"
#include <QObject>
#include <QHash>
#include <QUrl>
@ -9,7 +10,6 @@ class QSettings;
class QNetworkAccessManager;
class QNetworkReply;
class WebSocketClient;
class MeasurementData;
class MeasurementDataManager : public QObject
{
@ -23,7 +23,7 @@ public:
void stopSubscription();
void addSubscriptionData(const QStringList& measurements);
void removeSubscriptionData(const QStringList& measurements);
void getSubscriptionRealtimeData();
MeasurementDataPoint getLatestRealtimeData(const QString& dataID);
void queryHistoricalEvents(const QString& dataID, const QDateTime& startTime, const QDateTime& endTime, const QString& step, const QString& type = "phasor");
private slots:
@ -76,6 +76,7 @@ private:
void processSubscriptionResponse(const QString& action, QNetworkReply* reply);
QUrl buildHistoricalQueryUrl(const QString& dataID,const QDateTime& startTime, const QDateTime& endTime, const QString& step, const QString& type);
void processHistoricalResponse(const QString& dataID, const QByteArray& data);
void getSubscriptionRealtimeData();
//配置相关
ServiceConfig m_serviceConfig;

View File

@ -1,6 +1,5 @@
#include "measurementDataManager.h"
#include "logger.h"
#include "measurementDataUtils.h"
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QUrlQuery>
@ -126,6 +125,11 @@ void MeasurementDataManager::removeSubscriptionData(const QStringList& measureme
buildSubscriptionRequest("stop", measurements);
}
void MeasurementDataManager::stopSubscription()
{
//暂时不需要m_webSocketClient析构的时候会断开链接xigous
}
void MeasurementDataManager::processSubscriptionResponse(const QString& action, QNetworkReply* reply)
{
if(reply->error() == QNetworkReply::NoError)
@ -286,10 +290,22 @@ void MeasurementDataManager::getSubscriptionRealtimeData()
if(!m_webSocketClient->connectToServer(url))
{
QString errorMsg = QString("Connect to WebSocketServer failed");
LOG_ERROR("WebSocket", errorMsg);
LOG_ERROR("WebSocket-MeasurementData", errorMsg);
}
}
MeasurementDataPoint MeasurementDataManager::getLatestRealtimeData(const QString& dataID)
{
if(!m_dataCache.contains(dataID))
return MeasurementDataPoint();
QVector<MeasurementDataPoint> result = m_dataCache.value(dataID)->getLatestData(1);
if(result.size() > 0)
return result.at(0);
else
return MeasurementDataPoint();
}
void MeasurementDataManager::queryHistoricalEvents(const QString& dataID, const QDateTime& startTime, const QDateTime& endTime, const QString& step, const QString& type)
{
QUrl url = buildHistoricalQueryUrl(dataID, startTime, endTime, step, type);
@ -360,7 +376,7 @@ void MeasurementDataManager::onReceiveRealtimeData(const QString& dataMsg)
else
{
QString errorMsg = QString("Realtime measurementData reply Json 'payload' is not object: %1").arg(dataMsg);
LOG_ERROR("WebSockt-MeasurementDat", errorMsg);
LOG_ERROR("WebSockt-MeasurementData", errorMsg);
}
}
else