diff --git a/setup.cfg b/setup.cfg index 6ff2d41cd..5bd19db51 100644 --- a/setup.cfg +++ b/setup.cfg @@ -35,7 +35,7 @@ install_requires = xarray doct databroker - dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@c9f6a89eea84cb2a01d0b1d0f28805acc3c3f9a4 + dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@ca9d6df8f17f88ce0128af9cbdfd40d0cfc44a26 pydantic<2.0 # See https://github.com/DiamondLightSource/hyperion/issues/774 scipy pyzmq<25 # See https://github.com/DiamondLightSource/hyperion/issues/1103 diff --git a/src/hyperion/experiment_plans/flyscan_xray_centre_plan.py b/src/hyperion/experiment_plans/flyscan_xray_centre_plan.py index 7f1bb07eb..1e56c44e2 100755 --- a/src/hyperion/experiment_plans/flyscan_xray_centre_plan.py +++ b/src/hyperion/experiment_plans/flyscan_xray_centre_plan.py @@ -132,11 +132,11 @@ def set_aperture_for_bbox_size( @bpp.run_decorator( md={ "subplan_name": "change_aperture", - "aperture_size": new_selected_aperture.name, + "aperture_size": new_selected_aperture.GDA_name, } ) def set_aperture(): - yield from bps.abs_set(aperture_device, new_selected_aperture.location) + yield from bps.abs_set(aperture_device, new_selected_aperture) yield from set_aperture() diff --git a/src/hyperion/external_interaction/callbacks/aperture_change_callback.py b/src/hyperion/external_interaction/callbacks/aperture_change_callback.py index 0d89a88d1..d90c5362c 100644 --- a/src/hyperion/external_interaction/callbacks/aperture_change_callback.py +++ b/src/hyperion/external_interaction/callbacks/aperture_change_callback.py @@ -5,6 +5,8 @@ class ApertureChangeCallback(CallbackBase): + """A callback that's used to send the selected aperture back to GDA""" + def __init__(self, *args, **kwargs) -> None: super().__init__(*args, **kwargs) self.last_selected_aperture: str = "NONE" diff --git a/tests/conftest.py b/tests/conftest.py index 07b885bca..326f470f3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -382,29 +382,35 @@ def aperture_scatterguard(done_status): SingleAperturePosition( location=ApertureFiveDimensionalLocation(0, 1, 2, 3, 4), name="Large", + GDA_name="LARGE_APERTURE", radius_microns=100, ), SingleAperturePosition( - location=ApertureFiveDimensionalLocation(5, 6, 7, 8, 9), + location=ApertureFiveDimensionalLocation(5, 6, 2, 8, 9), name="Medium", + GDA_name="MEDIUM_APERTURE", radius_microns=50, ), SingleAperturePosition( - location=ApertureFiveDimensionalLocation(10, 11, 12, 13, 14), + location=ApertureFiveDimensionalLocation(10, 11, 2, 13, 14), name="Small", + GDA_name="SMALL_APERTURE", radius_microns=20, ), SingleAperturePosition( - location=ApertureFiveDimensionalLocation(15, 16, 17, 18, 19), + location=ApertureFiveDimensionalLocation(15, 16, 2, 18, 19), name="Robot_load", + GDA_name="ROBOT_LOAD", radius_microns=None, ), ), ) + ap_sg.aperture.z.user_setpoint.sim_put(2) # type: ignore ap_sg.aperture.z.motor_done_move.sim_put(1) # type: ignore with patch_motor(ap_sg.aperture.x), patch_motor(ap_sg.aperture.y), patch_motor( ap_sg.aperture.z ), patch_motor(ap_sg.scatterguard.x), patch_motor(ap_sg.scatterguard.y): + ap_sg.set(ap_sg.aperture_positions.SMALL) # type: ignore yield ap_sg diff --git a/tests/system_tests/experiment_plans/test_fgs_plan.py b/tests/system_tests/experiment_plans/test_fgs_plan.py index 6a670b7f6..e80b42bad 100644 --- a/tests/system_tests/experiment_plans/test_fgs_plan.py +++ b/tests/system_tests/experiment_plans/test_fgs_plan.py @@ -78,7 +78,7 @@ def fgs_composite(): ) composite.aperture_scatterguard.load_aperture_positions(aperture_positions) composite.aperture_scatterguard.aperture.z.move( - aperture_positions.LARGE[2], wait=True + aperture_positions.LARGE.location[2], wait=True ) composite.eiger.cam.manual_trigger.put("Yes") composite.eiger.odin.check_odin_initialised = lambda: (True, "") diff --git a/tests/unit_tests/experiment_plans/test_flyscan_xray_centre_plan.py b/tests/unit_tests/experiment_plans/test_flyscan_xray_centre_plan.py index 2ebdd4204..cd1e0352c 100644 --- a/tests/unit_tests/experiment_plans/test_flyscan_xray_centre_plan.py +++ b/tests/unit_tests/experiment_plans/test_flyscan_xray_centre_plan.py @@ -7,10 +7,6 @@ import pytest from bluesky.run_engine import RunEngine from bluesky.utils import FailedStatus -from dodal.devices.aperturescatterguard import ( - ApertureFiveDimensionalLocation, - SingleAperturePosition, -) from dodal.devices.detector.det_dim_constants import ( EIGER2_X_4M_DIMENSION, EIGER_TYPE_EIGER2_X_4M, @@ -199,19 +195,8 @@ def test_read_hardware_for_ispyb_updates_from_ophyd_devices( flux_test_value = 10.0 fake_fgs_composite.flux.flux_reading.sim_put(flux_test_value) # type: ignore - test_aperture = SingleAperturePosition( - name="Large", - radius_microns=100, - location=ApertureFiveDimensionalLocation( - aperture_x=0, - aperture_y=1.0005, # only here departs from the Large position described in conftest.py fixture - aperture_z=2, - scatterguard_x=3, - scatterguard_y=4, - ), - ) - fake_fgs_composite.aperture_scatterguard.selected_aperture.put( - test_aperture.location + fake_fgs_composite.aperture_scatterguard.set( + fake_fgs_composite.aperture_scatterguard.aperture_positions.LARGE # type: ignore ) set_sim_value(fake_fgs_composite.robot.barcode.bare_signal, ["BARCODE"])