添加GVF数据处理线程

This commit is contained in:
徐海 2026-04-16 21:53:03 +08:00
parent 64e0113290
commit 738f07624c
3 changed files with 24 additions and 4 deletions

View File

@ -6,11 +6,13 @@
#include <QJsonDocument>
#include <QJsonObject>
#include <QDataStream>
#include <QSqlDatabase>
#include "SyncGvfFileDataTask.h"
RequstDataProcesser::RequstDataProcesser(QObject *parent)
: QTcpSocket{parent}
{}
{
}
void RequstDataProcesser::OnReplayClient(const QByteArray& replay_data)
{
@ -114,17 +116,30 @@ void RequstDataProcesser::processStartMeasureCmd(const QString& device_guid, con
replay_info = QStringLiteral(u"测量数据GVF文件未找到");
} else {
replay_info = measure_data_gvf_filename;
SyncGvfFileDataTask* sync_gvf_data_task = new SyncGvfFileDataTask;
connect(sync_gvf_data_task, &SyncGvfFileDataTask::finished, sync_gvf_data_task, &SyncGvfFileDataTask::deleteLater);
connect(sync_gvf_data_task, &SyncGvfFileDataTask::syncGvfData, this, &RequstDataProcesser::OnReplayClient);
connect(this, &RequstDataProcesser::stopSyncGvfFileDataTask, sync_gvf_data_task, &SyncGvfFileDataTask::OnStop);
sync_gvf_data_task->start();
}
QByteArray replay_data;
QDataStream replay_data_stream(&replay_data, QIODevice::Append);
replay_data_stream << QString("START") << ok << replay_info;
QMetaObject::invokeMethod(this, "OnReplayClient", Qt::QueuedConnection, Q_ARG(QByteArray, replay_data));
}
SyncGvfFileDataTask* sync_gvf_data_task = new SyncGvfFileDataTask;
connect(sync_gvf_data_task, &SyncGvfFileDataTask::finished, sync_gvf_data_task, &SyncGvfFileDataTask::deleteLater, Qt::DirectConnection);
connect(sync_gvf_data_task, &SyncGvfFileDataTask::syncGvfData, this, &RequstDataProcesser::OnReplayClient, Qt::QueuedConnection);
connect(this, &RequstDataProcesser::stopSyncGvfFileDataTask, sync_gvf_data_task, &SyncGvfFileDataTask::OnStop, Qt::DirectConnection);
sync_gvf_data_task->start();
}
void RequstDataProcesser::processStopMeasureCmd(const QString& device_guid)
{
MeasureDeviceController::Instance()->StopMeasure(device_guid);
emit stopSyncGvfFileDataTask();
QByteArray replay_data;
QDataStream replay_data_stream(&replay_data, QIODevice::Append);
replay_data_stream << QString("STOP") << true << QStringLiteral(u"停止测量完成");

View File

@ -15,6 +15,9 @@ public:
public slots:
void OnReplayClient(const QByteArray& replay_data);
signals:
void stopSyncGvfFileDataTask();
private:
void processStartMeasureCmd(const QString& device_guid, const QString& cmd_data);
void processStopMeasureCmd(const QString& device_guid);

View File

@ -23,13 +23,15 @@ SOURCES += \
$${PWD}/MeasureServer.cpp \
$${PWD}/main.cpp \
$${PWD}/MeasureDeviceController.cpp \
$${PWD}/RequstDataProcesser.cpp
$${PWD}/RequstDataProcesser.cpp \
SyncGvfFileDataTask.cpp
HEADERS += \
$${PWD}/MeasureServer.h \
$${PWD}/MeasureDeviceController.h \
$${PWD}/MeasureServiceProtocol.h \
$${PWD}/RequstDataProcesser.h
$${PWD}/RequstDataProcesser.h \
SyncGvfFileDataTask.h
DEFINES += ENABLE_DEBUG