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:
|
||||||
|
@ -96,14 +96,14 @@ class GenericOutputController(PrinterOutputController):
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return # Got invalid values, can't pre-heat.
|
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.setInterval(duration * 1000)
|
||||||
self._preheat_bed_timer.start()
|
self._preheat_bed_timer.start()
|
||||||
self._preheat_printer = printer
|
self._preheat_printer = printer
|
||||||
printer.updateIsPreheating(True)
|
printer.updateIsPreheating(True)
|
||||||
|
|
||||||
def cancelPreheatBed(self, printer: "PrinterOutputModel") -> None:
|
def cancelPreheatBed(self, printer: "PrinterOutputModel") -> None:
|
||||||
self.setTargetBedTemperature(printer, temperature=0)
|
self.setTargetBedTemperature(printer, temperature = 0)
|
||||||
self._preheat_bed_timer.stop()
|
self._preheat_bed_timer.stop()
|
||||||
printer.updateIsPreheating(False)
|
printer.updateIsPreheating(False)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
@ -225,55 +225,55 @@ class PrinterOutputModel(QObject):
|
||||||
def activePrintJob(self) -> Optional["PrintJobOutputModel"]:
|
def activePrintJob(self) -> Optional["PrintJobOutputModel"]:
|
||||||
return self._active_print_job
|
return self._active_print_job
|
||||||
|
|
||||||
@pyqtProperty(str, notify=stateChanged)
|
@pyqtProperty(str, notify = stateChanged)
|
||||||
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
|
||||||
@pyqtProperty(bool, constant=True)
|
@pyqtProperty(bool, constant = True)
|
||||||
def canPreHeatBed(self) -> bool:
|
def canPreHeatBed(self) -> bool:
|
||||||
if self._controller:
|
if self._controller:
|
||||||
return self._controller.can_pre_heat_bed
|
return self._controller.can_pre_heat_bed
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Does the printer support pre-heating the bed at all
|
# Does the printer support pre-heating the bed at all
|
||||||
@pyqtProperty(bool, constant=True)
|
@pyqtProperty(bool, constant = True)
|
||||||
def canPreHeatHotends(self) -> bool:
|
def canPreHeatHotends(self) -> bool:
|
||||||
if self._controller:
|
if self._controller:
|
||||||
return self._controller.can_pre_heat_hotends
|
return self._controller.can_pre_heat_hotends
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Does the printer support sending raw G-code at all
|
# Does the printer support sending raw G-code at all
|
||||||
@pyqtProperty(bool, constant=True)
|
@pyqtProperty(bool, constant = True)
|
||||||
def canSendRawGcode(self) -> bool:
|
def canSendRawGcode(self) -> bool:
|
||||||
if self._controller:
|
if self._controller:
|
||||||
return self._controller.can_send_raw_gcode
|
return self._controller.can_send_raw_gcode
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Does the printer support pause at all
|
# Does the printer support pause at all
|
||||||
@pyqtProperty(bool, constant=True)
|
@pyqtProperty(bool, constant = True)
|
||||||
def canPause(self) -> bool:
|
def canPause(self) -> bool:
|
||||||
if self._controller:
|
if self._controller:
|
||||||
return self._controller.can_pause
|
return self._controller.can_pause
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Does the printer support abort at all
|
# Does the printer support abort at all
|
||||||
@pyqtProperty(bool, constant=True)
|
@pyqtProperty(bool, constant = True)
|
||||||
def canAbort(self) -> bool:
|
def canAbort(self) -> bool:
|
||||||
if self._controller:
|
if self._controller:
|
||||||
return self._controller.can_abort
|
return self._controller.can_abort
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# Does the printer support manual control at all
|
# Does the printer support manual control at all
|
||||||
@pyqtProperty(bool, constant=True)
|
@pyqtProperty(bool, constant = True)
|
||||||
def canControlManually(self) -> bool:
|
def canControlManually(self) -> bool:
|
||||||
if self._controller:
|
if self._controller:
|
||||||
return self._controller.can_control_manually
|
return self._controller.can_control_manually
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue