diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2021-04-03 13:20:36 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2021-08-17 22:01:23 -0400 |
commit | 1dc2ab048f7ec681ab1dfdd394660c45f6ff4cd9 (patch) | |
tree | ae7f0405bce0e2c2b3d5aed0c653d2eda08117d0 /klippy/mcu.py | |
parent | 128a2f8cd6e1558c21c21f98a9c0b3efaf543b51 (diff) | |
download | kutter-1dc2ab048f7ec681ab1dfdd394660c45f6ff4cd9.tar.gz kutter-1dc2ab048f7ec681ab1dfdd394660c45f6ff4cd9.tar.xz kutter-1dc2ab048f7ec681ab1dfdd394660c45f6ff4cd9.zip |
mcu: Return time of trigger from home_wait()
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/mcu.py')
-rw-r--r-- | klippy/mcu.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/klippy/mcu.py b/klippy/mcu.py index 83143837..eb1f319f 100644 --- a/klippy/mcu.py +++ b/klippy/mcu.py @@ -136,6 +136,7 @@ class MCU_endstop: self._home_cmd = self._query_cmd = None self._mcu.register_config_callback(self._build_config) self._trigger_completion = None + self._rest_ticks = 0 ffi_main, ffi_lib = chelper.get_ffi() self._trdispatch = ffi_main.gc(ffi_lib.trdispatch_alloc(), ffi_lib.free) self._trsync = MCU_trsync(mcu, self._trdispatch) @@ -169,6 +170,7 @@ class MCU_endstop: triggered=True): clock = self._mcu.print_time_to_clock(print_time) rest_ticks = self._mcu.print_time_to_clock(print_time+rest_time) - clock + self._rest_ticks = rest_ticks reactor = self._mcu.get_printer().get_reactor() self._trigger_completion = reactor.completion() etrsync = self._trsync @@ -190,7 +192,15 @@ class MCU_endstop: ffi_main, ffi_lib = chelper.get_ffi() ffi_lib.trdispatch_stop(self._trdispatch) res = etrsync.stop() - return res == etrsync.REASON_ENDSTOP_HIT + if res == etrsync.REASON_COMMS_TIMEOUT: + return -1. + if res != etrsync.REASON_ENDSTOP_HIT: + return 0. + if self._mcu.is_fileoutput(): + return home_end_time + params = self._query_cmd.send([self._oid]) + next_clock = self._mcu.clock32_to_clock64(params['next_clock']) + return self._mcu.clock_to_print_time(next_clock - self._rest_ticks) def query_endstop(self, print_time): clock = self._mcu.print_time_to_clock(print_time) if self._mcu.is_fileoutput(): |