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);