Removed assert statement and replaced with custom exception

This commit is contained in:
Chish36 2025-08-12 13:11:01 +01:00 committed by Julian Stirling
parent 1e7f62f8ad
commit 6bed02eccf

View file

@ -36,6 +36,20 @@ CSMDep = lt.deps.direct_thing_client_dependency(
AutofocusDep = lt.deps.direct_thing_client_dependency(AutofocusThing, "/autofocus/") AutofocusDep = lt.deps.direct_thing_client_dependency(AutofocusThing, "/autofocus/")
class ParasiticMotionError(Exception):
"""Custom exception raised when parasitic motion is detected.
Parasitic motion is when motion in the direction not being measured
is too high.
"""
pass
def parasitic_detect(delta: float, max_allowed_delta: float) -> None:
"""Compare two values and raise parasitic motion error."""
if delta > max_allowed_delta:
raise ParasiticMotionError(f"Parasitic motion detected. {delta} is greate than {max_allowed_delta}")
def _generate_move_dicts( def _generate_move_dicts(
fov_perc: int, fov_perc: int,
stream_resolution: list[int], stream_resolution: list[int],
@ -180,10 +194,7 @@ def _acquire_z_predict_points(
data.measure(stage.position, offset) data.measure(stage.position, offset)
assert np.abs(data.delta[wrong_axis]) < np.abs( parasitic_detect(delta=abs(data.delta[wrong_axis]), max_allowed_delta=abs(wrong_axis_max_medium[wrong_axis]))
wrong_axis_max_medium[wrong_axis]
)
def _check_stage_operation( def _check_stage_operation(
small_step: int, small_step: int,
@ -264,11 +275,7 @@ def _check_stage_operation(
data.measure(stage.position, offset) data.measure(stage.position, offset)
assert np.abs(data.delta[wrong_axis]) < np.abs( parasitic_detect(abs(data.delta[wrong_axis]),abs(_generate_move_dicts(small_step, stream_resolution, direction, factor=0.1)[wrong_axis]))
_generate_move_dicts(small_step, stream_resolution, direction, factor=0.1)[
wrong_axis
]
)
# this means the edge has been found # this means the edge has been found
if np.abs(data.delta[axis]) < np.abs(minimum_offset_small[axis]): if np.abs(data.delta[axis]) < np.abs(minimum_offset_small[axis]):
@ -475,7 +482,7 @@ class RangeofMotionThing(lt.Thing):
rom_data.reset_tracker() rom_data.reset_tracker()
except AssertionError: except ParasiticMotionError:
logger.info("Parasitic motion detected.") logger.info("Parasitic motion detected.")
finally: finally:
stage.move_absolute( stage.move_absolute(