From 8d211365300206c052703ddb37d915ac5fc518a8 Mon Sep 17 00:00:00 2001 From: daid Date: Wed, 8 Apr 2015 13:57:53 +0200 Subject: [PATCH] Use the new CuraEngine GCode protocol instead of temp files. --- PrinterConnection.py | 10 +++------- USBPrinterManager.py | 16 ++++++++-------- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/PrinterConnection.py b/PrinterConnection.py index 95ed0d1998..0e574a55c0 100644 --- a/PrinterConnection.py +++ b/PrinterConnection.py @@ -93,7 +93,7 @@ class PrinterConnection(SignalEmitter): return self._gcode = gcode_list #Reset line number. If this is not done, first line is sometimes ignored - self._gcode.insert(0,"M110 N0") + self._gcode.insert(0, "M110") self._gcode_position = 0 self._print_start_time_100 = None self._is_printing = True @@ -150,8 +150,7 @@ class PrinterConnection(SignalEmitter): self.setIsConnected(True) return self.setIsConnected(False) - - + ## Set the baud rate of the serial. This can cause exceptions, but we simply want to ignore those. def setBaudRate(self, baud_rate): try: @@ -159,9 +158,7 @@ class PrinterConnection(SignalEmitter): return True except Exception as e: return False - - - + def setIsConnected(self, state): self._is_connecting = False if self._is_connected != state: @@ -358,4 +355,3 @@ class PrinterConnection(SignalEmitter): #ret.remove(prev) #ret.insert(0, prev) return ret - \ No newline at end of file diff --git a/USBPrinterManager.py b/USBPrinterManager.py index 83e67a55ca..6ec9062544 100644 --- a/USBPrinterManager.py +++ b/USBPrinterManager.py @@ -113,15 +113,15 @@ class USBPrinterManager(SignalEmitter,PluginObject): }) else: Application.getInstance().removeOutputDevice(serial_port) + def _writeToSerial(self, serial_port): - for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): - if type(node) is not SceneNode or not node.getMeshData(): - continue - - gcode = getattr(node.getMeshData(), 'gcode', False) - self.sendGCodeByPort(serial_port,gcode.split('\n')) - - + gcode_list = getattr(Application.getInstance().getController().getScene(), 'gcode_list', None) + if gcode_list: + final_list = [] + for gcode in gcode_list: + final_list += gcode.split('\n') + self.sendGCodeByPort(serial_port, gcode_list) + ## Get a list of printer connection objects that are connected. def getActiveConnections(self): return [connection for connection in self._printer_connections if connection.isConnected()]