diff --git a/plugins/USBPrinting/USBPrinterOutputDevice.py b/plugins/USBPrinting/USBPrinterOutputDevice.py index 421168b87f..d7775ea62e 100644 --- a/plugins/USBPrinting/USBPrinterOutputDevice.py +++ b/plugins/USBPrinting/USBPrinterOutputDevice.py @@ -182,7 +182,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): if len(hex_file) == 0: Logger.log("e", "Unable to read provided hex file. Could not update firmware") - return + self._updateFirmware_completed() + return programmer = stk500v2.Stk500v2() programmer.progressCallback = self.setProgress @@ -197,6 +198,7 @@ class USBPrinterOutputDevice(PrinterOutputDevice): if not programmer.isConnected(): Logger.log("e", "Unable to connect with serial. Could not update firmware") + self._updateFirmware_completed() return self._updating_firmware = True @@ -206,15 +208,21 @@ class USBPrinterOutputDevice(PrinterOutputDevice): self._updating_firmware = False except Exception as e: Logger.log("e", "Exception while trying to update firmware %s" %e) - self._updating_firmware = False + self._updateFirmware_completed() return programmer.close() + self._updateFirmware_completed() + return + + ## Private function which makes sure that firmware update process has completed/ended + def _updateFirmware_completed(self): self.setProgress(100, 100) self._firmware_update_finished = True - + self.resetFirmwareUpdate(update_has_finished=True) self.firmwareUpdateComplete.emit() - self.firmwareUpdateChange.emit() + + return ## Upload new firmware to machine # \param filename full path of firmware file to be uploaded @@ -227,8 +235,8 @@ class USBPrinterOutputDevice(PrinterOutputDevice): def firmwareUpdateFinished(self): return self._firmware_update_finished - def resetFirmwareUpdateFinished(self): - self._firmware_update_finished = False + def resetFirmwareUpdate(self, update_has_finished = False): + self._firmware_update_finished = update_has_finished self.firmwareUpdateChange.emit() @pyqtSlot() diff --git a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py index 1a53828d06..34d872c67a 100644 --- a/plugins/USBPrinting/USBPrinterOutputDeviceManager.py +++ b/plugins/USBPrinting/USBPrinterOutputDeviceManager.py @@ -103,7 +103,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): return for printer_connection in self._usb_output_devices: - self._usb_output_devices[printer_connection].resetFirmwareUpdateFinished() + self._usb_output_devices[printer_connection].resetFirmwareUpdate() self.spawnFirmwareInterface("") for printer_connection in self._usb_output_devices: try: @@ -111,7 +111,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): except FileNotFoundError: # Should only happen in dev environments where the resources/firmware folder is absent. self._usb_output_devices[printer_connection].setProgress(100, 100) - Logger.log("w", "No firmware found for printer %s", printer_connection) + Logger.log("w", "No firmware found for printer %s called '%s'" %(printer_connection, self._getDefaultFirmwareName())) Message(i18n_catalog.i18nc("@info", "Could not find firmware required for the printer at %s.") % printer_connection).show() self._firmware_view.close() @@ -126,7 +126,7 @@ class USBPrinterOutputDeviceManager(QObject, OutputDevicePlugin, Extension): self._usb_output_devices[serial_port].updateFirmware(Resources.getPath(CuraApplication.ResourceTypes.Firmware, self._getDefaultFirmwareName())) except FileNotFoundError: self._firmware_view.close() - Logger.log("e", "Could not find firmware required for this machine") + Logger.log("e", "Could not find firmware required for this machine called '%s'" %(self._getDefaultFirmwareName())) return False return True return False