mirror of
https://github.com/Klipper3d/klipper.git
synced 2025-11-04 20:36:00 +01:00
toolhead: Move priming logic from _check_pause() to new _check_priming_state()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
@@ -313,11 +313,8 @@ class ToolHead:
|
|||||||
else:
|
else:
|
||||||
self._process_lookahead()
|
self._process_lookahead()
|
||||||
return self.print_time
|
return self.print_time
|
||||||
def _check_pause(self):
|
def _check_priming_state(self, eventtime):
|
||||||
eventtime = self.reactor.monotonic()
|
|
||||||
est_print_time = self.mcu.estimated_print_time(eventtime)
|
est_print_time = self.mcu.estimated_print_time(eventtime)
|
||||||
buffer_time = self.print_time - est_print_time
|
|
||||||
if self.special_queuing_state:
|
|
||||||
if self.check_stall_time:
|
if self.check_stall_time:
|
||||||
# Was in "NeedPrime" state and got there from idle input
|
# Was in "NeedPrime" state and got there from idle input
|
||||||
if est_print_time < self.check_stall_time:
|
if est_print_time < self.check_stall_time:
|
||||||
@@ -329,20 +326,26 @@ class ToolHead:
|
|||||||
if self.priming_timer is None:
|
if self.priming_timer is None:
|
||||||
self.priming_timer = self.reactor.register_timer(
|
self.priming_timer = self.reactor.register_timer(
|
||||||
self._priming_handler)
|
self._priming_handler)
|
||||||
|
buffer_time = self.print_time - est_print_time
|
||||||
wtime = eventtime + max(0.100, buffer_time - BUFFER_TIME_HIGH)
|
wtime = eventtime + max(0.100, buffer_time - BUFFER_TIME_HIGH)
|
||||||
self.reactor.update_timer(self.priming_timer, wtime)
|
self.reactor.update_timer(self.priming_timer, wtime)
|
||||||
|
def _check_pause(self):
|
||||||
|
eventtime = self.reactor.monotonic()
|
||||||
|
if self.special_queuing_state:
|
||||||
|
# In "NeedPrime"/"Priming" state - update priming expiration timer
|
||||||
|
self._check_priming_state(eventtime)
|
||||||
# Check if there are lots of queued moves and pause if so
|
# Check if there are lots of queued moves and pause if so
|
||||||
while 1:
|
while 1:
|
||||||
|
est_print_time = self.mcu.estimated_print_time(eventtime)
|
||||||
|
buffer_time = self.print_time - est_print_time
|
||||||
pause_time = buffer_time - BUFFER_TIME_HIGH
|
pause_time = buffer_time - BUFFER_TIME_HIGH
|
||||||
if pause_time <= 0.:
|
if pause_time <= 0.:
|
||||||
break
|
break
|
||||||
if not self.can_pause:
|
if not self.can_pause:
|
||||||
self.need_check_pause = self.reactor.NEVER
|
self.need_check_pause = self.reactor.NEVER
|
||||||
return
|
return
|
||||||
eventtime = self.reactor.pause(
|
pause_time = max(.005, min(1., pause_time))
|
||||||
eventtime + max(.005, min(1., pause_time)))
|
eventtime = self.reactor.pause(eventtime + pause_time)
|
||||||
est_print_time = self.mcu.estimated_print_time(eventtime)
|
|
||||||
buffer_time = self.print_time - est_print_time
|
|
||||||
if not self.special_queuing_state:
|
if not self.special_queuing_state:
|
||||||
# In main state - defer pause checking until needed
|
# In main state - defer pause checking until needed
|
||||||
self.need_check_pause = est_print_time + BUFFER_TIME_HIGH
|
self.need_check_pause = est_print_time + BUFFER_TIME_HIGH
|
||||||
|
|||||||
Reference in New Issue
Block a user