Skip to content

Commit

Permalink
force_move: Make sure to flush step generation queue after each move
Browse files Browse the repository at this point in the history
Add toolhead.note_kinematic_activity() call and use it to force the
step generation to be flushed.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
  • Loading branch information
KevinOConnor authored and FHeilmann committed Jan 28, 2020
1 parent 37d7405 commit 17ad26a
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 4 deletions.
5 changes: 3 additions & 2 deletions klippy/extras/force_move.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,10 +78,11 @@ def manual_move(self, stepper, dist, speed, accel=0.):
print_time = toolhead.get_last_move_time()
self.trapq_append(self.trapq, print_time, accel_t, cruise_t, accel_t,
0., 0., 0., axis_r, 0., 0., 0., cruise_v, accel)
print_time += accel_t + cruise_t + accel_t
print_time = print_time + accel_t + cruise_t + accel_t
stepper.generate_steps(print_time)
self.trapq_free_moves(self.trapq, print_time)
self.trapq_free_moves(self.trapq, print_time + 99999.9)
stepper.set_stepper_kinematics(prev_sk)
toolhead.note_kinematic_activity(print_time)
toolhead.dwell(accel_t + cruise_t + accel_t)
def _lookup_stepper(self, params):
name = self.gcode.get_str('STEPPER', params)
Expand Down
6 changes: 4 additions & 2 deletions klippy/extras/manual_stepper.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,11 @@ def do_move(self, movepos, speed, accel):
accel_t, cruise_t, accel_t,
cp, 0., 0., axis_r, 0., 0.,
0., cruise_v, accel)
self.next_cmd_time += accel_t + cruise_t + accel_t
self.next_cmd_time = self.next_cmd_time + accel_t + cruise_t + accel_t
self.rail.generate_steps(self.next_cmd_time)
self.trapq_free_moves(self.trapq, self.next_cmd_time)
self.trapq_free_moves(self.trapq, self.next_cmd_time + 99999.9)
toolhead = self.printer.lookup_object('toolhead')
toolhead.note_kinematic_activity(self.next_cmd_time)
self.sync_print_time()
def do_homing_move(self, movepos, speed, accel, triggered):
if not self.can_home:
Expand Down
2 changes: 2 additions & 0 deletions klippy/toolhead.py
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,8 @@ def note_step_generation_scan_time(self, delay, old_delay=0.):
self.kin_flush_times.append(delay)
new_delay = max(self.kin_flush_times + [0.])
self.kin_flush_delay = new_delay
def note_kinematic_activity(self, kin_time):
self.last_kin_move_time = max(self.last_kin_move_time, kin_time)
def get_max_velocity(self):
return self.max_velocity, self.max_accel
def get_max_axis_halt(self):
Expand Down

0 comments on commit 17ad26a

Please sign in to comment.