aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2019-11-24 10:59:13 -0500
committerKevin O'Connor <kevin@koconnor.net>2019-11-24 11:55:30 -0500
commitade65b90af93577ae5ab5c413d5570d51084c401 (patch)
tree7fba6f8a2d7adcb504e58335c34c908556ae37ea
parentc188aa982f47a0e66e0907d1c39b5e20dcbc4af7 (diff)
downloadkutter-ade65b90af93577ae5ab5c413d5570d51084c401.tar.gz
kutter-ade65b90af93577ae5ab5c413d5570d51084c401.tar.xz
kutter-ade65b90af93577ae5ab5c413d5570d51084c401.zip
force_move: Make sure to flush step generation queue after each move
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>
-rw-r--r--klippy/extras/force_move.py5
-rw-r--r--klippy/extras/manual_stepper.py6
-rw-r--r--klippy/toolhead.py2
3 files changed, 9 insertions, 4 deletions
diff --git a/klippy/extras/force_move.py b/klippy/extras/force_move.py
index 12707f4c..0f58ad03 100644
--- a/klippy/extras/force_move.py
+++ b/klippy/extras/force_move.py
@@ -78,10 +78,11 @@ class ForceMove:
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)
diff --git a/klippy/extras/manual_stepper.py b/klippy/extras/manual_stepper.py
index aa9c8049..83e91850 100644
--- a/klippy/extras/manual_stepper.py
+++ b/klippy/extras/manual_stepper.py
@@ -68,9 +68,11 @@ class ManualStepper:
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:
diff --git a/klippy/toolhead.py b/klippy/toolhead.py
index f542f17f..7f1731f9 100644
--- a/klippy/toolhead.py
+++ b/klippy/toolhead.py
@@ -504,6 +504,8 @@ class ToolHead:
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):