toolhead: Make sure reset_print_time() doesn't go backwards in time

Update the homing code to pass in the start of the homing operation to
toolhead.reset_print_time().  This prevents an error when batch
processing gcode files that contain multiple homing operations.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor 2017-09-27 19:21:26 -04:00
parent 4c40b50fb5
commit 6469cce2bc
2 changed files with 4 additions and 3 deletions

View File

@ -40,7 +40,7 @@ class Homing:
endstops.append((s, s.mcu_stepper.get_mcu_position())) endstops.append((s, s.mcu_stepper.get_mcu_position()))
self.toolhead.move(self._fill_coord(movepos), speed) self.toolhead.move(self._fill_coord(movepos), speed)
move_end_print_time = self.toolhead.get_last_move_time() move_end_print_time = self.toolhead.get_last_move_time()
self.toolhead.reset_print_time() self.toolhead.reset_print_time(print_time)
for s, last_pos in endstops: for s, last_pos in endstops:
s.mcu_endstop.home_finalize(move_end_print_time) s.mcu_endstop.home_finalize(move_end_print_time)
# Wait for endstops to trigger # Wait for endstops to trigger

View File

@ -257,9 +257,10 @@ class ToolHead:
def get_last_move_time(self): def get_last_move_time(self):
self._flush_lookahead() self._flush_lookahead()
return self.get_next_move_time() return self.get_next_move_time()
def reset_print_time(self): def reset_print_time(self, min_print_time=0.):
self._flush_lookahead(must_sync=True) self._flush_lookahead(must_sync=True)
self.print_time = self.mcu.estimated_print_time(self.reactor.monotonic()) self.print_time = max(min_print_time, self.mcu.estimated_print_time(
self.reactor.monotonic()))
def _check_stall(self): def _check_stall(self):
eventtime = self.reactor.monotonic() eventtime = self.reactor.monotonic()
if self.sync_print_time: if self.sync_print_time: