From feb15eaf2e5e3b64f5e847d8f66f046959304335 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Wed, 12 Feb 2020 13:03:42 -0500 Subject: homing: Merge home_prepare()/home_finalize() into move_begin/move_end events Collapse the "homing:move_begin", "homing:move_end", home_prepare(), and home_finalize() into two new events: "homing:homing_move_begin" and "homing:homing_move_end". This simplifies the homing code. Signed-off-by: Kevin O'Connor --- klippy/extras/probe.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'klippy/extras/probe.py') diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index e494eda1..3920c080 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -43,6 +43,11 @@ class PrinterProbe: minval=0) # Register z_virtual_endstop pin self.printer.lookup_object('pins').register_chip('probe', self) + # Register homing event handlers + self.printer.register_event_handler("homing:homing_move_begin", + self._handle_homing_move_begin) + self.printer.register_event_handler("homing:homing_move_end", + self._handle_homing_move_end) # Register PROBE/QUERY_PROBE commands self.gcode = self.printer.lookup_object('gcode') self.gcode.register_command('PROBE', self.cmd_PROBE, @@ -53,6 +58,12 @@ class PrinterProbe: desc=self.cmd_PROBE_CALIBRATE_help) self.gcode.register_command('PROBE_ACCURACY', self.cmd_PROBE_ACCURACY, desc=self.cmd_PROBE_ACCURACY_help) + def _handle_homing_move_begin(self, endstops): + if self.mcu_probe in endstops: + self.mcu_probe.probe_prepare() + def _handle_homing_move_end(self, endstops): + if self.mcu_probe in endstops: + self.mcu_probe.probe_finalize() def setup_pin(self, pin_type, pin_params): if pin_type != 'endstop' or pin_params['pin'] != 'z_virtual_endstop': raise pins.error("Probe virtual endstop only useful as endstop pin") @@ -255,22 +266,20 @@ class ProbeEndstopWrapper: for stepper in kin.get_steppers(): if stepper.is_active_axis('z'): self.add_stepper(stepper) - def home_prepare(self): + def probe_prepare(self): toolhead = self.printer.lookup_object('toolhead') start_pos = toolhead.get_position() self.activate_gcode.run_gcode_from_command() if toolhead.get_position()[:3] != start_pos[:3]: raise homing.CommandError( "Toolhead moved during probe activate_gcode script") - self.mcu_endstop.home_prepare() - def home_finalize(self): + def probe_finalize(self): toolhead = self.printer.lookup_object('toolhead') start_pos = toolhead.get_position() self.deactivate_gcode.run_gcode_from_command() if toolhead.get_position()[:3] != start_pos[:3]: raise homing.CommandError( "Toolhead moved during probe deactivate_gcode script") - self.mcu_endstop.home_finalize() def get_position_endstop(self): return self.position_endstop -- cgit v1.2.3-70-g09d2