diff --git a/PrinterConnection.py b/PrinterConnection.py index a9be3d9309..0ec7435817 100644 --- a/PrinterConnection.py +++ b/PrinterConnection.py @@ -95,7 +95,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 @@ -152,8 +152,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: @@ -161,9 +160,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: @@ -377,4 +374,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 3dde9aca0b..e3102d2e33 100644 --- a/USBPrinterManager.py +++ b/USBPrinterManager.py @@ -142,35 +142,25 @@ class USBPrinterManager(QObject, SignalEmitter,PluginObject): def serialConectionStateCallback(self,serial_port): connection = self.getConnectionByPort(serial_port) - if connection is not None: - if connection.isConnected(): - Application.getInstance().addOutputDevice(serial_port, { - 'id': serial_port, - 'function': self._writeToSerial, - 'description': 'Write to USB {0}'.format(serial_port), - 'icon': 'print_usb', - 'priority': 1 - }) - else: - Application.getInstance().removeOutputDevice(serial_port) - - + if connection.isConnected(): + Application.getInstance().addOutputDevice(serial_port, { + 'id': serial_port, + 'function': self._writeToSerial, + 'description': 'Write to USB {0}'.format(serial_port), + 'icon': 'print_usb', + 'priority': 1 + }) + else: + Application.getInstance().removeOutputDevice(serial_port) + def _writeToSerial(self, serial_port): - ## Create USB control window - #self.view = QQuickView() - #self.view.setSource(QUrl("plugins/USBPrinting/ControlWindow.qml")) - #self.view.show() - - #self.view.engine().rootContext().setContextProperty('manager',self) - - 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()]