diff --git a/src/MeasureDeviceController.cpp b/src/MeasureDeviceController.cpp index 3840551..789b811 100644 --- a/src/MeasureDeviceController.cpp +++ b/src/MeasureDeviceController.cpp @@ -10,7 +10,7 @@ typedef int* DeviceHandler; static sDeviceList s_device_list; static DeviceHandler GetDeviceHandler(const QString &device_guid) { - DeviceHandler device_handler = DeviceHandler(0x01); + DeviceHandler device_handler = nullptr; for (int i = 0; i < s_device_list.totalNum; i++) { sDeviceInfo di; int ret = GetDeviceInfo(s_device_list.pHandle[i], &di,-1,-1); @@ -56,7 +56,19 @@ void MeasureDeviceController::InitFindMeasureDevice() int ret = FindDeviceAsync(&fdc, onFindDeviceFinishedCallback); if (ret != 1) { - QLOG_ERROR() << QStringLiteral(u"调用测量设备失败:[返回代码%1]").arg(ret); + QLOG_ERROR() << QStringLiteral(u"调用查找测量设备失败:[返回代码%1]").arg(ret); + } +} + +void MeasureDeviceController::DisconnectMeasureDevice(const QString &device_guid) +{ + DeviceHandler device_handler = GetDeviceHandler(device_guid); + if (!device_handler) { + return; + } + int ret = CloseDevice(device_handler); + if (ret != 1) { + QLOG_ERROR() << QStringLiteral(u"断开测量设备失败:[返回代码%1]").arg(ret); } } @@ -240,7 +252,7 @@ QString MeasureDeviceController::GetMeasureGvfDataFilename() return QString(); } QList gvf_file_list = measure_gvf_data_dir.entryList(QDir::Files|QDir::NoSymLinks|QDir::NoDotAndDotDot, QDir::Time); - for (const QString& gvf_filename : gvf_file_list) { + foreach (const QString& gvf_filename , gvf_file_list) { QFileInfo measure_gvf_data_file_info(measure_gvf_data_dir.filePath(gvf_filename)); if (measure_gvf_data_file_info.exists()) { if ( measure_gvf_data_file_info.suffix() != QString("gvf") ) diff --git a/src/MeasureDeviceController.h b/src/MeasureDeviceController.h index 22f386f..6c73672 100644 --- a/src/MeasureDeviceController.h +++ b/src/MeasureDeviceController.h @@ -23,6 +23,7 @@ public: virtual ~MeasureDeviceController(); void InitFindMeasureDevice(); + void DisconnectMeasureDevice(const QString &device_guid); bool SetDeviceMeasureConfigParams(const QString& device_guid, int board_id, int channel_id, const QVariantMap &cfg_params); bool StartMeasure(const QString& device_guid, int board_id, int channel_id); bool StopMeasure(const QString& device_guid, int board_id, int channel_id);