Release lock at end of ROM test

This commit is contained in:
Julian Stirling 2025-10-22 09:57:01 +01:00
parent b8eb1907c3
commit 82f435256b

View file

@ -152,6 +152,7 @@ class RangeofMotionThing(lt.Thing):
if not got_lock:
raise RuntimeError("Trying to run ROM test when a test is already running.")
try:
rom_deps = RomDeps(
autofocus=autofocus, stage=stage, csm=csm, cam=cam, logger=logger
)
@ -176,7 +177,9 @@ class RangeofMotionThing(lt.Thing):
for axis_dir in directions:
# Create a new tracker at start of measurement.
self._rom_data = RomDataTracker()
self._move_until_edge(axis=axis, direction=axis_dir, rom_deps=rom_deps)
self._move_until_edge(
axis=axis, direction=axis_dir, rom_deps=rom_deps
)
# Append final position from tracker
axis_limits.append(self._rom_data.final_position[axis])
# Calculate step range.
@ -185,7 +188,8 @@ class RangeofMotionThing(lt.Thing):
total_time = time.time() - start_time
logger.info(f"Range of motion is {step_range[0]} x {step_range[1]} steps")
self.calibrated_range = step_range
finally:
self._lock.release()
return {
"Time": total_time,
"CSM Matrix": csm.image_to_stage_displacement_matrix,