aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2025-01-10 11:31:14 -0500
committerKevin O'Connor <kevin@koconnor.net>2025-01-21 18:58:23 -0500
commitc72d73ec450119b5fbe13d98409037a21ae97101 (patch)
tree6f25201d46778109e972a36448a01c42a727c0fa
parent5fe333934d678a8dc3f8cdbddcf3ab828da5503e (diff)
downloadkutter-c72d73ec450119b5fbe13d98409037a21ae97101.tar.gz
kutter-c72d73ec450119b5fbe13d98409037a21ae97101.tar.xz
kutter-c72d73ec450119b5fbe13d98409037a21ae97101.zip
stepper_enable: Directly call clear_homing_state() on motor off event
Call clear_homing_state() on each motor off event. This simplifies the kinematic classes as they no longer need to register and handle the motor_off event. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/extras/stepper_enable.py1
-rw-r--r--klippy/kinematics/cartesian.py4
-rw-r--r--klippy/kinematics/corexy.py4
-rw-r--r--klippy/kinematics/corexz.py4
-rw-r--r--klippy/kinematics/delta.py4
-rw-r--r--klippy/kinematics/deltesian.py4
-rw-r--r--klippy/kinematics/hybrid_corexy.py4
-rw-r--r--klippy/kinematics/hybrid_corexz.py4
-rw-r--r--klippy/kinematics/polar.py4
-rw-r--r--klippy/kinematics/rotary_delta.py4
10 files changed, 1 insertions, 36 deletions
diff --git a/klippy/extras/stepper_enable.py b/klippy/extras/stepper_enable.py
index 621ff700..4e8f3bbb 100644
--- a/klippy/extras/stepper_enable.py
+++ b/klippy/extras/stepper_enable.py
@@ -94,6 +94,7 @@ class PrinterStepperEnable:
print_time = toolhead.get_last_move_time()
for el in self.enable_lines.values():
el.motor_disable(print_time)
+ toolhead.get_kinematics().clear_homing_state((0, 1, 2))
self.printer.send_event("stepper_enable:motor_off", print_time)
toolhead.dwell(DISABLE_STALL_TIME)
def motor_debug_enable(self, stepper, enable):
diff --git a/klippy/kinematics/cartesian.py b/klippy/kinematics/cartesian.py
index 2715d172..1db40f4f 100644
--- a/klippy/kinematics/cartesian.py
+++ b/klippy/kinematics/cartesian.py
@@ -40,8 +40,6 @@ class CartKinematics:
for s in self.get_steppers():
s.set_trapq(toolhead.get_trapq())
toolhead.register_step_generator(s.generate_steps)
- self.printer.register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Setup boundary checks
max_velocity, max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat('max_z_velocity', max_velocity,
@@ -97,8 +95,6 @@ class CartKinematics:
self.dc_module.home(homing_state)
else:
self.home_axis(homing_state, axis, self.rails[axis])
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def _check_endstops(self, move):
end_pos = move.end_pos
for i in (0, 1, 2):
diff --git a/klippy/kinematics/corexy.py b/klippy/kinematics/corexy.py
index dc80d1ee..15169e50 100644
--- a/klippy/kinematics/corexy.py
+++ b/klippy/kinematics/corexy.py
@@ -21,8 +21,6 @@ class CoreXYKinematics:
for s in self.get_steppers():
s.set_trapq(toolhead.get_trapq())
toolhead.register_step_generator(s.generate_steps)
- config.get_printer().register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Setup boundary checks
max_velocity, max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat(
@@ -63,8 +61,6 @@ class CoreXYKinematics:
forcepos[axis] += 1.5 * (position_max - hi.position_endstop)
# Perform homing
homing_state.home_rails([rail], forcepos, homepos)
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def _check_endstops(self, move):
end_pos = move.end_pos
for i in (0, 1, 2):
diff --git a/klippy/kinematics/corexz.py b/klippy/kinematics/corexz.py
index b1c46146..5298698d 100644
--- a/klippy/kinematics/corexz.py
+++ b/klippy/kinematics/corexz.py
@@ -21,8 +21,6 @@ class CoreXZKinematics:
for s in self.get_steppers():
s.set_trapq(toolhead.get_trapq())
toolhead.register_step_generator(s.generate_steps)
- config.get_printer().register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Setup boundary checks
max_velocity, max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat(
@@ -63,8 +61,6 @@ class CoreXZKinematics:
forcepos[axis] += 1.5 * (position_max - hi.position_endstop)
# Perform homing
homing_state.home_rails([rail], forcepos, homepos)
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def _check_endstops(self, move):
end_pos = move.end_pos
for i in (0, 1, 2):
diff --git a/klippy/kinematics/delta.py b/klippy/kinematics/delta.py
index 04a75547..f10586b7 100644
--- a/klippy/kinematics/delta.py
+++ b/klippy/kinematics/delta.py
@@ -23,8 +23,6 @@ class DeltaKinematics:
stepper_configs[2], need_position_minmax = False,
default_position_endstop=a_endstop)
self.rails = [rail_a, rail_b, rail_c]
- config.get_printer().register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Setup max velocity
self.max_velocity, self.max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat(
@@ -116,8 +114,6 @@ class DeltaKinematics:
forcepos = list(self.home_position)
forcepos[2] = -1.5 * math.sqrt(max(self.arm2)-self.max_xy2)
homing_state.home_rails(self.rails, forcepos, self.home_position)
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def check_move(self, move):
end_pos = move.end_pos
end_xy2 = end_pos[0]**2 + end_pos[1]**2
diff --git a/klippy/kinematics/deltesian.py b/klippy/kinematics/deltesian.py
index e48949af..d0865475 100644
--- a/klippy/kinematics/deltesian.py
+++ b/klippy/kinematics/deltesian.py
@@ -41,8 +41,6 @@ class DeltesianKinematics:
for s in self.get_steppers():
s.set_trapq(toolhead.get_trapq())
toolhead.register_step_generator(s.generate_steps)
- config.get_printer().register_event_handler(
- "stepper_enable:motor_off", self._motor_off)
self.limits = [(1.0, -1.0)] * 3
# X axis limits
min_angle = config.getfloat('min_angle', MIN_ANGLE,
@@ -146,8 +144,6 @@ class DeltesianKinematics:
else:
forcepos[1] += 1.5 * (position_max - hi.position_endstop)
homing_state.home_rails([self.rails[2]], forcepos, homepos)
- def _motor_off(self, print_time):
- self.homed_axis = [False] * 3
def check_move(self, move):
limits = list(map(list, self.limits))
spos, epos = move.start_pos, move.end_pos
diff --git a/klippy/kinematics/hybrid_corexy.py b/klippy/kinematics/hybrid_corexy.py
index 85f20bcc..72b0b85b 100644
--- a/klippy/kinematics/hybrid_corexy.py
+++ b/klippy/kinematics/hybrid_corexy.py
@@ -42,8 +42,6 @@ class HybridCoreXYKinematics:
for s in self.get_steppers():
s.set_trapq(toolhead.get_trapq())
toolhead.register_step_generator(s.generate_steps)
- self.printer.register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Setup boundary checks
max_velocity, max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat(
@@ -97,8 +95,6 @@ class HybridCoreXYKinematics:
self.dc_module.home(homing_state)
else:
self.home_axis(homing_state, axis, self.rails[axis])
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def _check_endstops(self, move):
end_pos = move.end_pos
for i in (0, 1, 2):
diff --git a/klippy/kinematics/hybrid_corexz.py b/klippy/kinematics/hybrid_corexz.py
index 8e5c3d92..041df8d7 100644
--- a/klippy/kinematics/hybrid_corexz.py
+++ b/klippy/kinematics/hybrid_corexz.py
@@ -42,8 +42,6 @@ class HybridCoreXZKinematics:
for s in self.get_steppers():
s.set_trapq(toolhead.get_trapq())
toolhead.register_step_generator(s.generate_steps)
- self.printer.register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Setup boundary checks
max_velocity, max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat(
@@ -97,8 +95,6 @@ class HybridCoreXZKinematics:
self.dc_module.home(homing_state)
else:
self.home_axis(homing_state, axis, self.rails[axis])
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def _check_endstops(self, move):
end_pos = move.end_pos
for i in (0, 1, 2):
diff --git a/klippy/kinematics/polar.py b/klippy/kinematics/polar.py
index fdd428a6..8369d386 100644
--- a/klippy/kinematics/polar.py
+++ b/klippy/kinematics/polar.py
@@ -22,8 +22,6 @@ class PolarKinematics:
for s in self.get_steppers():
s.set_trapq(toolhead.get_trapq())
toolhead.register_step_generator(s.generate_steps)
- config.get_printer().register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Setup boundary checks
max_velocity, max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat(
@@ -88,8 +86,6 @@ class PolarKinematics:
self._home_axis(homing_state, 0, self.rails[0])
if home_z:
self._home_axis(homing_state, 2, self.rails[1])
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def check_move(self, move):
end_pos = move.end_pos
xy2 = end_pos[0]**2 + end_pos[1]**2
diff --git a/klippy/kinematics/rotary_delta.py b/klippy/kinematics/rotary_delta.py
index 46a63b82..89f963d2 100644
--- a/klippy/kinematics/rotary_delta.py
+++ b/klippy/kinematics/rotary_delta.py
@@ -21,8 +21,6 @@ class RotaryDeltaKinematics:
stepper_configs[2], need_position_minmax=False,
default_position_endstop=a_endstop, units_in_radians=True)
self.rails = [rail_a, rail_b, rail_c]
- config.get_printer().register_event_handler("stepper_enable:motor_off",
- self._motor_off)
# Read config
max_velocity, max_accel = toolhead.get_max_velocity()
self.max_z_velocity = config.getfloat('max_z_velocity', max_velocity,
@@ -101,8 +99,6 @@ class RotaryDeltaKinematics:
#forcepos[2] = self.calibration.actuator_to_cartesian(min_angles)[2]
forcepos[2] = -1.
homing_state.home_rails(self.rails, forcepos, self.home_position)
- def _motor_off(self, print_time):
- self.clear_homing_state((0, 1, 2))
def check_move(self, move):
end_pos = move.end_pos
end_xy2 = end_pos[0]**2 + end_pos[1]**2