aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/manual_stepper.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-10-29 11:34:52 -0400
committerKevin O'Connor <kevin@koconnor.net>2019-11-06 15:51:51 -0500
commite6f713f1ceeca2047c94826c766b1fb7ab180bbe (patch)
tree3c1ad5c31a52136bb6bcc1195b5dafb2f86c472d /klippy/extras/manual_stepper.py
parent9845d0d103ac70306086ce6b4588532084bd9ae9 (diff)
downloadkutter-e6f713f1ceeca2047c94826c766b1fb7ab180bbe.tar.gz
kutter-e6f713f1ceeca2047c94826c766b1fb7ab180bbe.tar.xz
kutter-e6f713f1ceeca2047c94826c766b1fb7ab180bbe.zip
manual_stepper: Convert step generation to use trapq system
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/manual_stepper.py')
-rw-r--r--klippy/extras/manual_stepper.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/klippy/extras/manual_stepper.py b/klippy/extras/manual_stepper.py
index 7cbbe806..a8448e72 100644
--- a/klippy/extras/manual_stepper.py
+++ b/klippy/extras/manual_stepper.py
@@ -25,7 +25,11 @@ class ManualStepper:
ffi_main, ffi_lib = chelper.get_ffi()
self.cmove = ffi_main.gc(ffi_lib.move_alloc(), ffi_lib.free)
self.move_fill = ffi_lib.move_fill
+ self.trapq = ffi_main.gc(ffi_lib.trapq_alloc(), ffi_lib.trapq_free)
+ self.trapq_add_move = ffi_lib.trapq_add_move
+ 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)
# Register commands
stepper_name = config.get_name().split()[1]
@@ -58,8 +62,10 @@ class ManualStepper:
accel_t, cruise_t, accel_t,
cp, 0., 0., dist, 0., 0.,
0., cruise_v, accel)
- self.stepper.step_itersolve(self.cmove)
+ self.trapq_add_move(self.trapq, self.cmove)
self.next_cmd_time += accel_t + cruise_t + accel_t
+ self.stepper.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:
@@ -107,13 +113,9 @@ class ManualStepper:
accel = self.gcode.get_float('ACCEL', params, self.accel, minval=0.)
if homing_move:
movepos = self.gcode.get_float('MOVE', params)
- if 'ENABLE' not in params and not self.stepper.is_motor_enabled():
- self.do_enable(True)
self.do_homing_move(movepos, speed, accel, homing_move > 0)
elif 'MOVE' in params:
movepos = self.gcode.get_float('MOVE', params)
- if 'ENABLE' not in params and not self.stepper.is_motor_enabled():
- self.do_enable(True)
self.do_move(movepos, speed, accel)
def handle_motor_off(self, print_time):
self.do_enable(0)