1# Copyright (c) 2019 Ultimaker B.V. 2# Cura is released under the terms of the LGPLv3 or higher. 3 4from UM.Logger import Logger 5from UM.Signal import Signal 6 7MYPY = False 8if MYPY: 9 from .Models.PrintJobOutputModel import PrintJobOutputModel 10 from .Models.ExtruderOutputModel import ExtruderOutputModel 11 from .Models.PrinterOutputModel import PrinterOutputModel 12 from .PrinterOutputDevice import PrinterOutputDevice 13 14 15class PrinterOutputController: 16 def __init__(self, output_device: "PrinterOutputDevice") -> None: 17 self.can_pause = True 18 self.can_abort = True 19 self.can_pre_heat_bed = True 20 self.can_pre_heat_hotends = True 21 self.can_send_raw_gcode = True 22 self.can_control_manually = True 23 self.can_update_firmware = False 24 self._output_device = output_device 25 26 def setTargetHotendTemperature(self, printer: "PrinterOutputModel", position: int, temperature: float) -> None: 27 Logger.log("w", "Set target hotend temperature not implemented in controller") 28 29 def setTargetBedTemperature(self, printer: "PrinterOutputModel", temperature: float) -> None: 30 Logger.log("w", "Set target bed temperature not implemented in controller") 31 32 def setJobState(self, job: "PrintJobOutputModel", state: str) -> None: 33 Logger.log("w", "Set job state not implemented in controller") 34 35 def cancelPreheatBed(self, printer: "PrinterOutputModel") -> None: 36 Logger.log("w", "Cancel preheat bed not implemented in controller") 37 38 def preheatBed(self, printer: "PrinterOutputModel", temperature, duration) -> None: 39 Logger.log("w", "Preheat bed not implemented in controller") 40 41 def cancelPreheatHotend(self, extruder: "ExtruderOutputModel") -> None: 42 Logger.log("w", "Cancel preheat hotend not implemented in controller") 43 44 def preheatHotend(self, extruder: "ExtruderOutputModel", temperature, duration) -> None: 45 Logger.log("w", "Preheat hotend not implemented in controller") 46 47 def setHeadPosition(self, printer: "PrinterOutputModel", x, y, z, speed) -> None: 48 Logger.log("w", "Set head position not implemented in controller") 49 50 def moveHead(self, printer: "PrinterOutputModel", x, y, z, speed) -> None: 51 Logger.log("w", "Move head not implemented in controller") 52 53 def homeBed(self, printer: "PrinterOutputModel") -> None: 54 Logger.log("w", "Home bed not implemented in controller") 55 56 def homeHead(self, printer: "PrinterOutputModel") -> None: 57 Logger.log("w", "Home head not implemented in controller") 58 59 def sendRawCommand(self, printer: "PrinterOutputModel", command: str) -> None: 60 Logger.log("w", "Custom command not implemented in controller") 61 62 canUpdateFirmwareChanged = Signal() 63 def setCanUpdateFirmware(self, can_update_firmware: bool) -> None: 64 if can_update_firmware != self.can_update_firmware: 65 self.can_update_firmware = can_update_firmware 66 self.canUpdateFirmwareChanged.emit()