mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 15:07:28 -06:00
Allow floating point in bed temperature
This is consistent with the hotend temperature. Only we round it just before outputting it to g-code because the g-code doesn't support it. This fixes a typing error that my IDE gave me.
This commit is contained in:
parent
ad5a6a4153
commit
c5eb3b0e25
3 changed files with 25 additions and 25 deletions
|
@ -81,8 +81,8 @@ class GenericOutputController(PrinterOutputController):
|
||||||
self._output_device.cancelPrint()
|
self._output_device.cancelPrint()
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def setTargetBedTemperature(self, printer: "PrinterOutputModel", temperature: int) -> None:
|
def setTargetBedTemperature(self, printer: "PrinterOutputModel", temperature: float) -> None:
|
||||||
self._output_device.sendCommand("M140 S%s" % temperature)
|
self._output_device.sendCommand("M140 S%s" % round(temperature)) # The API doesn't allow floating point.
|
||||||
|
|
||||||
def _onTargetBedTemperatureChanged(self) -> None:
|
def _onTargetBedTemperatureChanged(self) -> None:
|
||||||
if self._preheat_bed_timer.isActive() and self._preheat_printer and self._preheat_printer.targetBedTemperature == 0:
|
if self._preheat_bed_timer.isActive() and self._preheat_printer and self._preheat_printer.targetBedTemperature == 0:
|
||||||
|
|
|
@ -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.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from UM.Logger import Logger
|
from UM.Logger import Logger
|
||||||
|
@ -25,10 +25,10 @@ class PrinterOutputController:
|
||||||
self.can_update_firmware = False
|
self.can_update_firmware = False
|
||||||
self._output_device = output_device
|
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")
|
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")
|
Logger.log("w", "Set target bed temperature not implemented in controller")
|
||||||
|
|
||||||
def setJobState(self, job: "PrintJobOutputModel", state: str) -> None:
|
def setJobState(self, job: "PrintJobOutputModel", state: str) -> None:
|
||||||
|
|
|
@ -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.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant, pyqtSlot, QUrl
|
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:
|
def __init__(self, output_controller: "PrinterOutputController", number_of_extruders: int = 1, parent=None, firmware_version = "") -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self._bed_temperature = -1 # Use -1 for no heated bed.
|
self._bed_temperature = -1 # type: float # Use -1 for no heated bed.
|
||||||
self._target_bed_temperature = 0
|
self._target_bed_temperature = 0 # type: float
|
||||||
self._name = ""
|
self._name = ""
|
||||||
self._key = "" # Unique identifier
|
self._key = "" # Unique identifier
|
||||||
self._controller = output_controller
|
self._controller = output_controller
|
||||||
|
@ -188,19 +188,19 @@ class PrinterOutputModel(QObject):
|
||||||
self.nameChanged.emit()
|
self.nameChanged.emit()
|
||||||
|
|
||||||
## Update the bed temperature. This only changes it locally.
|
## 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:
|
if self._bed_temperature != temperature:
|
||||||
self._bed_temperature = temperature
|
self._bed_temperature = temperature
|
||||||
self.bedTemperatureChanged.emit()
|
self.bedTemperatureChanged.emit()
|
||||||
|
|
||||||
def updateTargetBedTemperature(self, temperature: int) -> None:
|
def updateTargetBedTemperature(self, temperature: float) -> None:
|
||||||
if self._target_bed_temperature != temperature:
|
if self._target_bed_temperature != temperature:
|
||||||
self._target_bed_temperature = temperature
|
self._target_bed_temperature = temperature
|
||||||
self.targetBedTemperatureChanged.emit()
|
self.targetBedTemperatureChanged.emit()
|
||||||
|
|
||||||
## Set the target bed temperature. This ensures that it's actually sent to the remote.
|
## Set the target bed temperature. This ensures that it's actually sent to the remote.
|
||||||
@pyqtSlot(int)
|
@pyqtSlot(float)
|
||||||
def setTargetBedTemperature(self, temperature: int) -> None:
|
def setTargetBedTemperature(self, temperature: float) -> None:
|
||||||
self._controller.setTargetBedTemperature(self, temperature)
|
self._controller.setTargetBedTemperature(self, temperature)
|
||||||
self.updateTargetBedTemperature(temperature)
|
self.updateTargetBedTemperature(temperature)
|
||||||
|
|
||||||
|
@ -229,12 +229,12 @@ class PrinterOutputModel(QObject):
|
||||||
def state(self) -> str:
|
def state(self) -> str:
|
||||||
return self._printer_state
|
return self._printer_state
|
||||||
|
|
||||||
@pyqtProperty(int, notify=bedTemperatureChanged)
|
@pyqtProperty(float, notify = bedTemperatureChanged)
|
||||||
def bedTemperature(self) -> int:
|
def bedTemperature(self) -> float:
|
||||||
return self._bed_temperature
|
return self._bed_temperature
|
||||||
|
|
||||||
@pyqtProperty(int, notify=targetBedTemperatureChanged)
|
@pyqtProperty(float, notify = targetBedTemperatureChanged)
|
||||||
def targetBedTemperature(self) -> int:
|
def targetBedTemperature(self) -> float:
|
||||||
return self._target_bed_temperature
|
return self._target_bed_temperature
|
||||||
|
|
||||||
# Does the printer support pre-heating the bed at all
|
# Does the printer support pre-heating the bed at all
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue