mirror of
https://github.com/andreili/klipper.git
synced 2025-09-16 02:11:12 +02:00
toolhead: Add kin_flush_delay in note_mcu_movequeue_activity()
Automatically add kin_flush_delay to the requested flush time if is_step_gen=True. This simplifies the callers. Also, rename self.step_gen_time to self.need_step_gen_time. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
1e7c67919e
commit
b0a642a8ea
@ -240,7 +240,7 @@ class ToolHead:
|
|||||||
self.flush_timer = self.reactor.register_timer(self._flush_handler)
|
self.flush_timer = self.reactor.register_timer(self._flush_handler)
|
||||||
self.do_kick_flush_timer = True
|
self.do_kick_flush_timer = True
|
||||||
self.last_flush_time = self.last_step_gen_time = 0.
|
self.last_flush_time = self.last_step_gen_time = 0.
|
||||||
self.need_flush_time = self.step_gen_time = 0.
|
self.need_flush_time = self.need_step_gen_time = 0.
|
||||||
# Kinematic step generation scan window time tracking
|
# Kinematic step generation scan window time tracking
|
||||||
self.kin_flush_delay = SDS_CHECK_TIME
|
self.kin_flush_delay = SDS_CHECK_TIME
|
||||||
self.kin_flush_times = []
|
self.kin_flush_times = []
|
||||||
@ -326,7 +326,7 @@ class ToolHead:
|
|||||||
for cb in move.timing_callbacks:
|
for cb in move.timing_callbacks:
|
||||||
cb(next_move_time)
|
cb(next_move_time)
|
||||||
# Generate steps for moves
|
# Generate steps for moves
|
||||||
self.note_mcu_movequeue_activity(next_move_time + self.kin_flush_delay)
|
self.note_mcu_movequeue_activity(next_move_time)
|
||||||
self._advance_move_time(next_move_time)
|
self._advance_move_time(next_move_time)
|
||||||
def _flush_lookahead(self):
|
def _flush_lookahead(self):
|
||||||
# Transit from "NeedPrime"/"Priming"/"Drip"/main state to "NeedPrime"
|
# Transit from "NeedPrime"/"Priming"/"Drip"/main state to "NeedPrime"
|
||||||
@ -337,7 +337,7 @@ class ToolHead:
|
|||||||
self.check_stall_time = 0.
|
self.check_stall_time = 0.
|
||||||
def flush_step_generation(self):
|
def flush_step_generation(self):
|
||||||
self._flush_lookahead()
|
self._flush_lookahead()
|
||||||
self._advance_flush_time(self.step_gen_time)
|
self._advance_flush_time(self.need_step_gen_time)
|
||||||
def get_last_move_time(self):
|
def get_last_move_time(self):
|
||||||
if self.special_queuing_state:
|
if self.special_queuing_state:
|
||||||
self._flush_lookahead()
|
self._flush_lookahead()
|
||||||
@ -509,7 +509,7 @@ class ToolHead:
|
|||||||
drip_completion.wait(curtime + wait_time)
|
drip_completion.wait(curtime + wait_time)
|
||||||
continue
|
continue
|
||||||
npt = min(self.print_time + DRIP_SEGMENT_TIME, next_print_time)
|
npt = min(self.print_time + DRIP_SEGMENT_TIME, next_print_time)
|
||||||
self.note_mcu_movequeue_activity(npt + self.kin_flush_delay)
|
self.note_mcu_movequeue_activity(npt)
|
||||||
self._advance_move_time(npt)
|
self._advance_move_time(npt)
|
||||||
# Exit "Drip" state
|
# Exit "Drip" state
|
||||||
self.reactor.update_timer(self.flush_timer, self.reactor.NOW)
|
self.reactor.update_timer(self.flush_timer, self.reactor.NOW)
|
||||||
@ -601,9 +601,10 @@ class ToolHead:
|
|||||||
return
|
return
|
||||||
last_move.timing_callbacks.append(callback)
|
last_move.timing_callbacks.append(callback)
|
||||||
def note_mcu_movequeue_activity(self, mq_time, is_step_gen=True):
|
def note_mcu_movequeue_activity(self, mq_time, is_step_gen=True):
|
||||||
self.need_flush_time = max(self.need_flush_time, mq_time)
|
|
||||||
if is_step_gen:
|
if is_step_gen:
|
||||||
self.step_gen_time = max(self.step_gen_time, mq_time)
|
mq_time += self.kin_flush_delay
|
||||||
|
self.need_step_gen_time = max(self.need_step_gen_time, mq_time)
|
||||||
|
self.need_flush_time = max(self.need_flush_time, mq_time)
|
||||||
if self.do_kick_flush_timer:
|
if self.do_kick_flush_timer:
|
||||||
self.do_kick_flush_timer = False
|
self.do_kick_flush_timer = False
|
||||||
self.reactor.update_timer(self.flush_timer, self.reactor.NOW)
|
self.reactor.update_timer(self.flush_timer, self.reactor.NOW)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user