From a7985c5c895b69aeb926c3991507d0498de60164 Mon Sep 17 00:00:00 2001 From: wh201906 Date: Tue, 11 Aug 2020 11:51:27 +0800 Subject: [PATCH] Stop the running command after disconnected --- common/util.cpp | 10 +++++++++- common/util.h | 2 ++ ui/mainwindow.cpp | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/common/util.cpp b/common/util.cpp index 3d73cc3..707dfe7 100644 --- a/common/util.cpp +++ b/common/util.cpp @@ -23,11 +23,14 @@ void Util::processOutput(QString output) void Util::execCMD(QString cmd) { qDebug() << cmd; - emit write(cmd + "\r\n"); + if(isRunning) + emit write(cmd + "\r\n"); } QString Util::execCMDWithOutput(QString cmd, unsigned long waitTime) { + if(!isRunning) + return ""; QTime currTime = QTime::currentTime(); QTime targetTime = QTime::currentTime().addMSecs(waitTime); isRequiringOutput = true; @@ -61,3 +64,8 @@ void Util::setClientType(Util::ClientType clientType) { this->clientType = clientType; } + +void Util::setRunningState(bool st) +{ + this->isRunning = st; +} diff --git a/common/util.h b/common/util.h index adc9291..b2ca006 100644 --- a/common/util.h +++ b/common/util.h @@ -31,9 +31,11 @@ public: public slots: void processOutput(QString output); void setClientType(Util::ClientType clientType); + void setRunningState(bool st); private: bool isRequiringOutput; + bool isRunning; QString* requiredOutput; QTime timeStamp; ClientType clientType; diff --git a/ui/mainwindow.cpp b/ui/mainwindow.cpp index 2b30c0f..8fbbd8a 100644 --- a/ui/mainwindow.cpp +++ b/ui/mainwindow.cpp @@ -875,6 +875,7 @@ void MainWindow::signalInit() connect(this, &MainWindow::connectPM3, pm3, &PM3Process::connectPM3); connect(pm3, &PM3Process::PM3StatedChanged, this, &MainWindow::onPM3StateChanged); + connect(pm3, &PM3Process::PM3StatedChanged, util, &Util::setRunningState); connect(this, &MainWindow::killPM3, pm3, &PM3Process::kill); connect(util, &Util::write, pm3, &PM3Process::write);