mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-11-01 19:05:56 +01:00
toolhead: Set check_stall_time from _flush_lookahead()
Add a new is_runout parameter to _flush_lookahead() and use that in places that could set check_stall_time. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
@@ -294,13 +294,16 @@ class ToolHead:
|
|||||||
# Generate steps for moves
|
# Generate steps for moves
|
||||||
self.motion_queuing.note_mcu_movequeue_activity(next_move_time)
|
self.motion_queuing.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, is_runout=False):
|
||||||
# Transit from "NeedPrime"/"Priming"/main state to "NeedPrime"
|
# Transit from "NeedPrime"/"Priming"/main state to "NeedPrime"
|
||||||
|
prev_print_time = self.print_time
|
||||||
self._process_lookahead()
|
self._process_lookahead()
|
||||||
self.special_queuing_state = "NeedPrime"
|
self.special_queuing_state = "NeedPrime"
|
||||||
self.need_check_pause = -1.
|
self.need_check_pause = -1.
|
||||||
self.lookahead.set_flush_time(BUFFER_TIME_HIGH)
|
self.lookahead.set_flush_time(BUFFER_TIME_HIGH)
|
||||||
self.check_stall_time = 0.
|
self.check_stall_time = 0.
|
||||||
|
if is_runout and prev_print_time != self.print_time:
|
||||||
|
self.check_stall_time = self.print_time
|
||||||
def flush_step_generation(self):
|
def flush_step_generation(self):
|
||||||
self._flush_lookahead()
|
self._flush_lookahead()
|
||||||
self.motion_queuing.flush_all_steps()
|
self.motion_queuing.flush_all_steps()
|
||||||
@@ -348,8 +351,7 @@ class ToolHead:
|
|||||||
self.priming_timer = None
|
self.priming_timer = None
|
||||||
try:
|
try:
|
||||||
if self.special_queuing_state == "Priming":
|
if self.special_queuing_state == "Priming":
|
||||||
self._flush_lookahead()
|
self._flush_lookahead(is_runout=True)
|
||||||
self.check_stall_time = self.print_time
|
|
||||||
except:
|
except:
|
||||||
logging.exception("Exception in priming_handler")
|
logging.exception("Exception in priming_handler")
|
||||||
self.printer.invoke_shutdown("Exception in priming_handler")
|
self.printer.invoke_shutdown("Exception in priming_handler")
|
||||||
@@ -359,15 +361,12 @@ class ToolHead:
|
|||||||
return None
|
return None
|
||||||
# In "main" state - flush lookahead if buffer runs low
|
# In "main" state - flush lookahead if buffer runs low
|
||||||
est_print_time = self.mcu.estimated_print_time(eventtime)
|
est_print_time = self.mcu.estimated_print_time(eventtime)
|
||||||
print_time = self.print_time
|
buffer_time = self.print_time - est_print_time
|
||||||
buffer_time = print_time - est_print_time
|
|
||||||
if buffer_time > BUFFER_TIME_LOW:
|
if buffer_time > BUFFER_TIME_LOW:
|
||||||
# Running normally - reschedule check
|
# Running normally - reschedule check
|
||||||
return eventtime + buffer_time - BUFFER_TIME_LOW
|
return eventtime + buffer_time - BUFFER_TIME_LOW
|
||||||
# Under ran low buffer mark - flush lookahead queue
|
# Under ran low buffer mark - flush lookahead queue
|
||||||
self._flush_lookahead()
|
self._flush_lookahead(is_runout=True)
|
||||||
if print_time != self.print_time:
|
|
||||||
self.check_stall_time = self.print_time
|
|
||||||
return None
|
return None
|
||||||
# Movement commands
|
# Movement commands
|
||||||
def get_position(self):
|
def get_position(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user