diff --git a/cura/PrinterOutput/GenericOutputController.py b/cura/PrinterOutput/GenericOutputController.py index c538ae79f8..1cb416787c 100644 --- a/cura/PrinterOutput/GenericOutputController.py +++ b/cura/PrinterOutput/GenericOutputController.py @@ -81,8 +81,8 @@ class GenericOutputController(PrinterOutputController): self._output_device.cancelPrint() pass - def setTargetBedTemperature(self, printer: "PrinterOutputModel", temperature: int) -> None: - self._output_device.sendCommand("M140 S%s" % temperature) + def setTargetBedTemperature(self, printer: "PrinterOutputModel", temperature: float) -> None: + self._output_device.sendCommand("M140 S%s" % round(temperature)) # The API doesn't allow floating point. def _onTargetBedTemperatureChanged(self) -> None: if self._preheat_bed_timer.isActive() and self._preheat_printer and self._preheat_printer.targetBedTemperature == 0: @@ -96,14 +96,14 @@ class GenericOutputController(PrinterOutputController): except ValueError: return # Got invalid values, can't pre-heat. - self.setTargetBedTemperature(printer, temperature=temperature) + self.setTargetBedTemperature(printer, temperature = temperature) self._preheat_bed_timer.setInterval(duration * 1000) self._preheat_bed_timer.start() self._preheat_printer = printer printer.updateIsPreheating(True) def cancelPreheatBed(self, printer: "PrinterOutputModel") -> None: - self.setTargetBedTemperature(printer, temperature=0) + self.setTargetBedTemperature(printer, temperature = 0) self._preheat_bed_timer.stop() printer.updateIsPreheating(False) diff --git a/cura/PrinterOutput/PrinterOutputController.py b/cura/PrinterOutput/PrinterOutputController.py index cc7b78ac11..aa06ada8a3 100644 --- a/cura/PrinterOutput/PrinterOutputController.py +++ b/cura/PrinterOutput/PrinterOutputController.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from UM.Logger import Logger @@ -25,10 +25,10 @@ class PrinterOutputController: self.can_update_firmware = False self._output_device = output_device - def setTargetHotendTemperature(self, printer: "PrinterOutputModel", position: int, temperature: Union[int, float]) -> None: + def setTargetHotendTemperature(self, printer: "PrinterOutputModel", position: int, temperature: float) -> None: Logger.log("w", "Set target hotend temperature not implemented in controller") - def setTargetBedTemperature(self, printer: "PrinterOutputModel", temperature: int) -> None: + def setTargetBedTemperature(self, printer: "PrinterOutputModel", temperature: float) -> None: Logger.log("w", "Set target bed temperature not implemented in controller") def setJobState(self, job: "PrintJobOutputModel", state: str) -> None: diff --git a/cura/PrinterOutput/PrinterOutputModel.py b/cura/PrinterOutput/PrinterOutputModel.py index 4189b9fcbd..006f76a385 100644 --- a/cura/PrinterOutput/PrinterOutputModel.py +++ b/cura/PrinterOutput/PrinterOutputModel.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2019 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant, pyqtSlot, QUrl @@ -30,8 +30,8 @@ class PrinterOutputModel(QObject): def __init__(self, output_controller: "PrinterOutputController", number_of_extruders: int = 1, parent=None, firmware_version = "") -> None: super().__init__(parent) - self._bed_temperature = -1 # Use -1 for no heated bed. - self._target_bed_temperature = 0 + self._bed_temperature = -1 # type: float # Use -1 for no heated bed. + self._target_bed_temperature = 0 # type: float self._name = "" self._key = "" # Unique identifier self._controller = output_controller @@ -188,19 +188,19 @@ class PrinterOutputModel(QObject): self.nameChanged.emit() ## Update the bed temperature. This only changes it locally. - def updateBedTemperature(self, temperature: int) -> None: + def updateBedTemperature(self, temperature: float) -> None: if self._bed_temperature != temperature: self._bed_temperature = temperature self.bedTemperatureChanged.emit() - def updateTargetBedTemperature(self, temperature: int) -> None: + def updateTargetBedTemperature(self, temperature: float) -> None: if self._target_bed_temperature != temperature: self._target_bed_temperature = temperature self.targetBedTemperatureChanged.emit() ## Set the target bed temperature. This ensures that it's actually sent to the remote. - @pyqtSlot(int) - def setTargetBedTemperature(self, temperature: int) -> None: + @pyqtSlot(float) + def setTargetBedTemperature(self, temperature: float) -> None: self._controller.setTargetBedTemperature(self, temperature) self.updateTargetBedTemperature(temperature) @@ -225,55 +225,55 @@ class PrinterOutputModel(QObject): def activePrintJob(self) -> Optional["PrintJobOutputModel"]: return self._active_print_job - @pyqtProperty(str, notify=stateChanged) + @pyqtProperty(str, notify = stateChanged) def state(self) -> str: return self._printer_state - @pyqtProperty(int, notify=bedTemperatureChanged) - def bedTemperature(self) -> int: + @pyqtProperty(float, notify = bedTemperatureChanged) + def bedTemperature(self) -> float: return self._bed_temperature - @pyqtProperty(int, notify=targetBedTemperatureChanged) - def targetBedTemperature(self) -> int: + @pyqtProperty(float, notify = targetBedTemperatureChanged) + def targetBedTemperature(self) -> float: return self._target_bed_temperature # Does the printer support pre-heating the bed at all - @pyqtProperty(bool, constant=True) + @pyqtProperty(bool, constant = True) def canPreHeatBed(self) -> bool: if self._controller: return self._controller.can_pre_heat_bed return False # Does the printer support pre-heating the bed at all - @pyqtProperty(bool, constant=True) + @pyqtProperty(bool, constant = True) def canPreHeatHotends(self) -> bool: if self._controller: return self._controller.can_pre_heat_hotends return False # Does the printer support sending raw G-code at all - @pyqtProperty(bool, constant=True) + @pyqtProperty(bool, constant = True) def canSendRawGcode(self) -> bool: if self._controller: return self._controller.can_send_raw_gcode return False # Does the printer support pause at all - @pyqtProperty(bool, constant=True) + @pyqtProperty(bool, constant = True) def canPause(self) -> bool: if self._controller: return self._controller.can_pause return False # Does the printer support abort at all - @pyqtProperty(bool, constant=True) + @pyqtProperty(bool, constant = True) def canAbort(self) -> bool: if self._controller: return self._controller.can_abort return False # Does the printer support manual control at all - @pyqtProperty(bool, constant=True) + @pyqtProperty(bool, constant = True) def canControlManually(self) -> bool: if self._controller: return self._controller.can_control_manually