diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py index 6fba29fc..3d817d72 100644 --- a/klippy/extras/bltouch.py +++ b/klippy/extras/bltouch.py @@ -64,7 +64,7 @@ class BLTouchProbe: self.cmd_helper = probe.ProbeCommandHelper( config, self, self.mcu_endstop.query_endstop) self.probe_offsets = probe.ProbeOffsetsHelper(config) - self.probe_session = probe.ProbeSessionHelper(config, self) + self.probe_session = probe.ProbeEndstopSessionHelper(config, self) # Register BLTOUCH_DEBUG command self.gcode = self.printer.lookup_object('gcode') self.gcode.register_command("BLTOUCH_DEBUG", self.cmd_BLTOUCH_DEBUG, diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index 06e23220..b1ed234c 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -237,6 +237,7 @@ class ProbeSessionHelper: def __init__(self, config, mcu_probe, probing_move_cb=None): self.printer = config.get_printer() self.mcu_probe = mcu_probe + self.probing_move_cb = probing_move_cb gcode = self.printer.lookup_object('gcode') self.dummy_gcode_cmd = gcode.create_gcode_command("", "", {}) # Infer Z position to move to during a probe @@ -248,10 +249,6 @@ class ProbeSessionHelper: pconfig = config.getsection('printer') self.z_position = pconfig.getfloat('minimum_z_position', 0., note_valid=False) - self.homing_helper = HomingViaProbeHelper(config, mcu_probe) - self.probing_move_cb = probing_move_cb - if probing_move_cb is None: - self.probing_move_cb = self.homing_helper.probing_move # Configurable probing speeds self.speed = config.getfloat('speed', 5.0, above=0.) self.lift_speed = config.getfloat('lift_speed', self.speed, above=0.) @@ -369,6 +366,16 @@ class ProbeSessionHelper: self.results = [] return res +# Helper for probes based purely on an endstop wrapper +class ProbeEndstopSessionHelper: + def __init__(self, config, mcu_probe): + self.homing_helper = HomingViaProbeHelper(config, mcu_probe) + self.probe_session = ProbeSessionHelper(config, mcu_probe, + self.homing_helper.probing_move) + # Main printer probe session starting API + self.start_probe_session = self.probe_session.start_probe_session + self.get_probe_params = self.probe_session.get_probe_params + # Helper to read the xyz probe offsets from the config class ProbeOffsetsHelper: def __init__(self, config): @@ -570,7 +577,7 @@ class PrinterProbe: self.cmd_helper = ProbeCommandHelper(config, self, self.mcu_probe.query_endstop) self.probe_offsets = ProbeOffsetsHelper(config) - self.probe_session = ProbeSessionHelper(config, self.mcu_probe) + self.probe_session = ProbeEndstopSessionHelper(config, self.mcu_probe) def get_probe_params(self, gcmd=None): return self.probe_session.get_probe_params(gcmd) def get_offsets(self): diff --git a/klippy/extras/probe_eddy_current.py b/klippy/extras/probe_eddy_current.py index 2937e013..06adafdf 100644 --- a/klippy/extras/probe_eddy_current.py +++ b/klippy/extras/probe_eddy_current.py @@ -428,6 +428,7 @@ class PrinterEddyProbe: self.cmd_helper = probe.ProbeCommandHelper( config, self, self.mcu_probe.query_endstop) self.probe_offsets = probe.ProbeOffsetsHelper(config) + self.homing_helper = probe.HomingViaProbeHelper(config, self.mcu_probe) self.probe_session = probe.ProbeSessionHelper( config, self.mcu_probe, self.mcu_probe.probing_move) self.printer.add_object('probe', self) diff --git a/klippy/extras/smart_effector.py b/klippy/extras/smart_effector.py index 81855078..963d9fa5 100644 --- a/klippy/extras/smart_effector.py +++ b/klippy/extras/smart_effector.py @@ -69,7 +69,7 @@ class SmartEffectorProbe: self.cmd_helper = probe.ProbeCommandHelper( config, self, self.probe_wrapper.query_endstop) self.probe_offsets = probe.ProbeOffsetsHelper(config) - self.probe_session = probe.ProbeSessionHelper(config, self) + self.probe_session = probe.ProbeEndstopSessionHelper(config, self) # SmartEffector control control_pin = config.get('control_pin', None) if control_pin: