diff --git a/src/atcore.cpp b/src/atcore.cpp --- a/src/atcore.cpp +++ b/src/atcore.cpp @@ -229,11 +229,7 @@ d->printerStatus.posString.resize(d->printerStatus.posString.indexOf('E')); d->printerStatus.posString.replace(':', ""); } - if (pluginLoaded()) { - if (!plugin()->idleWait()) { - d->ready = true; - } - } + emit(receivedMessage(d->lastMessage)); } @@ -401,11 +397,6 @@ void AtCore::resume() { - if (pluginLoaded()) { - if (!plugin()->idleWait()) { - d->ready = true; - } - } pushCommand(GCode::toCommand(GCode::G0, QString::fromLatin1(d->printerStatus.posString))); setState(BUSY); } @@ -480,20 +471,19 @@ void AtCore::processQueue() { + d->ready = true; + if (d->commandQueue.isEmpty()) { return; } + QString text = d->commandQueue.takeAt(0); if (pluginLoaded()) { - if (!plugin()->idleWait()) { - // here we set false so that any new commands durring this time are added to the queue. - // this prevents the printer from being over welmed with commands - d->ready = false; - } serial()->pushCommand(plugin()->translate(text)); } else { serial()->pushCommand(text.toLocal8Bit()); } + d->ready = false; } void AtCore::checkTemperature() diff --git a/src/ifirmware.h b/src/ifirmware.h --- a/src/ifirmware.h +++ b/src/ifirmware.h @@ -41,7 +41,6 @@ /* virtuals, needs to reimplement */ virtual QString name() const = 0; virtual QByteArray translate(const QString &command) = 0; - virtual bool idleWait() const = 0; AtCore *core() const; private: IFirmwarePrivate *d; diff --git a/src/plugins/aprinterplugin.h b/src/plugins/aprinterplugin.h --- a/src/plugins/aprinterplugin.h +++ b/src/plugins/aprinterplugin.h @@ -30,13 +30,11 @@ Q_INTERFACES(IFirmware) private: static QString _ok; - static QString _wait; static QString _extruderTemp; static QString _bedTemp; public: AprinterPlugin(); QString name() const override; - bool idleWait() const override; void extractTemp(const QString &lastMessage); void validateCommand(const QString &lastMessage); QByteArray translate(const QString &command); diff --git a/src/plugins/aprinterplugin.cpp b/src/plugins/aprinterplugin.cpp --- a/src/plugins/aprinterplugin.cpp +++ b/src/plugins/aprinterplugin.cpp @@ -26,7 +26,6 @@ #include QString AprinterPlugin::_ok = QStringLiteral("ok"); -QString AprinterPlugin::_wait = QStringLiteral("wait"); QString AprinterPlugin::_extruderTemp = QStringLiteral("T:"); QString AprinterPlugin::_bedTemp = QStringLiteral("B:"); @@ -37,11 +36,6 @@ return QStringLiteral("Aprinter"); } -bool AprinterPlugin::idleWait() const -{ - return false; -} - AprinterPlugin::AprinterPlugin() { qCDebug(APRINTER_PLUGIN) << name() << " plugin loaded!"; @@ -65,7 +59,8 @@ { if (lastMessage.contains(_extruderTemp) || lastMessage.contains(_bedTemp)) { extractTemp(lastMessage); - } else if (lastMessage.contains(_ok) || lastMessage.contains(_wait)) { + } + if (lastMessage.contains(_ok)) { emit readyForCommand(); } } diff --git a/src/plugins/grblplugin.h b/src/plugins/grblplugin.h --- a/src/plugins/grblplugin.h +++ b/src/plugins/grblplugin.h @@ -31,7 +31,6 @@ public: GrblPlugin(); QString name() const override; - bool idleWait() const override; QByteArray translate(const QString &command); void validateCommand(const QString &lastMessage); }; diff --git a/src/plugins/grblplugin.cpp b/src/plugins/grblplugin.cpp --- a/src/plugins/grblplugin.cpp +++ b/src/plugins/grblplugin.cpp @@ -26,11 +26,6 @@ return QStringLiteral("Grbl"); } -bool GrblPlugin::idleWait() const -{ - return false; -} - GrblPlugin::GrblPlugin() { diff --git a/src/plugins/marlinplugin.h b/src/plugins/marlinplugin.h --- a/src/plugins/marlinplugin.h +++ b/src/plugins/marlinplugin.h @@ -30,13 +30,11 @@ Q_INTERFACES(IFirmware) private: static QString _ok; - static QString _wait; static QString _extruderTemp; static QString _bedTemp; public: MarlinPlugin(); QString name() const override; - bool idleWait() const override; void extractTemp(const QString &lastMessage); void validateCommand(const QString &lastMessage); QByteArray translate(const QString &command) override; diff --git a/src/plugins/marlinplugin.cpp b/src/plugins/marlinplugin.cpp --- a/src/plugins/marlinplugin.cpp +++ b/src/plugins/marlinplugin.cpp @@ -25,7 +25,6 @@ #include "atcore.h" QString MarlinPlugin::_ok = QStringLiteral("ok"); -QString MarlinPlugin::_wait = QStringLiteral("wait"); QString MarlinPlugin::_extruderTemp = QStringLiteral("T:"); QString MarlinPlugin::_bedTemp = QStringLiteral("B:"); @@ -41,11 +40,6 @@ qCDebug(MARLIN_PLUGIN) << name() << " plugin loaded!"; } -bool MarlinPlugin::idleWait() const -{ - return false; -} - void MarlinPlugin::extractTemp(const QString &lastMessage) { // ok T:185.4 /185.0 B:60.5 /60.0 @@ -71,7 +65,8 @@ { if (lastMessage.contains(_extruderTemp) || lastMessage.contains(_bedTemp)) { extractTemp(lastMessage); - } else if (lastMessage.contains(_ok) || lastMessage.contains(_wait)) { + } + if (lastMessage.contains(_ok)) { emit readyForCommand(); } } diff --git a/src/plugins/repetierplugin.h b/src/plugins/repetierplugin.h --- a/src/plugins/repetierplugin.h +++ b/src/plugins/repetierplugin.h @@ -30,13 +30,11 @@ Q_INTERFACES(IFirmware) private: static QString _ok; - static QString _wait; static QString _extruderTemp; static QString _bedTemp; public: RepetierPlugin(); QString name() const override; - bool idleWait() const override; void validateCommand(const QString &lastMessage); void extractTemp(const QString &lastMessage); QByteArray translate(const QString &command); diff --git a/src/plugins/repetierplugin.cpp b/src/plugins/repetierplugin.cpp --- a/src/plugins/repetierplugin.cpp +++ b/src/plugins/repetierplugin.cpp @@ -26,7 +26,6 @@ #include QString RepetierPlugin::_ok = QStringLiteral("ok"); -QString RepetierPlugin::_wait = QStringLiteral("wait"); QString RepetierPlugin::_extruderTemp = QStringLiteral("T:"); QString RepetierPlugin::_bedTemp = QStringLiteral("B:"); @@ -37,10 +36,6 @@ return QStringLiteral("Repetier"); } -bool RepetierPlugin::idleWait() const -{ - return true; -} RepetierPlugin::RepetierPlugin() { qCDebug(REPETIER_PLUGIN) << name() << " plugin loaded!"; @@ -64,7 +59,8 @@ { if (lastMessage.contains(_extruderTemp) || lastMessage.contains(_bedTemp)) { extractTemp(lastMessage); - } else if (lastMessage.contains(_ok) || lastMessage.contains(_wait)) { + } + if (lastMessage.contains(_ok)) { emit readyForCommand(); } } diff --git a/src/plugins/sprinterplugin.h b/src/plugins/sprinterplugin.h --- a/src/plugins/sprinterplugin.h +++ b/src/plugins/sprinterplugin.h @@ -30,13 +30,11 @@ Q_INTERFACES(IFirmware) private: static QString _ok; - static QString _wait; static QString _extruderTemp; static QString _bedTemp; public: SprinterPlugin(); QString name() const override; - bool idleWait() const override; void extractTemp(const QString &lastMessage); void validateCommand(const QString &lastMessage); QByteArray translate(const QString &command); diff --git a/src/plugins/sprinterplugin.cpp b/src/plugins/sprinterplugin.cpp --- a/src/plugins/sprinterplugin.cpp +++ b/src/plugins/sprinterplugin.cpp @@ -26,7 +26,6 @@ #include QString SprinterPlugin::_ok = QStringLiteral("ok"); -QString SprinterPlugin::_wait = QStringLiteral("wait"); QString SprinterPlugin::_extruderTemp = QStringLiteral("T:"); QString SprinterPlugin::_bedTemp = QStringLiteral("B:"); @@ -37,11 +36,6 @@ return QStringLiteral("Sprinter"); } -bool SprinterPlugin::idleWait() const -{ - return false; -} - SprinterPlugin::SprinterPlugin() { qCDebug(SPRINTER_PLUGIN) << name() << " plugin loaded!"; @@ -66,7 +60,8 @@ { if (lastMessage.contains(_extruderTemp) || lastMessage.contains(_bedTemp)) { extractTemp(lastMessage); - } else if (lastMessage.contains(_ok) || lastMessage.contains(_wait)) { + } + if (lastMessage.contains(_ok)) { emit readyForCommand(); } } diff --git a/src/plugins/teacupplugin.h b/src/plugins/teacupplugin.h --- a/src/plugins/teacupplugin.h +++ b/src/plugins/teacupplugin.h @@ -30,13 +30,11 @@ Q_INTERFACES(IFirmware) private: static QString _ok; - static QString _wait; static QString _extruderTemp; static QString _bedTemp; public: TeacupPlugin(); QString name() const override; - bool idleWait() const override; void extractTemp(const QString &lastMessage); void validateCommand(const QString &lastMessage); QByteArray translate(const QString &command); diff --git a/src/plugins/teacupplugin.cpp b/src/plugins/teacupplugin.cpp --- a/src/plugins/teacupplugin.cpp +++ b/src/plugins/teacupplugin.cpp @@ -27,7 +27,6 @@ #include "atcore.h" QString TeacupPlugin::_ok = QStringLiteral("ok"); -QString TeacupPlugin::_wait = QStringLiteral("wait"); QString TeacupPlugin::_extruderTemp = QStringLiteral("T:"); QString TeacupPlugin::_bedTemp = QStringLiteral("B:"); @@ -38,11 +37,6 @@ return QStringLiteral("Teacup"); } -bool TeacupPlugin::idleWait() const -{ - return false; -} - TeacupPlugin::TeacupPlugin() { qCDebug(TEACUP_PLUGIN) << name() << " plugin loaded!"; @@ -66,7 +60,8 @@ { if (lastMessage.contains(_extruderTemp) || lastMessage.contains(_bedTemp)) { extractTemp(lastMessage); - } else if (lastMessage.contains(_ok) || lastMessage.contains(_wait)) { + } + if (lastMessage.contains(_ok)) { emit readyForCommand(); } }