From f561bfce3daaac9877dcdc146c56136a0929a352 Mon Sep 17 00:00:00 2001 From: "Shell M. Shrader" Date: Mon, 31 Jan 2022 04:07:55 -0500 Subject: [PATCH] v2.2.1rc1 --- octoprint_bettergrblsupport/__init__.py | 33 +++++++++++-------- .../templates/bettergrblsupport_wizard.jinja2 | 5 ++- setup.py | 4 +-- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/octoprint_bettergrblsupport/__init__.py b/octoprint_bettergrblsupport/__init__.py index 5d9a1bf..f5da7d8 100644 --- a/octoprint_bettergrblsupport/__init__.py +++ b/octoprint_bettergrblsupport/__init__.py @@ -130,9 +130,10 @@ def __init__(self): self.invertZ = 1 self.settingsVersion = 5 - self.wizardVersion = 7 + self.wizardVersion = 8 self.connectionState = None + self.pausedPower = 0 # load up our item/value pairs for errors, warnings, and settings _bgs.load_grbl_descriptions(self) @@ -515,7 +516,9 @@ def on_event(self, event, payload): # 'PrintStarted' if event == Events.PRINT_STARTED: - if not self.grblState in ("Idle", "Check"): + if "HOLD" in self.grblState.upper(): + self._printer.commands(["~", "M999", "$G"], force=True) + elif not self.grblState.upper() in ("IDLE", "CHECK"): # we have to stop This self._printer.cancel_print() return @@ -540,20 +543,23 @@ def on_event(self, event, payload): # Print Cancelling if event == Events.PRINT_CANCELLING: - self._logger.debug("canceling job") - self._printer.commands(["!", "M999", "?", "?", "?"], force=True) + self._logger.debug("cancelling job") + + if "HOLD" in self.grblState.upper(): + self._printer.commands(["~", "M999", "$G"], force=True) + else: + self._printer.commands(["M400", "M999", "$G"], force=True) # Print Paused if event == Events.PRINT_PAUSED: self._logger.debug("pausing job") - self._printer.commands(["!", "?", "?", "?"], force=True) + self.pausedPower = self.grblPowerLevel + self._printer.commands(["S0", "!", "?"], force=True) # Print Resumed if event == Events.PRINT_RESUMED: self._logger.debug("resuming job") - self._printer.commands(["~", "?", "?", "?"], force=True) - - _bgs.queue_cmds_and_send(self, ["?"]) + self._printer.commands(["~", "S{}".format(self.pausedPower), "$G"], force=True) self.grblState = "Run" self._plugin_manager.send_plugin_message(self._identifier, dict(type="grbl_state", state="Run")) @@ -676,7 +682,7 @@ def hook_gcode_sending(self, comm_instance, phase, cmd, cmd_type, gcode, *args, # cancel jog -- doesn't appear to work if cmd.upper().strip() == "SYN1": self._logger.debug("Cancelling Jog") - return ("\x85",) + return ("? " + chr(133) + " ?",) # rewrite M115 firmware as $$ (hello) if self.suppressM115 and cmd.upper().startswith('M115'): @@ -895,8 +901,8 @@ def hook_gcode_received(self, comm_instance, line, *args, **kwargs): speed=self.grblSpeed, power=self.grblPowerLevel)) - # odd edge case where a machine could be asleep while connecting - if not self._printer.is_operational() and "SLEEP" in self.grblState.upper(): + # odd edge case where a machine could be asleep or holding while connecting + if not self._printer.is_operational() and ("SLEEP" in self.grblState.upper() or "HOLD" in self.grblState.upper()): self._printer.commands("M999", force=True) # pop any queued commands if state is IDLE or HOLD:0 or Check @@ -1064,8 +1070,9 @@ def hook_gcode_received(self, comm_instance, line, *args, **kwargs): line = line.replace("[","").replace("]","").replace("MSG:","") line = line.replace("\n", "").replace("\r", "") - _bgs.add_to_notify_queue(self, [line]) - self._printer.commands("?", force=True) + if len(line.strip()) > 0: + _bgs.add_to_notify_queue(self, [line]) + self._printer.commands("?", force=True) return diff --git a/octoprint_bettergrblsupport/templates/bettergrblsupport_wizard.jinja2 b/octoprint_bettergrblsupport/templates/bettergrblsupport_wizard.jinja2 index 04bd797..478bca8 100644 --- a/octoprint_bettergrblsupport/templates/bettergrblsupport_wizard.jinja2 +++ b/octoprint_bettergrblsupport/templates/bettergrblsupport_wizard.jinja2 @@ -12,8 +12,11 @@ If this is your first time using Better Grbl Support or it has been a while since you've used it, be sure to visit the Better Grbl Support Wiki to learn about its features and how they work.
-

Release Notes - 2.2.0

+

Release Notes - 2.2.1 & 2.2.0