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._job_name = ""
self._error_text = "" self._error_text = ""
self._accepts_commands = True self._accepts_commands = True
self._preheat_bed_timeout = 900 #Default time-out for pre-heating the bed, in seconds.
self._printer_state = "" self._printer_state = ""
self._printer_type = "unknown" self._printer_type = "unknown"
@ -199,6 +200,11 @@ class PrinterOutputDevice(QObject, OutputDevice):
self._target_bed_temperature = temperature self._target_bed_temperature = temperature
self.targetBedTemperatureChanged.emit() self.targetBedTemperatureChanged.emit()
##
@pyqtProperty(int)
def preheatBedTimeout(self):
return self._preheat_bed_timeout
## Time the print has been printing. ## Time the print has been printing.
# Note that timeTotal - timeElapsed should give time remaining. # Note that timeTotal - timeElapsed should give time remaining.
@pyqtProperty(float, notify = timeElapsedChanged) @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 # \param duration How long the bed should stay warm, in seconds. Defaults
# to a quarter hour. # to a quarter hour.
@pyqtSlot(int, int) @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") url = QUrl("http://" + self._address + self._api_prefix + "printer/bed/pre_heat")
data = """{"temperature": "%i", "timeout": "%i"}""" % (temperature, duration) data = """{"temperature": "%i", "timeout": "%i"}""" % (temperature, duration)
put_request = QNetworkRequest(url) put_request = QNetworkRequest(url)
@ -260,7 +260,7 @@ class NetworkPrinterOutputDevice(PrinterOutputDevice):
# If the bed is not pre-heated, nothing happens. # If the bed is not pre-heated, nothing happens.
@pyqtSlot() @pyqtSlot()
def cancelPreheatBed(self): 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 ## Changes the target bed temperature and makes sure that its signal is
# emitted. # emitted.

View file

@ -404,7 +404,7 @@ Column
connectedPrinter.preheatBed(preheatTemperatureInput.text, 900); connectedPrinter.preheatBed(preheatTemperatureInput.text, 900);
var now = new Date(); var now = new Date();
var end_time = 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.endTime = end_time;
preheatCountdownTimer.start(); preheatCountdownTimer.start();
preheatCountdownTimer.update(); //Update once before the first timer is triggered. preheatCountdownTimer.update(); //Update once before the first timer is triggered.