aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-05-20 13:04:52 -0400
committerKevin O'Connor <kevin@koconnor.net>2018-05-20 13:08:22 -0400
commit33c2c8f1bdca48eda4d00b8c5a98a3ba9f9e6644 (patch)
tree6a4d5e32f81767b666d4ff5078d0de4deb202b99
parent2ab47cd20c87aa6798f13e0f5180cb90c9cba614 (diff)
downloadkutter-33c2c8f1bdca48eda4d00b8c5a98a3ba9f9e6644.tar.gz
kutter-33c2c8f1bdca48eda4d00b8c5a98a3ba9f9e6644.tar.xz
kutter-33c2c8f1bdca48eda4d00b8c5a98a3ba9f9e6644.zip
gcode: Raise an error if a duplicate command is registered
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/extras/homing_override.py1
-rw-r--r--klippy/extras/virtual_sdcard.py1
-rw-r--r--klippy/gcode.py2
3 files changed, 4 insertions, 0 deletions
diff --git a/klippy/extras/homing_override.py b/klippy/extras/homing_override.py
index 62a97aa4..f69298aa 100644
--- a/klippy/extras/homing_override.py
+++ b/klippy/extras/homing_override.py
@@ -12,6 +12,7 @@ class HomingOverride:
self.script = config.get('gcode')
self.in_script = False
self.gcode = self.printer.lookup_object('gcode')
+ self.gcode.register_command("G28", None)
self.gcode.register_command("G28", self.cmd_G28)
def cmd_G28(self, params):
if self.in_script:
diff --git a/klippy/extras/virtual_sdcard.py b/klippy/extras/virtual_sdcard.py
index 5a3a09a2..5d2780d7 100644
--- a/klippy/extras/virtual_sdcard.py
+++ b/klippy/extras/virtual_sdcard.py
@@ -19,6 +19,7 @@ class VirtualSD:
self.work_timer = None
# Register commands
self.gcode = printer.lookup_object('gcode')
+ self.gcode.register_command('M21', None)
for cmd in ['M20', 'M21', 'M23', 'M24', 'M25', 'M26', 'M27']:
self.gcode.register_command(cmd, getattr(self, 'cmd_' + cmd))
for cmd in ['M28', 'M29', 'M30']:
diff --git a/klippy/gcode.py b/klippy/gcode.py
index d381620d..6cee4570 100644
--- a/klippy/gcode.py
+++ b/klippy/gcode.py
@@ -62,6 +62,8 @@ class GCodeParser:
if cmd in self.base_gcode_handlers:
del self.base_gcode_handlers[cmd]
return
+ if cmd in self.ready_gcode_handlers:
+ raise error("gcode command %s already registered" % (cmd,))
if not (len(cmd) >= 2 and not cmd[0].isupper() and cmd[1].isdigit()):
origfunc = func
func = lambda params: origfunc(self.get_extended_params(params))