Browse Source

Add custom command methods to output device and controller

ChrisTerBeke 7 years ago
parent
commit
80b589344f

+ 6 - 3
cura/PrinterOutput/PrinterOutputController.py

@@ -39,8 +39,11 @@ class PrinterOutputController:
     def moveHead(self, printer: "PrinterOutputModel", x, y, z, speed):
         Logger.log("w", "Move head not implemented in controller")
 
-    def homeBed(self, printer):
+    def homeBed(self, printer: "PrinterOutputModel"):
         Logger.log("w", "Home bed not implemented in controller")
 
-    def homeHead(self, printer):
-        Logger.log("w", "Home head not implemented in controller")
+    def homeHead(self, printer: "PrinterOutputModel"):
+        Logger.log("w", "Home head not implemented in controller")
+
+    def sendCustomCommand(self, printer: "PrinterOutputModel", command: str):
+        Logger.log("w", "Custom command not implemented in controller")

+ 4 - 0
cura/PrinterOutput/PrinterOutputModel.py

@@ -90,6 +90,10 @@ class PrinterOutputModel(QObject):
     def homeBed(self):
         self._controller.homeBed(self)
 
+    @pyqtSlot(str)
+    def sendCustomCommand(self, command):
+        self._controller.sendCustomCommand(self, command)
+
     @pyqtProperty("QVariantList", constant = True)
     def extruders(self):
         return self._extruders

+ 4 - 1
plugins/USBPrinting/USBPrinterOutputController.py

@@ -31,6 +31,9 @@ class USBPrinterOutputController(PrinterOutputController):
     def homeBed(self, printer):
         self._output_device.sendCommand("G28 Z")
 
+    def sendCustomCommand(self, printer, command):
+        self._output_device.sendCommand(str(command))
+
     def setJobState(self, job: "PrintJobOutputModel", state: str):
         if state == "pause":
             self._output_device.pausePrint()
@@ -65,4 +68,4 @@ class USBPrinterOutputController(PrinterOutputController):
 
     def _onPreheatBedTimerFinished(self):
         self.setTargetBedTemperature(self._preheat_printer, 0)
-        self._preheat_printer.updateIsPreheating(False)
+        self._preheat_printer.updateIsPreheating(False)