aboutsummaryrefslogtreecommitdiffstats
path: root/klippy/extras/probe.py
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2024-05-23 13:32:04 -0400
committerKevin O'Connor <kevin@koconnor.net>2024-06-10 12:20:21 -0400
commitbec47e049278e9745173ebdb8b184ff3cf4d98c2 (patch)
treeb4257d4450a3b66c14cbe9c2e91141c2c7563990 /klippy/extras/probe.py
parent12f92c55f1c956bf415b379828c7b0bafae35026 (diff)
downloadkutter-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>
Diffstat (limited to 'klippy/extras/probe.py')
-rw-r--r--klippy/extras/probe.py30
1 files changed, 26 insertions, 4 deletions
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))