diff --git a/src/dialogs/profilesdialog.cpp b/src/dialogs/profilesdialog.cpp
--- a/src/dialogs/profilesdialog.cpp
+++ b/src/dialogs/profilesdialog.cpp
@@ -69,6 +69,7 @@
connect(ui->extruderTempSB, &QSpinBox::editingFinished, modify);
connect(ui->postPauseLE, &QLineEdit::editingFinished, modify);
connect(ui->firmwareCB, &QComboBox::currentTextChanged, modify);
+ connect(ui->autoTempReportCK, &QCheckBox::stateChanged, modify);
}
ProfilesDialog::~ProfilesDialog()
@@ -138,6 +139,7 @@
m_settings.setValue(QStringLiteral("maximumTemperatureBed"), ui->bedTempSB->value());
//HOTEND
m_settings.setValue(QStringLiteral("maximumTemperatureExtruder"), ui->extruderTempSB->value());
+ m_settings.setValue(QStringLiteral("autoReportTemp"), ui->autoTempReportCK->isChecked());
//Baud
m_settings.setValue(QStringLiteral("bps"), ui->baudCB->currentText());
m_settings.setValue(QStringLiteral("firmware"), ui->firmwareCB->currentText());
@@ -178,6 +180,7 @@
ui->heatedBedCK->setChecked(m_settings.value(QStringLiteral("heatedBed"), QStringLiteral("true")).toBool());
ui->bedTempSB->setEnabled(ui->heatedBedCK->isChecked());
ui->bedTempSB->setValue(m_settings.value(QStringLiteral("maximumTemperatureBed"), QStringLiteral("0")).toInt());
+ ui->autoTempReportCK->setChecked(m_settings.value(QStringLiteral("autoReportTemp"), QStringLiteral("true")).toBool());
//HOTEND
ui->extruderTempSB->setValue(m_settings.value(QStringLiteral("maximumTemperatureExtruder"), QStringLiteral("0")).toInt());
diff --git a/src/dialogs/profilesdialog.ui b/src/dialogs/profilesdialog.ui
--- a/src/dialogs/profilesdialog.ui
+++ b/src/dialogs/profilesdialog.ui
@@ -6,8 +6,8 @@
0
0
- 0
- 0
+ 465
+ 844
@@ -232,33 +232,50 @@
Temperatures
- -
-
+
-
+
- Hea&ted bed?
+ Maxim&um Bed
- heatedBedCK
+ bedTempSB
- -
-
+
-
+
+
+ ºC
+
+
+ 999
+
+
+
+ -
+
+
+ <html><head/><body><p>Enable Auto Temperature Reporting M155 command. If supported the printer will automaticly return temperature data at a specific interval.</p></body></html>
+
-
+ Auto Temperature Report
-
- true
+
+
+ -
+
+
+
- -
-
+
-
+
- Maxim&um Bed
+ Ma&ximum Hotend
- bedTempSB
+ extruderTempSB
@@ -272,23 +289,23 @@
- -
-
+
-
+
- Ma&ximum Hotend
+ Hea&ted bed?
- extruderTempSB
+ heatedBedCK
- -
-
-
- ºC
+
-
+
+
+
-
- 999
+
+ true
diff --git a/src/widgets/atcoreinstancewidget.cpp b/src/widgets/atcoreinstancewidget.cpp
--- a/src/widgets/atcoreinstancewidget.cpp
+++ b/src/widgets/atcoreinstancewidget.cpp
@@ -253,6 +253,13 @@
m_core.setSerialTimerInterval(100);
// Handle device changes
connect(&m_core, &AtCore::portsChanged, this, &AtCoreInstanceWidget::updateSerialPort);
+
+ connect(&m_core, &AtCore::autoTemperatureReportChanged, this, [this](const bool autoReport) {
+ if (m_profileData["autoReportTemp"].toBool() != autoReport) {
+ m_profileData["autoReportTemp"] = autoReport;
+ saveProfile();
+ }
+ });
// Handle AtCore status change
connect(&m_core, &AtCore::stateChanged, this, &AtCoreInstanceWidget::handlePrinterStatusChanged);
// If the number of extruders from the printer change, we need to update the radiobuttons on the widget
@@ -390,6 +397,7 @@
} break;
case AtCore::IDLE: {
if (m_connectionTimer->isActive()) {
+ m_core.setAutoTemperatureReport(m_profileData["autoReportTemp"].toBool());
m_connectionTimer->stop();
}
stateString = i18n("Connected to %1", m_core.connectedPort());
@@ -588,6 +596,7 @@
, {"dimensionZ", m_settings.value(QStringLiteral("dimensionZ"), QStringLiteral("180"))}
, {"radius", m_settings.value(QStringLiteral("radius"), QStringLiteral("200"))}
, {"z_delta_dimension", m_settings.value(QStringLiteral("z_delta_dimension"), QStringLiteral("180"))}
+ , {"autoReportTemp", m_settings.value(QStringLiteral("autoReportTemp"), false)}
};
m_settings.endGroup();
m_settings.endGroup();
@@ -600,6 +609,7 @@
m_settings.beginGroup("Profiles");
m_settings.beginGroup(m_profileData["name"].toString());
m_settings.setValue(QStringLiteral("firmware"), m_profileData["firmware"]);
+ m_settings.setValue(QStringLiteral("autoReportTemp"), m_profileData["autoReportTemp"]);
m_settings.endGroup();
m_settings.endGroup();
}