diff --git a/src/core/temperature.h b/src/core/temperature.h --- a/src/core/temperature.h +++ b/src/core/temperature.h @@ -35,10 +35,12 @@ class ATCORE_EXPORT Temperature : public QObject { Q_OBJECT - Q_PROPERTY(float bedTemperature READ bedTemperature WRITE setBedTemperature NOTIFY bedTemperatureChanged) - Q_PROPERTY(float bedTargetTemperature READ bedTargetTemperature WRITE setBedTargetTemperature NOTIFY bedTargetTemperatureChanged) - Q_PROPERTY(float extruderTemperature READ extruderTemperature WRITE setExtruderTemperature NOTIFY extruderTemperatureChanged) - Q_PROPERTY(float extruderTargetTemperature READ extruderTargetTemperature WRITE setExtruderTargetTemperature NOTIFY extruderTargetTemperatureChanged) + Q_PROPERTY(float bedTemperature READ bedTemperature NOTIFY bedTemperatureChanged) + Q_PROPERTY(float bedTargetTemperature READ bedTargetTemperature NOTIFY bedTargetTemperatureChanged) + Q_PROPERTY(float extruderTemperature READ extruderTemperature NOTIFY extruderTemperatureChanged) + Q_PROPERTY(float extruderTargetTemperature READ extruderTargetTemperature NOTIFY extruderTargetTemperatureChanged) + + friend class TemperatureTests; public: /** @@ -57,72 +59,48 @@ */ float bedTargetTemperature() const; - /** - * @brief Get extruder temperature - */ - float extruderTemperature() const; - - /** - * @brief Get extruder target temperature - */ - float extruderTargetTemperature() const; - /** * @brief decode Temp values from string \p msg * @param msg: string to read vaules from */ void decodeTemp(const QByteArray &msg); -public slots: /** - * @brief Set bed temperature - * @param temp: bed temperature - */ - void setBedTemperature(float temp); - - /** - * @brief Set bed target temperature - * @param temp: bed target temperature + * @brief Get extruder temperature */ - void setBedTargetTemperature(float temp); + float extruderTemperature() const; /** - * @brief Set exturder temperature - * @param temp: bed temperature + * @brief Get extruder target temperature */ - void setExtruderTemperature(float temp); - - /** - * @brief Set extruder target temperature - * @param temp: extruder target temperature - */ - void setExtruderTargetTemperature(float temp); + float extruderTargetTemperature() const; signals: /** * @brief bed temperature has changed - * @param temp : new bed temperature */ - void bedTemperatureChanged(float temp); + void bedTemperatureChanged(); /** * @brief bed target temperature has changed - * @param temp : new bed target temperature */ - void bedTargetTemperatureChanged(float temp); + void bedTargetTemperatureChanged(); /** * @brief extruder temperature has changed - * @param temp : new extruder temperature */ - void extruderTemperatureChanged(float temp); + void extruderTemperatureChanged(); /** * @brief extruder target temperature has changed - * @param temp : new extruder target temperature */ - void extruderTargetTemperatureChanged(float temp); + void extruderTargetTemperatureChanged(); +protected: + /** + * @brief Reset internal temperature data, For Tests-Only + */ + void resetData(); private: struct TemperaturePrivate; TemperaturePrivate *d; diff --git a/src/core/temperature.cpp b/src/core/temperature.cpp --- a/src/core/temperature.cpp +++ b/src/core/temperature.cpp @@ -113,54 +113,42 @@ return d->extruderTemp; } -void Temperature::setBedTargetTemperature(float temp) -{ - d->bedTargetTemp = temp; - emit bedTargetTemperatureChanged(temp); -} - -void Temperature::setBedTemperature(float temp) -{ - d->bedTemp = temp; - emit bedTemperatureChanged(temp); -} - -void Temperature::setExtruderTargetTemperature(float temp) -{ - d->extruderTargetTemp = temp; - emit extruderTargetTemperatureChanged(temp); -} - -void Temperature::setExtruderTemperature(float temp) -{ - d->extruderTemp = temp; - emit extruderTemperatureChanged(temp); -} - void Temperature::decodeTemp(const QByteArray &msg) { QString msgString = QString::fromLatin1(msg); QRegularExpressionMatch tempCheck = d->tempRegEx.match(msgString); QRegularExpressionMatch targetTempCheck = d->targetTempRegEx.match(msgString); if (tempCheck.hasMatch()) { - setExtruderTemperature(tempCheck.captured(QStringLiteral("extruder")).toFloat()); + d->extruderTemp = tempCheck.captured(QStringLiteral("extruder")).toFloat(); + emit extruderTemperatureChanged(); } if (targetTempCheck.hasMatch()) { - setExtruderTargetTemperature(targetTempCheck.captured(QStringLiteral("extruderTarget")).toFloat()); + d->extruderTargetTemp = targetTempCheck.captured(QStringLiteral("extruderTarget")).toFloat(); + emit extruderTargetTemperatureChanged(); } if (msg.indexOf(QStringLiteral("B:")) != -1) { QRegularExpressionMatch bedCheck = d->bedRegEx.match(msgString); QRegularExpressionMatch targetBedCheck = d->targetBedRegEx.match(msgString); if (bedCheck.hasMatch()) { - setBedTemperature(bedCheck.captured(QStringLiteral("bed")).toFloat()); + d->bedTemp = bedCheck.captured(QStringLiteral("bed")).toFloat(); + emit bedTemperatureChanged(); } if (targetBedCheck.hasMatch()) { - setBedTargetTemperature(targetBedCheck.captured(QStringLiteral("bedTarget")).toFloat()); + d->bedTargetTemp = targetBedCheck.captured(QStringLiteral("bedTarget")).toFloat(); + emit bedTargetTemperatureChanged(); } } } + +void Temperature::resetData() +{ + d->extruderTemp = 0.0; + d->extruderTargetTemp = 0.0; + d->bedTemp = 0.0; + d->bedTargetTemp = 0.0; +} diff --git a/testclient/mainwindow.cpp b/testclient/mainwindow.cpp --- a/testclient/mainwindow.cpp +++ b/testclient/mainwindow.cpp @@ -174,25 +174,29 @@ plotWidget = new PlotWidget; //make and connect our plots in the widget. plotWidget->addPlot(tr("Actual Bed")); - connect(core->temperature().get(), &Temperature::bedTemperatureChanged, this, [this](float temp) { + connect(core->temperature().get(), &Temperature::bedTemperatureChanged, this, [this] { + float temp = core->temperature().get()->bedTemperature(); checkTemperature(0x00, 0, temp); plotWidget->appendPoint(tr("Actual Bed"), temp); }); plotWidget->addPlot(tr("Target Bed")); - connect(core->temperature().get(), &Temperature::bedTargetTemperatureChanged, this, [this](float temp) { + connect(core->temperature().get(), &Temperature::bedTargetTemperatureChanged, this, [this] { + float temp = core->temperature().get()->bedTargetTemperature(); checkTemperature(0x01, 0, temp); plotWidget->appendPoint(tr("Target Bed"), temp); }); plotWidget->addPlot(tr("Actual Ext.1")); - connect(core->temperature().get(), &Temperature::extruderTemperatureChanged, this, [this](float temp) { + connect(core->temperature().get(), &Temperature::extruderTemperatureChanged, this, [this] { + float temp = core->temperature().get()->extruderTemperature(); checkTemperature(0x02, 0, temp); plotWidget->appendPoint(tr("Actual Ext.1"), temp); }); plotWidget->addPlot(tr("Target Ext.1")); - connect(core->temperature().get(), &Temperature::extruderTargetTemperatureChanged, this, [this](float temp) { + connect(core->temperature().get(), &Temperature::extruderTargetTemperatureChanged, this, [this] { + float temp = core->temperature().get()->extruderTargetTemperature(); checkTemperature(0x03, 0, temp); plotWidget->appendPoint(tr("Target Ext.1"), temp); }); diff --git a/unittests/temperaturetests.h b/unittests/temperaturetests.h --- a/unittests/temperaturetests.h +++ b/unittests/temperaturetests.h @@ -26,10 +26,6 @@ private slots: void initTestCase(); void cleanup(); - void setExtruderTemperature(); - void setExtruderTargetTemperature(); - void setBedTemperature(); - void setBedTargetTemperature(); void testDecodeAprinter(); void testDecodeMarlin(); void testDecodeMarlinCreality(); diff --git a/unittests/temperaturetests.cpp b/unittests/temperaturetests.cpp --- a/unittests/temperaturetests.cpp +++ b/unittests/temperaturetests.cpp @@ -29,46 +29,7 @@ void TemperatureTests::cleanup() { - temperature->setBedTemperature(0); - temperature->setBedTargetTemperature(0); - temperature->setExtruderTemperature(0); - temperature->setExtruderTargetTemperature(0); -} - -void TemperatureTests::setExtruderTemperature() -{ - temperature->setExtruderTemperature(20); - QVERIFY(temperature->extruderTemperature() == 20); - - temperature->setExtruderTemperature(20.25); - QVERIFY(temperature->extruderTemperature() == 20.25); -} - -void TemperatureTests::setExtruderTargetTemperature() -{ - temperature->setExtruderTargetTemperature(20); - QVERIFY(temperature->extruderTargetTemperature() == 20); - - temperature->setExtruderTargetTemperature(20.25); - QVERIFY(temperature->extruderTargetTemperature() == 20.25); -} - -void TemperatureTests::setBedTemperature() -{ - temperature->setBedTemperature(20); - QVERIFY(temperature->bedTemperature() == 20); - - temperature->setBedTemperature(20.25); - QVERIFY(temperature->bedTemperature() == 20.25); -} - -void TemperatureTests::setBedTargetTemperature() -{ - temperature->setBedTargetTemperature(20); - QVERIFY(temperature->bedTargetTemperature() == 20); - - temperature->setBedTargetTemperature(20.25); - QVERIFY(temperature->bedTargetTemperature() == 20.25); + temperature->resetData(); } void TemperatureTests::testDecodeAprinter()