diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2024-05-16 23:08:23 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2024-05-21 20:16:31 -0400 |
commit | 236d780a0a3f00017e1a1193e036f0e0eb641437 (patch) | |
tree | 8db05a4a670fca57a1c2927d04cd716a5d60b0f2 /klippy/extras/probe_eddy_current.py | |
parent | 5d52b32e645d71f8e6b8b5426f89fe61eaf92e56 (diff) | |
download | kutter-236d780a0a3f00017e1a1193e036f0e0eb641437.tar.gz kutter-236d780a0a3f00017e1a1193e036f0e0eb641437.tar.xz kutter-236d780a0a3f00017e1a1193e036f0e0eb641437.zip |
probe_eddy_current: Fix wait for samples in probing_move()
Make sure to wait until all samples are available before performing
analysis on the data.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'klippy/extras/probe_eddy_current.py')
-rw-r--r-- | klippy/extras/probe_eddy_current.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/klippy/extras/probe_eddy_current.py b/klippy/extras/probe_eddy_current.py index 858fb6e0..f670765c 100644 --- a/klippy/extras/probe_eddy_current.py +++ b/klippy/extras/probe_eddy_current.py @@ -260,20 +260,22 @@ class EddyEndstopWrapper: trig_pos = phoming.probing_move(self, pos, speed) if not self._trigger_time: return trig_pos - # Wait for 200ms to elapse since trigger time + # Wait for samples to arrive + start_time = self._trigger_time + 0.050 + end_time = start_time + 0.100 reactor = self._printer.get_reactor() while 1: + if self._samples and self._samples[-1]['data'][-1][0] >= end_time: + break systime = reactor.monotonic() est_print_time = self._mcu.estimated_print_time(systime) - need_delay = self._trigger_time + 0.200 - est_print_time - if need_delay <= 0.: - break - reactor.pause(systime + need_delay) + if est_print_time > self._trigger_time + 1.0: + raise self._printer.command_error( + "probe_eddy_current sensor outage") + reactor.pause(systime + 0.010) # Find position since trigger samples = self._samples self._samples = [] - start_time = self._trigger_time + 0.050 - end_time = start_time + 0.100 samp_sum = 0. samp_count = 0 for msg in samples: |