EnergySpectrumAnalyer/src/MeasureClient/MeasureClient.h
2026-04-08 15:38:41 +08:00

60 lines
1.8 KiB
C++

#ifndef MEASURECLIENT_H
#define MEASURECLIENT_H
#include <QObject>
#include <QTcpSocket>
#include <QDataStream>
#include <QJsonDocument>
#include <QJsonObject>
#include <QVariantMap>
#include <QVariantList>
#include <QThread>
#include <QMutex>
class MeasureClient : public QObject
{
Q_OBJECT
public:
explicit MeasureClient(QObject *parent = nullptr);
~MeasureClient();
// 设置服务器地址和端口
void setServerAddress(const QString &host, quint16 port);
// 启动测量(异步)
void startMeasure(const QString &deviceGuid, const QVariantMap &config);
// 停止测量(异步)
void stopMeasure(const QString &deviceGuid);
// 设置测量参数(异步)
void setMeasureConfigParams(const QString &deviceGuid, const QVariantMap &config);
// 清除数据(异步)
void clearData(const QString &deviceGuid);
// 获取设备列表(异步)
void getDeviceList();
signals:
// 操作结果信号
void startMeasureResult(bool success, const QString &info);
void stopMeasureResult(bool success, const QString &message);
void setMeasureConfigParamsResult(bool success, const QString &message);
void clearDataResult(bool success, const QString &message);
void getDeviceListResult(bool success, const QStringList &devices);
// 错误信号
void errorOccurred(const QString &errorString);
private slots:
// 处理命令执行
void processCommand(const QString &command, const QString &device_guid, const QVariantMap &config);
private:
// 发送命令并获取响应(短连接模式)
QVariantMap sendCommand(const QString &command, const QString &device_guid, const QString &data = QString());
private:
QString _host;
quint16 _port;
QThread *_workerThread;
QMutex _mutex;
};
#endif // MEASURECLIENT_H