60 lines
1.8 KiB
C++
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
|