Store default pre-heat time in central location

Its default is 900s or 15 minutes. QML now requests the time-out time and sends it on to the printer.

Contributes to issue CURA-3161.
This commit is contained in:
Ghostkeeper 2017-02-07 16:29:41 +01:00
parent d705fb1d76
commit 1a902b21bb
No known key found for this signature in database
GPG key ID: C5F96EE2BC0F7E75
3 changed files with 9 additions and 3 deletions

View file

@ -45,6 +45,7 @@ class PrinterOutputDevice(QObject, OutputDevice):
self._job_name = ""
self._error_text = ""
self._accepts_commands = True
self._preheat_bed_timeout = 900 #Default time-out for pre-heating the bed, in seconds.
self._printer_state = ""
self._printer_type = "unknown"
@ -199,6 +200,11 @@ class PrinterOutputDevice(QObject, OutputDevice):
self._target_bed_temperature = temperature
self.targetBedTemperatureChanged.emit()
##
@pyqtProperty(int)
def preheatBedTimeout(self):
return self._preheat_bed_timeout
## Time the print has been printing.
# Note that timeTotal - timeElapsed should give time remaining.
@pyqtProperty(float, notify = timeElapsedChanged)

View file

@ -248,7 +248,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
# \param duration How long the bed should stay warm, in seconds. Defaults
# to a quarter hour.
@pyqtSlot(int, int)
def preheatBed(self, temperature, duration=900):
def preheatBed(self, temperature, duration):
url = QUrl("http://" + self._address + self._api_prefix + "printer/bed/pre_heat")
data = """{"temperature": "%i", "timeout": "%i"}""" % (temperature, duration)
put_request = QNetworkRequest(url)
@ -260,7 +260,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
# If the bed is not pre-heated, nothing happens.
@pyqtSlot()
def cancelPreheatBed(self):
self.preheatBed(temperature=0)
self.preheatBed(temperature = 0, duration = 0)
## Changes the target bed temperature and makes sure that its signal is
# emitted.

View file

@ -404,7 +404,7 @@ Column
connectedPrinter.preheatBed(preheatTemperatureInput.text, 900);
var now = new Date();
var end_time = new Date();
end_time.setTime(now.getTime() + 900 * 1000); //*1000 because time is in milliseconds here.
end_time.setTime(now.getTime() + connectedPrinter.preheatBedTimeout * 1000); //*1000 because time is in milliseconds here.
preheatCountdownTimer.endTime = end_time;
preheatCountdownTimer.start();
preheatCountdownTimer.update(); //Update once before the first timer is triggered.