aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2018-01-17 11:26:09 -0500
committerKevin O'Connor <kevin@koconnor.net>2018-01-28 12:19:26 -0500
commit51e1085dbc1227f0ab996f97e78de440bc9ff9dd (patch)
treeaf5c8456fb4cf0d02d577e4fcc3073f9eb1e8d2c
parent47bb8b7cc2c6e7ce08d07d7ffd9781adbef43490 (diff)
downloadkutter-51e1085dbc1227f0ab996f97e78de440bc9ff9dd.tar.gz
kutter-51e1085dbc1227f0ab996f97e78de440bc9ff9dd.tar.xz
kutter-51e1085dbc1227f0ab996f97e78de440bc9ff9dd.zip
gcode: Extend register_command() so that it can also unregister a command
If register_command() is passed None as the function to call, then treat it as an unregister command request. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/gcode.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/klippy/gcode.py b/klippy/gcode.py
index 358ff903..36c1250b 100644
--- a/klippy/gcode.py
+++ b/klippy/gcode.py
@@ -52,6 +52,12 @@ class GCodeParser:
self.speed = 25.0
self.axis2pos = {'X': 0, 'Y': 1, 'Z': 2, 'E': 3}
def register_command(self, cmd, func, when_not_ready=False, desc=None):
+ if func is None:
+ if cmd in self.ready_gcode_handlers:
+ del self.ready_gcode_handlers[cmd]
+ if cmd in self.base_gcode_handlers:
+ del self.base_gcode_handlers[cmd]
+ return
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))