From b2c778b93122aacd93b983775c10b97d392e92b4 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Wed, 26 Jun 2019 10:45:06 -0400 Subject: [PATCH] mcu: Integrate query_endstop_wait() into query_endstop() There is no need to have two separate calls to query an endstop. Signed-off-by: Kevin O'Connor --- klippy/extras/bltouch.py | 1 - klippy/extras/probe.py | 4 +--- klippy/extras/query_endstops.py | 12 ++++-------- klippy/extras/tmc.py | 1 - klippy/mcu.py | 4 +--- 5 files changed, 6 insertions(+), 16 deletions(-) diff --git a/klippy/extras/bltouch.py b/klippy/extras/bltouch.py index c5e8e6e7..f95eff66 100644 --- a/klippy/extras/bltouch.py +++ b/klippy/extras/bltouch.py @@ -55,7 +55,6 @@ class BLTouchEndstopWrapper: self.get_steppers = self.mcu_endstop.get_steppers self.home_wait = self.mcu_endstop.home_wait self.query_endstop = self.mcu_endstop.query_endstop - self.query_endstop_wait = self.mcu_endstop.query_endstop_wait self.TimeoutError = self.mcu_endstop.TimeoutError # Register BLTOUCH_DEBUG command self.gcode = self.printer.lookup_object('gcode') diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index 92f0528c..a6c71428 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -145,8 +145,7 @@ class PrinterProbe: def cmd_QUERY_PROBE(self, params): toolhead = self.printer.lookup_object('toolhead') print_time = toolhead.get_last_move_time() - self.mcu_probe.query_endstop(print_time) - res = self.mcu_probe.query_endstop_wait() + res = self.mcu_probe.query_endstop(print_time) self.gcode.respond_info( "probe: %s" % (["open", "TRIGGERED"][not not res],)) cmd_PROBE_ACCURACY_help = "Probe Z-height accuracy at current XY position" @@ -244,7 +243,6 @@ class ProbeEndstopWrapper: self.home_start = self.mcu_endstop.home_start self.home_wait = self.mcu_endstop.home_wait self.query_endstop = self.mcu_endstop.query_endstop - self.query_endstop_wait = self.mcu_endstop.query_endstop_wait self.TimeoutError = self.mcu_endstop.TimeoutError def _build_config(self): kin = self.printer.lookup_object('toolhead').get_kinematics() diff --git a/klippy/extras/query_endstops.py b/klippy/extras/query_endstops.py index 0b139ec2..f0e5c58e 100644 --- a/klippy/extras/query_endstops.py +++ b/klippy/extras/query_endstops.py @@ -1,6 +1,6 @@ # Utility for querying the current state of all endstops # -# Copyright (C) 2018 Kevin O'Connor +# Copyright (C) 2018-2019 Kevin O'Connor # # This file may be distributed under the terms of the GNU GPLv3 license. @@ -16,14 +16,10 @@ class QueryEndstops: self.endstops.append((mcu_endstop, name)) cmd_QUERY_ENDSTOPS_help = "Report on the status of each endstop" def cmd_QUERY_ENDSTOPS(self, params): - toolhead = self.printer.lookup_object('toolhead') - print_time = toolhead.get_last_move_time() # Query the endstops - for mcu_endstop, name in self.endstops: - mcu_endstop.query_endstop(print_time) - out = [] - for mcu_endstop, name in self.endstops: - out.append((name, mcu_endstop.query_endstop_wait())) + print_time = self.printer.lookup_object('toolhead').get_last_move_time() + out = [(name, mcu_endstop.query_endstop(print_time)) + for mcu_endstop, name in self.endstops] # Report results msg = " ".join(["%s:%s" % (name, ["open", "TRIGGERED"][not not t]) for name, t in out]) diff --git a/klippy/extras/tmc.py b/klippy/extras/tmc.py index 8afc972b..16b5c708 100644 --- a/klippy/extras/tmc.py +++ b/klippy/extras/tmc.py @@ -171,7 +171,6 @@ class TMCVirtualEndstop: self.home_start = self.mcu_endstop.home_start self.home_wait = self.mcu_endstop.home_wait self.query_endstop = self.mcu_endstop.query_endstop - self.query_endstop_wait = self.mcu_endstop.query_endstop_wait self.TimeoutError = self.mcu_endstop.TimeoutError def home_prepare(self): self.fields.set_field("en_pwm_mode", 0) diff --git a/klippy/mcu.py b/klippy/mcu.py index bc5e046b..2d8a9b55 100644 --- a/klippy/mcu.py +++ b/klippy/mcu.py @@ -234,10 +234,8 @@ class MCU_endstop: return True def query_endstop(self, print_time): self._homing = False - self._min_query_time = self._mcu.monotonic() + self._min_query_time = eventtime = self._mcu.monotonic() self._next_query_print_time = print_time - def query_endstop_wait(self): - eventtime = self._mcu.monotonic() while self._check_busy(eventtime): eventtime = self._mcu.pause(eventtime + 0.1) return self._last_state.get('pin_value', self._invert) ^ self._invert