mcu: Return time of trigger from home_wait()

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor
2021-04-03 13:20:36 -04:00
parent 128a2f8cd6
commit 1dc2ab048f
3 changed files with 18 additions and 5 deletions

View File

@@ -116,7 +116,8 @@ class BLTouchEndstopWrapper:
self.mcu_endstop.home_start(self.action_end_time, ENDSTOP_SAMPLE_TIME,
ENDSTOP_SAMPLE_COUNT, ENDSTOP_REST_TIME,
triggered=triggered)
return self.mcu_endstop.home_wait(self.action_end_time + 0.100)
trigger_time = self.mcu_endstop.home_wait(self.action_end_time + 0.100)
return trigger_time > 0.
def raise_probe(self):
self.sync_mcu_print_time()
if not self.pin_up_not_triggered:

View File

@@ -76,9 +76,11 @@ class HomingMove:
# Wait for endstops to trigger
move_end_print_time = self.toolhead.get_last_move_time()
for mcu_endstop, name in self.endstops:
did_trigger = mcu_endstop.home_wait(move_end_print_time)
if not did_trigger and check_triggered and error is None:
error = "Failed to home %s: Timeout during homing" % (name,)
trigger_time = mcu_endstop.home_wait(move_end_print_time)
if trigger_time < 0. and error is None:
error = "Communication timeout during homing %s" % (name,)
elif not trigger_time and check_triggered and error is None:
error = "No trigger on %s after full movement" % (name,)
# Determine stepper halt positions
self.toolhead.flush_step_generation()
self.end_mcu_pos = [(s, name, spos, s.get_mcu_position())