aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2020-04-22 12:40:32 -0400
committerKevin O'Connor <kevin@koconnor.net>2020-05-05 11:08:11 -0400
commitddb8311890a130e3735d77fbb7fb24900a5152b2 (patch)
tree8b80d4f7f298fb0b536c6fb4dc5156e245c0cc25 /klippy/extras
parent1eb2d4da902867b3bf4fdee1b2d272c170f93468 (diff)
downloadkutter-ddb8311890a130e3735d77fbb7fb24900a5152b2.tar.gz
kutter-ddb8311890a130e3735d77fbb7fb24900a5152b2.tar.xz
kutter-ddb8311890a130e3735d77fbb7fb24900a5152b2.zip
gcode: Create new wrapper class for gcode command parameters
Instead of passing a dictionary to the command handlers, create a wrapper class and pass that class to the command handlers. This can simplify the command handler code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras')
-rw-r--r--klippy/extras/gcode_arcs.py3
-rw-r--r--klippy/extras/gcode_macro.py6
-rw-r--r--klippy/extras/homing_override.py2
-rw-r--r--klippy/extras/pause_resume.py2
-rw-r--r--klippy/extras/probe.py3
-rw-r--r--klippy/extras/safe_z_home.py6
6 files changed, 13 insertions, 9 deletions
diff --git a/klippy/extras/gcode_arcs.py b/klippy/extras/gcode_arcs.py
index 61b1a0fc..eec746d1 100644
--- a/klippy/extras/gcode_arcs.py
+++ b/klippy/extras/gcode_arcs.py
@@ -54,7 +54,8 @@ class ArcSupport:
g1_params['E'] = asE / len(coords)
if asF is not None:
g1_params['F'] = asF
- self.gcode.cmd_G1(g1_params)
+ g1_gcmd = self.gcode.create_gcode_command("G1", "G1", g1_params)
+ self.gcode.cmd_G1(g1_gcmd)
# function planArc() originates from marlin plan_arc()
# https://github.com/MarlinFirmware/Marlin
diff --git a/klippy/extras/gcode_macro.py b/klippy/extras/gcode_macro.py
index 2d4ebc75..b462e2cd 100644
--- a/klippy/extras/gcode_macro.py
+++ b/klippy/extras/gcode_macro.py
@@ -154,10 +154,10 @@ class GCodeMacro:
value,))
self.variables[variable] = literal
cmd_desc = "G-Code macro"
- def cmd(self, params):
+ def cmd(self, gcmd):
if self.in_script:
- raise self.gcode.error(
- "Macro %s called recursively" % (self.alias,))
+ raise gcmd.error("Macro %s called recursively" % (self.alias,))
+ params = gcmd.get_command_parameters()
kwparams = dict(self.kwparams)
kwparams.update(params)
kwparams.update(self.variables)
diff --git a/klippy/extras/homing_override.py b/klippy/extras/homing_override.py
index 8a40044c..b15b3b9f 100644
--- a/klippy/extras/homing_override.py
+++ b/klippy/extras/homing_override.py
@@ -54,7 +54,7 @@ class HomingOverride:
self.gcode.reset_last_position()
# Perform homing
kwparams = { 'printer': self.template.create_status_wrapper() }
- kwparams['params'] = params
+ kwparams['params'] = params.get_command_parameters()
try:
self.in_script = True
self.template.run_gcode_from_command(kwparams)
diff --git a/klippy/extras/pause_resume.py b/klippy/extras/pause_resume.py
index 4b3b88b5..b70895cd 100644
--- a/klippy/extras/pause_resume.py
+++ b/klippy/extras/pause_resume.py
@@ -57,7 +57,7 @@ class PauseResume:
self.pause_command_sent = False
if self.sd_paused:
# Printing from virtual sd, run pause command
- self.v_sd.cmd_M24({})
+ self.v_sd.cmd_M24(gcmd)
else:
self.gcode.respond_info("action:resumed")
def cmd_CLEAR_PAUSE(self, params):
diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py
index 703ef5b4..3d84aa9e 100644
--- a/klippy/extras/probe.py
+++ b/klippy/extras/probe.py
@@ -410,7 +410,8 @@ class ProbePointsHelper:
def _manual_probe_start(self):
done = self._move_next()
if not done:
- manual_probe.ManualProbeHelper(self.printer, {},
+ gcmd = self.gcode.create_gcode_command("", "", {})
+ manual_probe.ManualProbeHelper(self.printer, gcmd,
self._manual_probe_finalize)
def _manual_probe_finalize(self, kin_pos):
if kin_pos is None:
diff --git a/klippy/extras/safe_z_home.py b/klippy/extras/safe_z_home.py
index 4e0801c4..265cbf41 100644
--- a/klippy/extras/safe_z_home.py
+++ b/klippy/extras/safe_z_home.py
@@ -63,7 +63,8 @@ class SafeZHoming:
if need_y:
new_params['Y'] = '0'
if new_params:
- self.prev_G28(new_params)
+ g28_gcmd = self.gcode.create_gcode_command("G28", "G28", new_params)
+ self.prev_G28(g28_gcmd)
# Home Z axis if necessary
if need_z:
# Move to safe XY homing position
@@ -75,7 +76,8 @@ class SafeZHoming:
toolhead.move(pos, self.speed)
self.gcode.reset_last_position()
# Home Z
- self.prev_G28({'Z': '0'})
+ g28_gcmd = self.gcode.create_gcode_command("G28", "G28", {'Z': '0'})
+ self.prev_G28(g28_gcmd)
# Perform Z Hop again for pressure-based probes
pos = toolhead.get_position()
if self.z_hop: