From c36d0b5cce9e67bea0d79a1d349ba20383c91f28 Mon Sep 17 00:00:00 2001 From: Krad Date: Wed, 27 Oct 2021 18:04:05 +0800 Subject: [PATCH] New status check logic --- src/device/DeviceManager.cpp | 102 ++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 37 deletions(-) diff --git a/src/device/DeviceManager.cpp b/src/device/DeviceManager.cpp index f404530..ea0efc3 100644 --- a/src/device/DeviceManager.cpp +++ b/src/device/DeviceManager.cpp @@ -55,10 +55,11 @@ void DeviceManager::initDevice() { // empty scan connect(EventCenter::Default(),&EventCenter::RequestEmptyScan,[=](QObject* sender, QObject* detail){ std::string json= getJsonFromPatInf(detail); - qDebug()<timerId() !=deviceInfTimerID) { - qDebug()<<"GetStatus"; - StatusInfo inf = GetStatus(); - qDebug() << "Scanning request status, status:" << getStatusString(inf.status); + //error exit if (errorOccurred) { - qDebug() << "Error occurred, exit progress timer" << inf.progress; + qDebug() << "Error occurred, exit progress timer"; goto exitTimer; } + // previewing exit if (previewing) { //错误timer goto exitTimer; } + // check device status========================================= + qDebug()<<"GetStatus"; + StatusInfo inf = GetStatus(); + qDebug() << "Scanning request status, status:" << getStatusString(inf.status); //设备正常扫描中 if (inf.status==SCANNING) { @@ -204,6 +224,11 @@ void DeviceManager::timerEvent(QTimerEvent *event) { s = s.arg(QDateTime::currentDateTime().toString("yyyy/MM/dd HH:mm:ss")).arg("Scan finished"); TRIGGER_EVENT(GUIEvents::GlobalBannerMessage, nullptr,(QObject*)&s); } + //一般不会出现其他情况 + else{ + QString msg("Unknown error in scanning progress timer"); + THROW_ERROR(msg); + } } exitTimer: qDebug() << "Scanning progress Timer exit"; @@ -211,7 +236,6 @@ void DeviceManager::timerEvent(QTimerEvent *event) { timerID=-1; lastStatus = -1; previewing = false; -// TRIGGER_EVENT(GUIEvents::GlobalBannerMessage, nullptr,nullptr); return; } else{ QString temp = QString(GetDeviceInfo(MEAN_TEMPERATURE)); @@ -220,34 +244,38 @@ void DeviceManager::timerEvent(QTimerEvent *event) { } void DeviceManager::processScan(const char *json, bool empty) { + // check device status========================================= + qDebug() << "GetStatus"; + StatusInfo inf = GetStatus(); + qDebug() << "Scan start request status, status:" << getStatusString(inf.status); + if (inf.status != READY) { + QString errmsg("Device is not ready, start scan operation fail!status is %1"); + errmsg = errmsg.arg(getStatusString(inf.status)); + THROW_ERROR(errmsg); + return; + } static QString msg = "Start scan..."; - TRIGGER_EVENT(GUIEvents::InvokeOperationStart, nullptr, (QObject*)&msg); - qDebug() << "SetScanInfo>>>>>>>>>>>>>>>>>>>>" ; - int ret = SetScanInfo(json,empty?1:0); - if (ret){ + TRIGGER_EVENT(GUIEvents::InvokeOperationStart, nullptr, (QObject *) &msg); + qDebug() << "SetScanInfo>>>>>>>>>>>>>>>>>>>>"; + int ret = SetScanInfo(json, empty ? 1 : 0); + if (ret) { qDebug() << ">>>>>>>>>>>>>>>>>>>>SetScanInfo failed"; QString errmsg("Transfer patient information fail!"); - qDebug() << "Error thrown" ; + qDebug() << "Error thrown"; THROW_ERROR(errmsg); return; } qDebug() << ">>>>>>>>>>>>>>>>>>>>SetScanInfo success"; - qDebug()<<"GetStatus"; - StatusInfo inf = GetStatus(); - qDebug() << "Scan start request status, status:" << getStatusString(inf.status); - if (inf.status==READY) - { - //ScanControl fail - qDebug() << "ScanControl start>>>>>>>>>>>>>>>>>>>>>"; - if(!ScanControl(SCAN)) { - qDebug() << ">>>>>>>>>>>>>>>>>>>>>ScanControl success"; - lastStatus = SCANNING; - qDebug() << "Start progress timer"; - timerID = startTimer(300); - return; - } - qDebug() << ">>>>>>>>>>>>>>>>>>>>>ScanControl failed"; + //ScanControl fail + qDebug() << "ScanControl start>>>>>>>>>>>>>>>>>>>>>"; + if (!ScanControl(SCAN)) { + qDebug() << ">>>>>>>>>>>>>>>>>>>>>ScanControl success"; + lastStatus = SCANNING; + qDebug() << "Start progress timer"; + timerID = startTimer(300); + return; } - QString errmsg("Start scan operation fail!"); + QString errmsg("ScanControl start fail!"); THROW_ERROR(errmsg); + qDebug() << ">>>>>>>>>>>>>>>>>>>>>ScanControl failed"; }