aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/manual_stepper.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-11-12 12:49:21 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-11-12 17:32:18 -0500
commit0e30b862c7e94a9e259f213dd25ec1671ca560c9 (patch)
treeecb7c1e7326b6c88447aab4984dda9d005a64e80 /klippy/extras/manual_stepper.py
parentbfb34e07017248268474281dc6678a8d141458ad (diff)
downloadkutter-0e30b862c7e94a9e259f213dd25ec1671ca560c9.tar.gz
kutter-0e30b862c7e94a9e259f213dd25ec1671ca560c9.tar.xz
kutter-0e30b862c7e94a9e259f213dd25ec1671ca560c9.zip
stepper_enable: Move enable tracking from stepper.py to stepper_enable.py
Move the enable line tracking out of the main stepper.py code. This simplifies the main kinematic code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/manual_stepper.py')
-rw-r--r--klippy/extras/manual_stepper.py28
1 files changed, 18 insertions, 10 deletions
diff --git a/klippy/extras/manual_stepper.py b/klippy/extras/manual_stepper.py
index da65a5a4..cf597405 100644
--- a/klippy/extras/manual_stepper.py
+++ b/klippy/extras/manual_stepper.py
@@ -13,11 +13,13 @@ class ManualStepper:
self.printer = config.get_printer()
if config.get('endstop_pin', None) is not None:
self.can_home = True
- self.stepper = stepper.PrinterRail(
+ self.rail = stepper.PrinterRail(
config, need_position_minmax=False, default_position_endstop=0.)
+ self.steppers = self.rail.get_steppers()
else:
self.can_home = False
- self.stepper = stepper.PrinterStepper(config)
+ self.rail = stepper.PrinterStepper(config)
+ self.steppers = [self.rail]
self.velocity = config.getfloat('velocity', 5., above=0.)
self.accel = config.getfloat('accel', 0., minval=0.)
self.next_cmd_time = 0.
@@ -26,9 +28,9 @@ class ManualStepper:
self.trapq = ffi_main.gc(ffi_lib.trapq_alloc(), ffi_lib.trapq_free)
self.trapq_append = ffi_lib.trapq_append
self.trapq_free_moves = ffi_lib.trapq_free_moves
- self.stepper.setup_itersolve('cartesian_stepper_alloc', 'x')
- self.stepper.set_trapq(self.trapq)
- self.stepper.set_max_jerk(9999999.9, 9999999.9)
+ self.rail.setup_itersolve('cartesian_stepper_alloc', 'x')
+ self.rail.set_trapq(self.trapq)
+ self.rail.set_max_jerk(9999999.9, 9999999.9)
# Register commands
stepper_name = config.get_name().split()[1]
self.gcode = self.printer.lookup_object('gcode')
@@ -44,13 +46,19 @@ class ManualStepper:
self.next_cmd_time = print_time
def do_enable(self, enable):
self.sync_print_time()
- self.stepper.motor_enable(self.next_cmd_time, enable)
+ stepper_enable = self.printer.lookup_object('stepper_enable')
+ if enable:
+ for s in self.steppers:
+ stepper_enable.motor_enable(s.get_name(), self.next_cmd_time)
+ else:
+ for s in self.steppers:
+ stepper_enable.motor_disable(s.get_name(), self.next_cmd_time)
self.sync_print_time()
def do_set_position(self, setpos):
- self.stepper.set_position([setpos, 0., 0.])
+ self.rail.set_position([setpos, 0., 0.])
def do_move(self, movepos, speed, accel):
self.sync_print_time()
- cp = self.stepper.get_commanded_position()
+ cp = self.rail.get_commanded_position()
dist = movepos - cp
axis_r, accel_t, cruise_t, cruise_v = force_move.calc_move_time(
dist, speed, accel)
@@ -59,14 +67,14 @@ class ManualStepper:
cp, 0., 0., axis_r, 0., 0.,
0., cruise_v, accel)
self.next_cmd_time += accel_t + cruise_t + accel_t
- self.stepper.generate_steps(self.next_cmd_time)
+ self.rail.generate_steps(self.next_cmd_time)
self.trapq_free_moves(self.trapq, self.next_cmd_time)
self.sync_print_time()
def do_homing_move(self, movepos, speed, accel, triggered):
if not self.can_home:
raise self.gcode.error("No endstop for this manual stepper")
# Notify endstops of upcoming home
- endstops = self.stepper.get_endstops()
+ endstops = self.rail.get_endstops()
for mcu_endstop, name in endstops:
mcu_endstop.home_prepare()
# Start endstop checking