diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2024-05-23 13:32:04 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2024-06-10 12:20:21 -0400 |
commit | bec47e049278e9745173ebdb8b184ff3cf4d98c2 (patch) | |
tree | b4257d4450a3b66c14cbe9c2e91141c2c7563990 | |
parent | 12f92c55f1c956bf415b379828c7b0bafae35026 (diff) | |
download | kutter-bec47e049278e9745173ebdb8b184ff3cf4d98c2.tar.gz kutter-bec47e049278e9745173ebdb8b184ff3cf4d98c2.tar.xz kutter-bec47e049278e9745173ebdb8b184ff3cf4d98c2.zip |
probe: Split out new ProbeSessionHelper() class from PrinterProbe()
Separate out the PrinterProbe() class to make the external probe
interfaces more clear.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r-- | klippy/extras/axis_twist_compensation.py | 3 | ||||
-rw-r--r-- | klippy/extras/probe.py | 30 |
2 files changed, 28 insertions, 5 deletions
diff --git a/klippy/extras/axis_twist_compensation.py b/klippy/extras/axis_twist_compensation.py index ad08ad55..cd3b8417 100644 --- a/klippy/extras/axis_twist_compensation.py +++ b/klippy/extras/axis_twist_compensation.py @@ -186,7 +186,8 @@ class Calibrater: probe_points[self.current_point_index][1], None)) # probe the point - self.current_measured_z = self.probe.run_probe(self.gcmd)[2] + pos = probe.run_single_probe(self.probe, self.gcmd) + self.current_measured_z = pos[2] # horizontal_move_z (to prevent probe trigger or hitting bed) self._move_helper((None, None, self.horizontal_move_z)) diff --git a/klippy/extras/probe.py b/klippy/extras/probe.py index 1a04a61e..80a6d4e7 100644 --- a/klippy/extras/probe.py +++ b/klippy/extras/probe.py @@ -18,7 +18,8 @@ can travel further (the Z minimum position can be negative). # Probe device implementation helpers ###################################################################### -class PrinterProbe: +# Helper to track multiple probe attempts in a single command +class ProbeSessionHelper: def __init__(self, config, mcu_probe): self.printer = config.get_printer() self.name = config.get_name() @@ -375,14 +376,15 @@ class ProbePointsHelper: if self.horizontal_move_z < self.probe_offsets[2]: raise gcmd.error("horizontal_move_z can't be less than" " probe's z_offset") - probe.multi_probe_begin() + probe_session = probe.start_probe_session(gcmd) + probe_session.multi_probe_begin() while 1: done = self._move_next() if done: break - pos = probe.run_probe(gcmd) + pos = probe_session.run_probe(gcmd) self.results.append(pos) - probe.multi_probe_end() + probe_session.multi_probe_end() def _manual_probe_start(self): done = self._move_next() if not done: @@ -395,6 +397,12 @@ class ProbePointsHelper: self.results.append(kin_pos) self._manual_probe_start() +# Helper to obtain a single probe measurement +def run_single_probe(probe, gcmd): + probe_session = probe.start_probe_session(gcmd) + pos = probe_session.run_probe(gcmd) + return pos + ###################################################################### # Handle [probe] config @@ -471,5 +479,19 @@ class ProbeEndstopWrapper: def get_position_endstop(self): return self.position_endstop +# Main external probe interface +class PrinterProbe: + def __init__(self, config, mcu_probe): + self.printer = config.get_printer() + self.probe_session = ProbeSessionHelper(config, mcu_probe) + def get_lift_speed(self, gcmd=None): + return self.probe_session.get_lift_speed(gcmd) + def get_offsets(self): + return self.probe_session.get_offsets() + def get_status(self, eventtime): + return self.probe_session.get_status(eventtime) + def start_probe_session(self, gcmd): + return self.probe_session + def load_config(config): return PrinterProbe(config, ProbeEndstopWrapper(config)) |