mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 23:46:22 -06:00
More cleanup
This commit is contained in:
parent
f0601675f2
commit
13d2d7e42a
1 changed files with 45 additions and 57 deletions
|
@ -30,16 +30,17 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
|
|
||||||
self._progress = 0
|
self._progress = 0
|
||||||
|
|
||||||
|
|
||||||
self._control_view = None
|
self._control_view = None
|
||||||
self._firmware_view = None
|
self._firmware_view = None
|
||||||
self._extruder_temp = 0
|
self._extruder_temp = 0
|
||||||
self._bed_temp = 0
|
self._bed_temp = 0
|
||||||
self._error_message = ""
|
self._error_message = ""
|
||||||
|
|
||||||
## Add menu item to top menu.
|
## Add menu item to top menu of the application.
|
||||||
self.addMenuItem(i18n_catalog.i18n("Update firmware"), self.updateAllFirmware)
|
self.addMenuItem(i18n_catalog.i18n("Update firmware"), self.updateAllFirmware)
|
||||||
|
|
||||||
|
## Show firmware interface.
|
||||||
|
# This will create the view if its not already created.
|
||||||
def spawnFirmwareInterface(self, serial_port):
|
def spawnFirmwareInterface(self, serial_port):
|
||||||
if self._firmware_view is None:
|
if self._firmware_view is None:
|
||||||
self._firmware_view = QQuickView()
|
self._firmware_view = QQuickView()
|
||||||
|
@ -47,7 +48,8 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
self._firmware_view.setSource(QUrl("plugins/USBPrinting/FirmwareUpdateWindow.qml"))
|
self._firmware_view.setSource(QUrl("plugins/USBPrinting/FirmwareUpdateWindow.qml"))
|
||||||
self._firmware_view.show()
|
self._firmware_view.show()
|
||||||
|
|
||||||
|
## Show control interface.
|
||||||
|
# This will create the view if its not already created.
|
||||||
def spawnControlInterface(self,serial_port):
|
def spawnControlInterface(self,serial_port):
|
||||||
if self._control_view is None:
|
if self._control_view is None:
|
||||||
self._control_view = QQuickView()
|
self._control_view = QQuickView()
|
||||||
|
@ -55,27 +57,30 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
self._control_view.setSource(QUrl("plugins/USBPrinting/ControlWindow.qml"))
|
self._control_view.setSource(QUrl("plugins/USBPrinting/ControlWindow.qml"))
|
||||||
self._control_view.show()
|
self._control_view.show()
|
||||||
|
|
||||||
|
|
||||||
processingProgress = pyqtSignal(float, arguments = ['amount'])
|
|
||||||
@pyqtProperty(float,notify = processingProgress)
|
@pyqtProperty(float,notify = processingProgress)
|
||||||
def progress(self):
|
def progress(self):
|
||||||
return self._progress
|
return self._progress
|
||||||
|
|
||||||
pyqtExtruderTemperature = pyqtSignal(float, arguments = ['amount'])
|
processingProgress = pyqtSignal(float, arguments = ['amount'])
|
||||||
|
|
||||||
@pyqtProperty(float,notify = pyqtExtruderTemperature)
|
@pyqtProperty(float,notify = pyqtExtruderTemperature)
|
||||||
def extruderTemperature(self):
|
def extruderTemperature(self):
|
||||||
return self._extruder_temp
|
return self._extruder_temp
|
||||||
|
|
||||||
pyqtBedTemperature = pyqtSignal(float, arguments = ['amount'])
|
pyqtExtruderTemperature = pyqtSignal(float, arguments = ['amount'])
|
||||||
|
|
||||||
@pyqtProperty(float,notify = pyqtBedTemperature)
|
@pyqtProperty(float,notify = pyqtBedTemperature)
|
||||||
def bedTemperature(self):
|
def bedTemperature(self):
|
||||||
return self._bed_temp
|
return self._bed_temp
|
||||||
|
|
||||||
pyqtError = pyqtSignal(str, arguments = ['amount'])
|
pyqtBedTemperature = pyqtSignal(float, arguments = ['amount'])
|
||||||
|
|
||||||
@pyqtProperty(str,notify = pyqtError)
|
@pyqtProperty(str,notify = pyqtError)
|
||||||
def error(self):
|
def error(self):
|
||||||
return self._error_message
|
return self._error_message
|
||||||
|
|
||||||
|
pyqtError = pyqtSignal(str, arguments = ['amount'])
|
||||||
|
|
||||||
## Check all serial ports and create a PrinterConnection object for them.
|
## Check all serial ports and create a PrinterConnection object for them.
|
||||||
# Note that this does not validate if the serial ports are actually usable!
|
# Note that this does not validate if the serial ports are actually usable!
|
||||||
# This (the validation) is only done when the connect function is called.
|
# This (the validation) is only done when the connect function is called.
|
||||||
|
@ -104,13 +109,6 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
connection.close()
|
connection.close()
|
||||||
time.sleep(5) # Throttle, as we don't need this information to be updated every single second.
|
time.sleep(5) # Throttle, as we don't need this information to be updated every single second.
|
||||||
|
|
||||||
def onExtruderTemperature(self, serial_port, index,temperature):
|
|
||||||
#print("ExtruderTemperature " , serial_port, " " , index, " " , temperature)
|
|
||||||
self._extruder_temp = temperature
|
|
||||||
self.pyqtExtruderTemperature.emit(temperature)
|
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
def updateAllFirmware(self):
|
def updateAllFirmware(self):
|
||||||
self.spawnFirmwareInterface("")
|
self.spawnFirmwareInterface("")
|
||||||
for printer_connection in self._printer_connections:
|
for printer_connection in self._printer_connections:
|
||||||
|
@ -142,35 +140,38 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
elif machine_type == "ultimaker2":
|
elif machine_type == "ultimaker2":
|
||||||
return "MarlinUltimaker2.hex"
|
return "MarlinUltimaker2.hex"
|
||||||
|
|
||||||
|
|
||||||
##TODO: Add check for multiple extruders
|
##TODO: Add check for multiple extruders
|
||||||
|
|
||||||
if firmware_name != "":
|
if firmware_name != "":
|
||||||
firmware_name += ".hex"
|
firmware_name += ".hex"
|
||||||
return firmware_name
|
return firmware_name
|
||||||
|
|
||||||
|
## Callback for extruder temperature change
|
||||||
|
def onExtruderTemperature(self, serial_port, index, temperature):
|
||||||
|
self._extruder_temp = temperature
|
||||||
|
self.pyqtExtruderTemperature.emit(temperature)
|
||||||
|
|
||||||
|
## Callback for bed temperature change
|
||||||
def onBedTemperature(self, serial_port,temperature):
|
def onBedTemperature(self, serial_port,temperature):
|
||||||
self._bed_temperature = temperature
|
self._bed_temperature = temperature
|
||||||
self.pyqtBedTemperature.emit(temperature)
|
self.pyqtBedTemperature.emit(temperature)
|
||||||
#print("bedTemperature " , serial_port, " " , temperature)
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
## Callback for error
|
||||||
def onError(self, error):
|
def onError(self, error):
|
||||||
self._error_message = error
|
self._error_message = error
|
||||||
self.pyqtError.emit(error)
|
self.pyqtError.emit(error)
|
||||||
pass
|
|
||||||
|
|
||||||
|
## Callback for progress change
|
||||||
def onProgress(self, progress, serial_port):
|
def onProgress(self, progress, serial_port):
|
||||||
self._progress = progress
|
self._progress = progress
|
||||||
self.processingProgress.emit(progress)
|
self.processingProgress.emit(progress)
|
||||||
pass
|
|
||||||
|
|
||||||
## Attempt to connect with all possible connections.
|
## Attempt to connect with all possible connections.
|
||||||
def connectAllConnections(self):
|
def connectAllConnections(self):
|
||||||
for connection in self._printer_connections:
|
for connection in self._printer_connections:
|
||||||
connection.connect()
|
connection.connect()
|
||||||
|
|
||||||
## send gcode to printer and start printing
|
## Send gcode to printer and start printing
|
||||||
def sendGCodeByPort(self, serial_port, gcode_list):
|
def sendGCodeByPort(self, serial_port, gcode_list):
|
||||||
printer_connection = self.getConnectionByPort(serial_port)
|
printer_connection = self.getConnectionByPort(serial_port)
|
||||||
if printer_connection is not None:
|
if printer_connection is not None:
|
||||||
|
@ -215,7 +216,8 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
## Callback if the connection state of a connection is changed.
|
||||||
|
# This adds or removes the connection as a possible output device.
|
||||||
def serialConectionStateCallback(self, serial_port):
|
def serialConectionStateCallback(self, serial_port):
|
||||||
connection = self.getConnectionByPort(serial_port)
|
connection = self.getConnectionByPort(serial_port)
|
||||||
if connection.isConnected():
|
if connection.isConnected():
|
||||||
|
@ -229,13 +231,6 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
else:
|
else:
|
||||||
Application.getInstance().removeOutputDevice(serial_port)
|
Application.getInstance().removeOutputDevice(serial_port)
|
||||||
|
|
||||||
'''def _writeToSerial(self, serial_port):
|
|
||||||
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)'''
|
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def startPrint(self):
|
def startPrint(self):
|
||||||
gcode_list = getattr(Application.getInstance().getController().getScene(), 'gcode_list', None)
|
gcode_list = getattr(Application.getInstance().getController().getScene(), 'gcode_list', None)
|
||||||
|
@ -245,12 +240,11 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
final_list += gcode.split('\n')
|
final_list += gcode.split('\n')
|
||||||
self.sendGCodeToAllActive(gcode_list)
|
self.sendGCodeToAllActive(gcode_list)
|
||||||
|
|
||||||
|
|
||||||
## Get a list of printer connection objects that are connected.
|
## Get a list of printer connection objects that are connected.
|
||||||
def getActiveConnections(self):
|
def getActiveConnections(self):
|
||||||
return [connection for connection in self._printer_connections if connection.isConnected()]
|
return [connection for connection in self._printer_connections if connection.isConnected()]
|
||||||
|
|
||||||
## get a printer connection object by serial port
|
## Get a printer connection object by serial port
|
||||||
def getConnectionByPort(self, serial_port):
|
def getConnectionByPort(self, serial_port):
|
||||||
for printer_connection in self._printer_connections:
|
for printer_connection in self._printer_connections:
|
||||||
if serial_port == printer_connection.getSerialPort():
|
if serial_port == printer_connection.getSerialPort():
|
||||||
|
@ -271,18 +265,12 @@ class USBPrinterManager(QObject, SignalEmitter, Extension):
|
||||||
if not base_list or 'USBSER' in values[0]:
|
if not base_list or 'USBSER' in values[0]:
|
||||||
base_list + =[values[1]]
|
base_list + =[values[1]]
|
||||||
i += 1
|
i += 1
|
||||||
except:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
if base_list:
|
if base_list:
|
||||||
base_list = base_list + glob.glob('/dev/ttyUSB*') + glob.glob('/dev/ttyACM*') + glob.glob("/dev/cu.usb*")
|
base_list = base_list + glob.glob('/dev/ttyUSB*') + glob.glob('/dev/ttyACM*') + glob.glob("/dev/cu.usb*")
|
||||||
base_list = filter(lambda s: not 'Bluetooth' in s, base_list) # Filter because mac sometimes puts them in the list
|
base_list = filter(lambda s: not 'Bluetooth' in s, base_list) # Filter because mac sometimes puts them in the list
|
||||||
#prev = profile.getMachineSetting('serial_port_auto')
|
|
||||||
#if prev in base_list:
|
|
||||||
# base_list.remove(prev)
|
|
||||||
# base_list.insert(0, prev)
|
|
||||||
else:
|
else:
|
||||||
base_list = base_list + glob.glob('/dev/ttyUSB*') + glob.glob('/dev/ttyACM*') + glob.glob("/dev/cu.*") + glob.glob("/dev/tty.usb*") + glob.glob("/dev/rfcomm*") + glob.glob('/dev/serial/by-id/*')
|
base_list = base_list + glob.glob('/dev/ttyUSB*') + glob.glob('/dev/ttyACM*') + glob.glob("/dev/cu.*") + glob.glob("/dev/tty.usb*") + glob.glob("/dev/rfcomm*") + glob.glob('/dev/serial/by-id/*')
|
||||||
#if version.isDevVersion() and not base_list:
|
|
||||||
#base_list.append('VIRTUAL')
|
|
||||||
return base_list
|
return base_list
|
Loading…
Add table
Add a link
Reference in a new issue