#ifndef MEASURECLIENT_H #define MEASURECLIENT_H #include #include #include #include #include #include #include #include #include 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