diff --git a/octoprint_m3dfio/__init__.py b/octoprint_m3dfio/__init__.py index 21649ed..c6e8780 100755 --- a/octoprint_m3dfio/__init__.py +++ b/octoprint_m3dfio/__init__.py @@ -1394,6 +1394,9 @@ def on_api_command(self, command, data) : else : self._printer.get_transport().write_timeout = None + # Send printer details + self.sendPrinterDetails() + # Send response if error : return flask.jsonify(dict(value = "Error")) @@ -1475,6 +1478,9 @@ def on_api_command(self, command, data) : else : self._printer.get_transport().write_timeout = None + # Send printer details + self.sendPrinterDetails() + # Send response if error : return flask.jsonify(dict(value = "Error")) @@ -1676,6 +1682,9 @@ def on_api_command(self, command, data) : else : self._printer.get_transport().write_timeout = None + # Send printer details + self.sendPrinterDetails() + # Send response if self.eeprom is None : return flask.jsonify(dict(value = "Error")) @@ -2290,17 +2299,6 @@ def on_api_command(self, command, data) : self.savedCurrentPort = None self.savedCurrentBaudrate = None self.savedCurrentProfile = None - - # Wait until connection is established - while not isinstance(self._printer.get_transport(), serial.Serial) : - time.sleep(0.01) - - # Remove serial timeout - self._printer.get_transport().timeout = None - if float(serial.VERSION) < 3 : - self._printer.get_transport().writeTimeout = None - else : - self._printer.get_transport().write_timeout = None # Otherwise check if parameter is to pause elif data["value"] == "Pause" : @@ -2511,12 +2509,6 @@ def getEeprom(self, connection, send = False) : # Send firmware details self._plugin_manager.send_plugin_message(self._identifier, dict(value = "Current Firmware", name = firmwareName, release = firmwareRelease)) - # Get serial number from EEPROM - serialNumber = self.eeprom[self.eepromOffsets["serialNumber"]["offset"] : self.eepromOffsets["serialNumber"]["offset"] + self.eepromOffsets["serialNumber"]["bytes"] - 1] - - # Send printer details - self._plugin_manager.send_plugin_message(self._identifier, dict(value = "Printer Details", serialNumber = serialNumber, serialPort = connection.port)) - # Return true return True @@ -3755,11 +3747,8 @@ def on_event(self, event, payload) : # Send firmware details self._plugin_manager.send_plugin_message(self._identifier, dict(value = "Current Firmware", name = firmwareName, release = firmwareRelease)) - # Get serial number from EEPROM - serialNumber = self.eeprom[self.eepromOffsets["serialNumber"]["offset"] : self.eepromOffsets["serialNumber"]["offset"] + self.eepromOffsets["serialNumber"]["bytes"] - 1] - # Send printer details - self._plugin_manager.send_plugin_message(self._identifier, dict(value = "Printer Details", serialNumber = serialNumber, serialPort = self._printer.get_transport().port)) + self.sendPrinterDetails() # Send message if a heatbed is detected if not self.heatbedConnected : @@ -4163,6 +4152,15 @@ def sendOctoPrintProcessDetails(self) : # Send OctoPrint instances self._plugin_manager.send_plugin_message(self._identifier, dict(value = "Process Details", processes = processes)) + # Send printer details + def sendPrinterDetails(self) : + + # Get serial number from EEPROM + serialNumber = self.eeprom[self.eepromOffsets["serialNumber"]["offset"] : self.eepromOffsets["serialNumber"]["offset"] + self.eepromOffsets["serialNumber"]["bytes"] - 1] + + # Send printer details + self._plugin_manager.send_plugin_message(self._identifier, dict(value = "Printer Details", serialNumber = serialNumber, serialPort = self._printer.get_transport().port)) + # Receive data to log def on_printer_add_log(self, data) : @@ -4779,13 +4777,16 @@ def on_printer_add_log(self, data) : self._printer.get_transport().writeTimeout = None else : self._printer.get_transport().write_timeout = None - + # Check if communication layer has been established if self._printer._comm is not None : - + + # Send printer details + self.sendPrinterDetails() + # Set printer state to operational self._printer._comm._changeState(self._printer._comm.STATE_OPERATIONAL) - + # Check if using M3D firmware if self.getFirmwareDetails()[0] == "M3D" : diff --git a/setup.py b/setup.py index bdf9354..63ca0d3 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ plugin_identifier = "m3dfio" plugin_package = "octoprint_%s" % plugin_identifier plugin_name = "OctoPrint-M3DFio" -plugin_version = "0.30" +plugin_version = "0.30" plugin_description = "Makes OctoPrint fully compatible with the Micro 3D printer" plugin_author = "donovan6000" plugin_author_email = "donovan6000@exploitkings.com"