diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py index ae461f4b..6fba29fc 100644 --- a/klippy/extras/bltouch.py +++ b/klippy/extras/bltouch.py @@ -191,9 +191,6 @@ class BLTouchProbe: self.verify_raise_probe() self.sync_print_time() self.multi = 'OFF' - def probing_move(self, pos, speed): - phoming = self.printer.lookup_object('homing') - return phoming.probing_move(self, pos, speed) def probe_prepare(self, hmove): if self.multi == 'OFF' or self.multi == 'FIRST': self.lower_probe() diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index c467e181..06e23220 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -227,10 +227,14 @@ class HomingViaProbeHelper: if pin_params['invert'] or pin_params['pullup']: raise pins.error("Can not pullup/invert probe virtual endstop") return self.mcu_probe + # Helper to convert probe based commands to use homing module + def probing_move(self, pos, speed): + phoming = self.printer.lookup_object('homing') + return phoming.probing_move(self.mcu_probe, pos, speed) # Helper to track multiple probe attempts in a single command class ProbeSessionHelper: - def __init__(self, config, mcu_probe): + def __init__(self, config, mcu_probe, probing_move_cb=None): self.printer = config.get_printer() self.mcu_probe = mcu_probe gcode = self.printer.lookup_object('gcode') @@ -245,6 +249,9 @@ class ProbeSessionHelper: 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.) @@ -315,7 +322,7 @@ class ProbeSessionHelper: pos = toolhead.get_position() pos[2] = self.z_position try: - epos = self.mcu_probe.probing_move(pos, speed) + epos = self.probing_move_cb(pos, speed) except self.printer.command_error as e: reason = str(e) if "Timeout during endstop homing" in reason: @@ -544,9 +551,6 @@ class ProbeEndstopWrapper: return self._raise_probe() self.multi = 'OFF' - def probing_move(self, pos, speed): - phoming = self.printer.lookup_object('homing') - return phoming.probing_move(self, pos, speed) def probe_prepare(self, hmove): if self.multi == 'OFF' or self.multi == 'FIRST': self._lower_probe() diff --git a/klippy/extras/probe_eddy_current.py b/klippy/extras/probe_eddy_current.py index 932d1bfa..2937e013 100644 --- a/klippy/extras/probe_eddy_current.py +++ b/klippy/extras/probe_eddy_current.py @@ -428,7 +428,8 @@ class PrinterEddyProbe: self.cmd_helper = probe.ProbeCommandHelper( config, self, self.mcu_probe.query_endstop) self.probe_offsets = probe.ProbeOffsetsHelper(config) - self.probe_session = probe.ProbeSessionHelper(config, self.mcu_probe) + self.probe_session = probe.ProbeSessionHelper( + config, self.mcu_probe, self.mcu_probe.probing_move) self.printer.add_object('probe', self) def add_client(self, cb): self.sensor_helper.add_client(cb) diff --git a/klippy/extras/smart_effector.py b/klippy/extras/smart_effector.py index 6e586789..81855078 100644 --- a/klippy/extras/smart_effector.py +++ b/klippy/extras/smart_effector.py @@ -92,9 +92,6 @@ class SmartEffectorProbe: return self.cmd_helper.get_status(eventtime) def start_probe_session(self, gcmd): return self.probe_session.start_probe_session(gcmd) - def probing_move(self, pos, speed): - phoming = self.printer.lookup_object('homing') - return phoming.probing_move(self, pos, speed) def probe_prepare(self, hmove): toolhead = self.printer.lookup_object('toolhead') self.probe_wrapper.probe_prepare(hmove)