Skip to content

Commit

Permalink
Improved sending printer's current serial port
Browse files Browse the repository at this point in the history
  • Loading branch information
donovan6000 committed Mar 16, 2016
1 parent fc473ef commit 17959ea
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 25 deletions.
49 changes: 25 additions & 24 deletions octoprint_m3dfio/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"))
Expand Down Expand Up @@ -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"))
Expand Down Expand Up @@ -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"))
Expand Down Expand Up @@ -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" :
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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 :
Expand Down Expand Up @@ -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) :

Expand Down Expand Up @@ -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" :

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = "[email protected]"
Expand Down

0 comments on commit 17959ea

Please sign in to comment.