aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPedro Lamas <pedrolamas@gmail.com>2022-05-15 12:19:37 +0100
committerKevinOConnor <kevin@koconnor.net>2022-06-03 11:26:34 -0400
commitc16eab212ee706ab8c0b52e3846e61030fc68606 (patch)
tree3b61010059a37f2a0a55bdbe825da87af5b9a686
parentdbc24ce339df0a4c3dae98f9f4e1399e12493f5a (diff)
downloadkutter-c16eab212ee706ab8c0b52e3846e61030fc68606.tar.gz
kutter-c16eab212ee706ab8c0b52e3846e61030fc68606.tar.xz
kutter-c16eab212ee706ab8c0b52e3846e61030fc68606.zip
virtual_sdcard: Adds on_error_gcode
Signed-off-by: Pedro Lamas <pedrolamas@gmail.com>
-rw-r--r--docs/Config_Reference.md3
-rw-r--r--klippy/extras/virtual_sdcard.py8
2 files changed, 11 insertions, 0 deletions
diff --git a/docs/Config_Reference.md b/docs/Config_Reference.md
index aecf4b9d..c5347394 100644
--- a/docs/Config_Reference.md
+++ b/docs/Config_Reference.md
@@ -1334,6 +1334,9 @@ path:
# are not supported). One may point this to OctoPrint's upload
# directory (generally ~/.octoprint/uploads/ ). This parameter must
# be provided.
+#on_error_gcode:
+# A list of G-Code commands to execute when an error is reported.
+
```
### [sdcard_loop]
diff --git a/klippy/extras/virtual_sdcard.py b/klippy/extras/virtual_sdcard.py
index 397c6513..870c099f 100644
--- a/klippy/extras/virtual_sdcard.py
+++ b/klippy/extras/virtual_sdcard.py
@@ -23,6 +23,10 @@ class VirtualSD:
self.must_pause_work = self.cmd_from_sd = False
self.next_file_position = 0
self.work_timer = None
+ # Error handling
+ gcode_macro = printer.load_object(config, 'gcode_macro')
+ self.on_error_gcode = gcode_macro.load_template(
+ config, 'on_error_gcode', '')
# Register commands
self.gcode = printer.lookup_object('gcode')
for cmd in ['M20', 'M21', 'M23', 'M24', 'M25', 'M26', 'M27']:
@@ -258,6 +262,10 @@ class VirtualSD:
self.gcode.run_script(line)
except self.gcode.error as e:
error_message = str(e)
+ try:
+ self.gcode.run_script(self.on_error_gcode.render())
+ except:
+ logging.exception("virtual_sdcard on_error")
break
except:
logging.exception("virtual_sdcard dispatch")