diff --git a/pyproject.toml b/pyproject.toml index 15068e4869..759f510eac 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -57,7 +57,7 @@ dependencies = [ "ophyd >= 1.10.5", "ophyd-async >= 0.14.0", "bluesky >= 1.14.6", - "dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@main", + "dls-dodal @ git+https://github.com/DiamondLightSource/dodal.git@mx-bluesky_1354_scintillator_safe_move", ] diff --git a/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py b/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py index d9993c9f9c..69dfcf5995 100644 --- a/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py +++ b/src/mx_bluesky/beamlines/i04/experiment_plans/i04_grid_detect_then_xray_centre_plan.py @@ -6,7 +6,6 @@ import bluesky.preprocessors as bpp from bluesky.utils import MsgGenerator from dodal.common import inject -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.beamlines.i04.beamsize import Beamsize @@ -19,6 +18,10 @@ set_fast_grid_scan_params, ) from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.mx_phase1.beamstop import Beamstop from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.pin_image_recognition import PinTipDetection diff --git a/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py b/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py index 0fca782755..d2eb2cdd7e 100644 --- a/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py +++ b/src/mx_bluesky/beamlines/i04/oav_centering_plans/oav_imaging.py @@ -10,9 +10,9 @@ from dodal.devices.beamlines.i04.beam_centre import CentreEllipseMethod from dodal.devices.beamlines.i04.max_pixel import MaxPixel from dodal.devices.mx_phase1.beamstop import Beamstop, BeamstopPositions +from dodal.devices.mx_phase1.scintillator import InOut, Scintillator from dodal.devices.oav.oav_detector import OAV, ZoomControllerWithBeamCentres from dodal.devices.robot import BartRobot, PinMounted -from dodal.devices.scintillator import InOut, Scintillator from dodal.devices.xbpm_feedback import XBPMFeedback from dodal.devices.zebra.zebra_controlled_shutter import ( ZebraShutter, diff --git a/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py b/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py index 0147a67ea7..c7d4876f4f 100644 --- a/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py +++ b/src/mx_bluesky/common/device_setup_plans/manipulate_sample.py @@ -1,12 +1,12 @@ from __future__ import annotations import bluesky.plan_stubs as bps -from dodal.devices.aperturescatterguard import ( +from dodal.devices.backlight import Backlight, InOut +from dodal.devices.detector.detector_motion import DetectorMotion +from dodal.devices.mx_phase1.aperturescatterguard import ( ApertureScatterguard, ApertureValue, ) -from dodal.devices.backlight import Backlight, InOut -from dodal.devices.detector.detector_motion import DetectorMotion from dodal.devices.smargon import CombinedMove, Smargon from dodal.devices.thawer import OnOff, Thawer diff --git a/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py b/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py index 5faf5b083d..0e26557913 100644 --- a/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py +++ b/src/mx_bluesky/common/device_setup_plans/robot_load_unload.py @@ -3,8 +3,11 @@ import bluesky.plan_stubs as bps import bluesky.preprocessors as bpp from bluesky.utils import MsgGenerator -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.robot import SAMPLE_LOCATION_EMPTY, BartRobot from dodal.devices.smargon import CombinedMove, Smargon, StubPosition from dodal.plan_stubs.motor_utils import MoveTooLargeError, home_and_reset_wrapper diff --git a/src/mx_bluesky/common/experiment_plans/beamstop_check.py b/src/mx_bluesky/common/experiment_plans/beamstop_check.py index 5f5cdb3a13..0e7a94c927 100644 --- a/src/mx_bluesky/common/experiment_plans/beamstop_check.py +++ b/src/mx_bluesky/common/experiment_plans/beamstop_check.py @@ -2,12 +2,15 @@ from bluesky import plan_stubs as bps from bluesky.utils import MsgGenerator from dodal.common.beamlines.beamline_parameters import GDABeamlineParameters -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.baton import Baton from dodal.devices.detector.detector_motion import DetectorMotion, ShutterState from dodal.devices.ipin import IPin, IPinGain +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.mx_phase1.beamstop import Beamstop, BeamstopPositions from dodal.devices.xbpm_feedback import XBPMFeedback from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter, ZebraShutterState diff --git a/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py b/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py index 4136693c3c..9e9be3ccc2 100644 --- a/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py +++ b/src/mx_bluesky/common/experiment_plans/change_aperture_then_move_plan.py @@ -1,6 +1,9 @@ import bluesky.plan_stubs as bps import numpy -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.smargon import Smargon, StubPosition from mx_bluesky.common.device_setup_plans.manipulate_sample import move_x_y_z diff --git a/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py b/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py index c9e0539e34..b56bf206f2 100644 --- a/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py +++ b/src/mx_bluesky/common/experiment_plans/inner_plans/read_hardware.py @@ -4,12 +4,12 @@ import bluesky.plan_stubs as bps from bluesky.protocols import Readable -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.beamsize.beamsize import BeamsizeBase from dodal.devices.common_dcm import DoubleCrystalMonochromator from dodal.devices.eiger import EigerDetector from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.s4_slit_gaps import S4SlitGaps from dodal.devices.smargon import Smargon from dodal.devices.synchrotron import Synchrotron diff --git a/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py b/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py index ad558faba9..b6f20a2cf1 100644 --- a/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py +++ b/src/mx_bluesky/common/experiment_plans/oav_snapshot_plan.py @@ -3,8 +3,11 @@ from bluesky import plan_stubs as bps from bluesky.utils import MsgGenerator -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.backlight import Backlight, InOut +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.oav_parameters import OAVParameters from dodal.devices.smargon import Smargon diff --git a/src/mx_bluesky/common/parameters/components.py b/src/mx_bluesky/common/parameters/components.py index e80f6ed8ee..1359204c57 100644 --- a/src/mx_bluesky/common/parameters/components.py +++ b/src/mx_bluesky/common/parameters/components.py @@ -7,11 +7,11 @@ from pathlib import Path from typing import Literal, Self, SupportsInt, cast -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.detector import ( DetectorParams, TriggerMode, ) +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from pydantic import ( BaseModel, ConfigDict, diff --git a/src/mx_bluesky/common/parameters/constants.py b/src/mx_bluesky/common/parameters/constants.py index 26ac02cdfd..c8f75c46ab 100644 --- a/src/mx_bluesky/common/parameters/constants.py +++ b/src/mx_bluesky/common/parameters/constants.py @@ -1,8 +1,8 @@ import os from enum import Enum, StrEnum -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.detector import EIGER2_X_16M_SIZE +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.zocalo.zocalo_constants import ZOCALO_ENV as ZOCALO_ENV_FROM_DODAL from dodal.utils import get_beamline_name from pydantic.dataclasses import dataclass diff --git a/src/mx_bluesky/common/parameters/device_composites.py b/src/mx_bluesky/common/parameters/device_composites.py index a2d96d1cc0..110eb7d5fd 100644 --- a/src/mx_bluesky/common/parameters/device_composites.py +++ b/src/mx_bluesky/common/parameters/device_composites.py @@ -1,7 +1,4 @@ import pydantic -from dodal.devices.aperturescatterguard import ( - ApertureScatterguard, -) from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.beamsize.beamsize import BeamsizeBase @@ -12,6 +9,9 @@ ZebraFastGridScanThreeD, ) from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, +) from dodal.devices.mx_phase1.beamstop import Beamstop from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.pin_image_recognition import PinTipDetection diff --git a/src/mx_bluesky/common/parameters/gridscan.py b/src/mx_bluesky/common/parameters/gridscan.py index 5dccf969bb..afb3a0c4a6 100644 --- a/src/mx_bluesky/common/parameters/gridscan.py +++ b/src/mx_bluesky/common/parameters/gridscan.py @@ -3,13 +3,13 @@ from abc import abstractmethod from typing import Generic, TypeVar -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.detector.det_dim_constants import EIGER2_X_9M_SIZE, EIGER2_X_16M_SIZE from dodal.devices.detector.detector import DetectorParams from dodal.devices.fast_grid_scan import ( GridScanParamsCommon, ZebraGridScanParamsThreeD, ) +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.utils import get_beamline_name from pydantic import Field, PrivateAttr from scanspec.core import Path as ScanPath diff --git a/src/mx_bluesky/common/parameters/rotation.py b/src/mx_bluesky/common/parameters/rotation.py index 80a3965568..e8297fdae4 100644 --- a/src/mx_bluesky/common/parameters/rotation.py +++ b/src/mx_bluesky/common/parameters/rotation.py @@ -6,8 +6,8 @@ from typing import Annotated, Any, Self from annotated_types import Len -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.detector import DetectorParams +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.zebra.zebra import ( RotationDirection, ) diff --git a/src/mx_bluesky/hyperion/blueapi_plans/__init__.py b/src/mx_bluesky/hyperion/blueapi_plans/__init__.py index 93eb4b5c86..81fa5a0ef9 100644 --- a/src/mx_bluesky/hyperion/blueapi_plans/__init__.py +++ b/src/mx_bluesky/hyperion/blueapi_plans/__init__.py @@ -8,9 +8,9 @@ from bluesky import plan_stubs as bps from bluesky.utils import MsgGenerator from dodal.common import inject -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.detector.detector_motion import DetectorMotion, ShutterState from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.robot import BartRobot from dodal.devices.smargon import Smargon diff --git a/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py b/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py index 927bc723fb..1c1dff48bb 100644 --- a/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py +++ b/src/mx_bluesky/hyperion/experiment_plans/robot_load_and_change_energy.py @@ -10,13 +10,13 @@ import pydantic from blueapi.core import BlueskyContext from bluesky.utils import Msg -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight, InOut from dodal.devices.beamlines.i03.dcm import DCM from dodal.devices.beamlines.i03.undulator_dcm import UndulatorDCM from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.oav.oav_detector import OAV from dodal.devices.robot import BartRobot, SampleLocation from dodal.devices.smargon import Smargon diff --git a/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py b/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py index f18fec1ba5..2a7142d134 100644 --- a/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py +++ b/src/mx_bluesky/hyperion/experiment_plans/robot_load_then_centre_plan.py @@ -7,7 +7,6 @@ from blueapi.core import BlueskyContext from bluesky import plan_stubs as bps from bluesky.utils import MsgGenerator -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.beamlines.i03 import Beamstop @@ -20,6 +19,7 @@ from dodal.devices.flux import Flux from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.pin_image_recognition import PinTipDetection from dodal.devices.robot import BartRobot, SampleLocation diff --git a/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py b/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py index 71a1047fdd..4f49a7e0e5 100644 --- a/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py +++ b/src/mx_bluesky/hyperion/experiment_plans/rotation_scan_plan.py @@ -3,7 +3,6 @@ import pydantic from blueapi.core import BlueskyContext from bluesky.utils import MsgGenerator -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.beamlines.i03 import Beamstop @@ -12,6 +11,7 @@ from dodal.devices.detector.detector_motion import DetectorMotion from dodal.devices.eiger import EigerDetector from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.oav_parameters import OAVParameters from dodal.devices.robot import BartRobot diff --git a/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py b/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py index b8d9a78544..75bbc23e87 100644 --- a/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py +++ b/src/mx_bluesky/hyperion/experiment_plans/udc_default_state.py @@ -4,7 +4,6 @@ from dodal.common.beamlines.beamline_parameters import ( get_beamline_parameters, ) -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.collimation_table import CollimationTable from dodal.devices.cryostream import ( CryoStreamGantry, @@ -16,11 +15,12 @@ from dodal.devices.fluorescence_detector_motion import FluorescenceDetector from dodal.devices.fluorescence_detector_motion import InOut as FlouInOut from dodal.devices.hutch_shutter import HutchShutter, ShutterDemand +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.mx_phase1.beamstop import BeamstopPositions +from dodal.devices.mx_phase1.scintillator import InOut as ScinInOut +from dodal.devices.mx_phase1.scintillator import Scintillator, move_scintillator_safely from dodal.devices.oav.oav_detector import OAV from dodal.devices.robot import BartRobot, PinMounted -from dodal.devices.scintillator import InOut as ScinInOut -from dodal.devices.scintillator import Scintillator from dodal.devices.smargon import Smargon from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutterState @@ -79,7 +79,7 @@ def move_to_udc_default_state(devices: UDCDefaultDevices): devices.hutch_shutter, ShutterDemand.OPEN, group=_GROUP_PRE_BEAMSTOP_CHECK ) - yield from bps.abs_set(devices.scintillator.selected_pos, ScinInOut.OUT, wait=True) + yield from move_scintillator_safely(devices.scintillator, ScinInOut.OUT) yield from bps.abs_set( devices.fluorescence_det_motion.pos, diff --git a/src/mx_bluesky/hyperion/in_process_runner.py b/src/mx_bluesky/hyperion/in_process_runner.py index 8575632a3e..827d428385 100644 --- a/src/mx_bluesky/hyperion/in_process_runner.py +++ b/src/mx_bluesky/hyperion/in_process_runner.py @@ -5,9 +5,9 @@ from blueapi.core import BlueskyContext from bluesky import plan_stubs as bps from bluesky.utils import MsgGenerator, RequestAbort -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.detector.detector_motion import DetectorMotion from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.robot import BartRobot from dodal.devices.smargon import Smargon diff --git a/src/mx_bluesky/hyperion/parameters/device_composites.py b/src/mx_bluesky/hyperion/parameters/device_composites.py index 11bd9f98b1..871414afec 100644 --- a/src/mx_bluesky/hyperion/parameters/device_composites.py +++ b/src/mx_bluesky/hyperion/parameters/device_composites.py @@ -1,9 +1,6 @@ from __future__ import annotations import pydantic -from dodal.devices.aperturescatterguard import ( - ApertureScatterguard, -) from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.beamlines.i03.beamsize import Beamsize @@ -14,6 +11,9 @@ ZebraFastGridScanThreeD, ) from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, +) from dodal.devices.robot import BartRobot from dodal.devices.s4_slit_gaps import S4SlitGaps from dodal.devices.synchrotron import Synchrotron diff --git a/tests/conftest.py b/tests/conftest.py index 332f9a0b06..0bfd761d3e 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -25,11 +25,6 @@ ) from dodal.common.beamlines.beamline_utils import clear_devices from dodal.common.beamlines.commissioning_mode import set_commissioning_signal -from dodal.devices.aperturescatterguard import ( - AperturePosition, - ApertureScatterguard, - ApertureValue, -) from dodal.devices.attenuator.attenuator import ( BinaryFilterAttenuator, EnumFilterAttenuator, @@ -49,12 +44,18 @@ from dodal.devices.eiger import EigerDetector from dodal.devices.fast_grid_scan import FastGridScanCommon from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ( + AperturePosition, + ApertureScatterguard, + ApertureScatterguardConfiguration, + ApertureValue, +) +from dodal.devices.mx_phase1.scintillator import Scintillator from dodal.devices.oav.oav_detector import OAV, OAVConfigBeamCentre from dodal.devices.oav.oav_parameters import OAVParameters from dodal.devices.oav.pin_image_recognition import PinTipDetection from dodal.devices.robot import BartRobot, SampleLocation from dodal.devices.s4_slit_gaps import S4SlitGaps -from dodal.devices.scintillator import Scintillator from dodal.devices.smargon import Smargon from dodal.devices.synchrotron import Synchrotron, SynchrotronMode from dodal.devices.thawer import Thawer @@ -547,11 +548,12 @@ async def fake_load(val: SampleLocation): @pytest.fixture -def scintillator(aperture_scatterguard): +def scintillator(aperture_scatterguard, beamstop_phase1): with init_devices(mock=True): scintillator = Scintillator( "", aperture_scatterguard=Reference(aperture_scatterguard), + beamstop=Reference(beamstop_phase1), beamline_parameters=MagicMock(), name="scintillator", ) @@ -697,52 +699,56 @@ def sample_shutter() -> Generator[ZebraShutter, Any, Any]: @pytest.fixture async def aperture_scatterguard(): - positions = { - ApertureValue.LARGE: AperturePosition( - aperture_x=0, - aperture_y=1, - aperture_z=2, - scatterguard_x=3, - scatterguard_y=4, - diameter=100, - ), - ApertureValue.MEDIUM: AperturePosition( - aperture_x=5, - aperture_y=6, - aperture_z=2, - scatterguard_x=8, - scatterguard_y=9, - diameter=50, - ), - ApertureValue.SMALL: AperturePosition( - aperture_x=10, - aperture_y=11, - aperture_z=2, - scatterguard_x=13, - scatterguard_y=14, - diameter=20, - ), - ApertureValue.OUT_OF_BEAM: AperturePosition( - aperture_x=15, - aperture_y=16, - aperture_z=2, - scatterguard_x=18, - scatterguard_y=19, - diameter=0, - ), - ApertureValue.PARKED: AperturePosition( - aperture_x=20, - aperture_y=25, - aperture_z=0, - scatterguard_x=36, - scatterguard_y=56, - diameter=0, - ), - } + config = ApertureScatterguardConfiguration( + aperture_positions={ + ApertureValue.LARGE: AperturePosition( + aperture_x=0, + aperture_y=1, + aperture_z=2, + scatterguard_x=3, + scatterguard_y=4, + diameter=100, + ), + ApertureValue.MEDIUM: AperturePosition( + aperture_x=5, + aperture_y=6, + aperture_z=2, + scatterguard_x=8, + scatterguard_y=9, + diameter=50, + ), + ApertureValue.SMALL: AperturePosition( + aperture_x=10, + aperture_y=11, + aperture_z=2, + scatterguard_x=13, + scatterguard_y=14, + diameter=20, + ), + ApertureValue.OUT_OF_BEAM: AperturePosition( + aperture_x=15, + aperture_y=16, + aperture_z=2, + scatterguard_x=18, + scatterguard_y=19, + diameter=0, + ), + ApertureValue.PARKED: AperturePosition( + aperture_x=20, + aperture_y=25, + aperture_z=0, + scatterguard_x=36, + scatterguard_y=56, + diameter=0, + ), + }, + scintillator_move_aperture_x=-1.0, + scintillator_move_scatterguard_x=-1.5, + ) with ( patch( - "dodal.beamlines.i03.load_positions_from_beamline_parameters", - return_value=positions, + "dodal.beamlines.i03.load_configuration", + return_value=config, ), patch( "dodal.beamlines.i03.AperturePosition.tolerances_from_gda_params", diff --git a/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py b/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py index 23044ebb01..97a6d1e1b3 100644 --- a/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py +++ b/tests/system_tests/common/device_setup_plans/test_robot_load_unload.py @@ -4,8 +4,8 @@ import pytest from bluesky.run_engine import RunEngine -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.robot import BartRobot from dodal.devices.smargon import Smargon from ophyd_async.core import set_mock_value diff --git a/tests/system_tests/hyperion/external_interaction/conftest.py b/tests/system_tests/hyperion/external_interaction/conftest.py index 501924d095..d67068ee6d 100644 --- a/tests/system_tests/hyperion/external_interaction/conftest.py +++ b/tests/system_tests/hyperion/external_interaction/conftest.py @@ -10,7 +10,6 @@ import pytest import pytest_asyncio from dodal.beamlines import i03 -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.beamlines.i03 import Beamstop @@ -19,6 +18,7 @@ from dodal.devices.detector.detector_motion import DetectorMotion from dodal.devices.eiger import EigerDetector from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.pin_image_recognition import PinTipDetection from dodal.devices.robot import BartRobot diff --git a/tests/system_tests/hyperion/supervisor/dummy_plans.py b/tests/system_tests/hyperion/supervisor/dummy_plans.py index ee3f4da131..81027c18ce 100644 --- a/tests/system_tests/hyperion/supervisor/dummy_plans.py +++ b/tests/system_tests/hyperion/supervisor/dummy_plans.py @@ -1,9 +1,9 @@ from bluesky import plan_stubs as bps from bluesky.utils import MsgGenerator from dodal.common import inject -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.detector.detector_motion import DetectorMotion from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.robot import BartRobot from dodal.devices.smargon import Smargon diff --git a/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py b/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py index d6202f89af..208503caca 100644 --- a/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py +++ b/tests/unit_tests/beamlines/i04/test_i04_grid_detect_then_xray_centre_plan.py @@ -6,7 +6,6 @@ from bluesky.run_engine import RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining from bluesky.utils import MsgGenerator -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.backlight import Backlight from dodal.devices.beamlines.i04.beamsize import Beamsize @@ -18,6 +17,10 @@ ZebraFastGridScanThreeD, ) from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.mx_phase1.beamstop import Beamstop from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.pin_image_recognition import PinTipDetection diff --git a/tests/unit_tests/beamlines/i04/test_oav_imaging.py b/tests/unit_tests/beamlines/i04/test_oav_imaging.py index d59bf6dc13..ad90da630e 100644 --- a/tests/unit_tests/beamlines/i04/test_oav_imaging.py +++ b/tests/unit_tests/beamlines/i04/test_oav_imaging.py @@ -9,9 +9,9 @@ from dodal.devices.beamlines.i04.beam_centre import CentreEllipseMethod from dodal.devices.beamlines.i04.max_pixel import MaxPixel from dodal.devices.mx_phase1.beamstop import Beamstop, BeamstopPositions +from dodal.devices.mx_phase1.scintillator import InOut, Scintillator from dodal.devices.oav.oav_detector import OAV, ZoomControllerWithBeamCentres from dodal.devices.robot import BartRobot, PinMounted -from dodal.devices.scintillator import InOut, Scintillator from dodal.devices.xbpm_feedback import XBPMFeedback from dodal.devices.zebra.zebra_controlled_shutter import ( ZebraShutter, diff --git a/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py b/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py index 02b1ad3c64..28abab210a 100644 --- a/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py +++ b/tests/unit_tests/common/device_setup_plans/test_robot_load_unload.py @@ -5,8 +5,11 @@ from bluesky.run_engine import RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining from bluesky.utils import Msg -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.motors import XYZStage +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.robot import SAMPLE_LOCATION_EMPTY, BartRobot from dodal.devices.smargon import CombinedMove, Smargon, StubPosition from ophyd_async.core import completed_status, get_mock_put, set_mock_value diff --git a/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py b/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py index 15f835056d..e3293c55d8 100644 --- a/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py +++ b/tests/unit_tests/common/experiment_plans/inner_plans/test_read_hardware.py @@ -8,13 +8,13 @@ from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining from dodal.beamlines import i03 from dodal.beamlines.i03 import eiger -from dodal.devices.aperturescatterguard import ( - ApertureScatterguard, -) from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator from dodal.devices.beamlines.i03.dcm import DCM from dodal.devices.eiger import EigerDetector from dodal.devices.flux import Flux +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, +) from dodal.devices.robot import BartRobot from dodal.devices.s4_slit_gaps import S4SlitGaps from dodal.devices.smargon import Smargon diff --git a/tests/unit_tests/common/experiment_plans/test_beamstop_check.py b/tests/unit_tests/common/experiment_plans/test_beamstop_check.py index ce9a30f276..20ba5f1aa4 100644 --- a/tests/unit_tests/common/experiment_plans/test_beamstop_check.py +++ b/tests/unit_tests/common/experiment_plans/test_beamstop_check.py @@ -5,11 +5,11 @@ from bluesky import Msg, RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining from dodal.common.beamlines.beamline_parameters import GDABeamlineParameters -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.hutch_shutter import ShutterState from dodal.devices.ipin import IPinGain +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.mx_phase1.beamstop import BeamstopPositions -from dodal.devices.scintillator import InOut +from dodal.devices.mx_phase1.scintillator import InOut from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutterState from ophyd_async.core import set_mock_value, set_mock_values diff --git a/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py b/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py index 33ff6b77d2..fb9037ce72 100644 --- a/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py +++ b/tests/unit_tests/common/experiment_plans/test_change_aperture_then_move_plan.py @@ -1,7 +1,10 @@ import numpy import pytest from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.smargon import CombinedMove, Smargon, StubPosition from mx_bluesky.common.experiment_plans.change_aperture_then_move_plan import ( diff --git a/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py b/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py index f3c676d25e..984538566d 100644 --- a/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py +++ b/tests/unit_tests/common/experiment_plans/test_common_grid_detect_then_xray_centre_plan.py @@ -6,8 +6,8 @@ from bluesky.run_engine import RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining from bluesky.utils import Msg -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.backlight import InOut +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.mx_phase1.beamstop import BeamstopPositions from dodal.devices.oav.oav_parameters import OAVParameters from dodal.devices.oav.pin_image_recognition import PinTipDetection diff --git a/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py b/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py index 236a91ffc5..d0f1457acb 100644 --- a/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py +++ b/tests/unit_tests/common/experiment_plans/test_oav_snapshot_plan.py @@ -5,9 +5,9 @@ import pydantic import pytest from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining -from dodal.devices.aperturescatterguard import ApertureScatterguard from dodal.devices.areadetector.plugins.cam import ColorMode from dodal.devices.backlight import Backlight +from dodal.devices.mx_phase1.aperturescatterguard import ApertureScatterguard from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.oav_parameters import OAVParameters from dodal.devices.smargon import Smargon diff --git a/tests/unit_tests/conftest.py b/tests/unit_tests/conftest.py index 53e13f399a..9e0af8c04e 100644 --- a/tests/unit_tests/conftest.py +++ b/tests/unit_tests/conftest.py @@ -10,7 +10,6 @@ from _pytest.fixtures import FixtureRequest from bluesky.run_engine import RunEngine from dodal.beamlines import i03 -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.backlight import Backlight from dodal.devices.beamlines.i24.commissioning_jungfrau import CommissioningJungfrau from dodal.devices.beamsize.beamsize import BeamsizeBase @@ -19,6 +18,10 @@ from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScanThreeD from dodal.devices.flux import Flux from dodal.devices.hutch_shutter import ShutterState +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.mx_phase1.beamstop import Beamstop from dodal.devices.oav.oav_detector import OAV from dodal.devices.oav.pin_image_recognition import PinTipDetection diff --git a/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py b/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py index 19791a8618..e83e1b240d 100644 --- a/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py +++ b/tests/unit_tests/hyperion/device_setup_plans/test_manipulate_sample.py @@ -1,7 +1,10 @@ import pytest from bluesky.run_engine import RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.smargon import CombinedMove, Smargon from ophyd_async.core import get_mock_put diff --git a/tests/unit_tests/hyperion/experiment_plans/conftest.py b/tests/unit_tests/hyperion/experiment_plans/conftest.py index 0153dec898..2404a258fa 100644 --- a/tests/unit_tests/hyperion/experiment_plans/conftest.py +++ b/tests/unit_tests/hyperion/experiment_plans/conftest.py @@ -6,6 +6,7 @@ from bluesky.simulators import RunEngineSimulator from bluesky.utils import Msg from dodal.devices.beamsize.beamsize import BeamsizeBase +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.synchrotron import SynchrotronMode from dodal.devices.zocalo import ZocaloResults from ophyd_async.core import AsyncStatus, completed_status, set_mock_value diff --git a/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py b/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py index a14c3f1d6d..8512b952df 100644 --- a/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py +++ b/tests/unit_tests/hyperion/experiment_plans/test_hyperion_flyscan_xray_centre_plan.py @@ -6,7 +6,7 @@ from bluesky.run_engine import RunEngine from bluesky.simulators import assert_message_and_return_remaining from bluesky.utils import Msg -from dodal.devices.aperturescatterguard import ( +from dodal.devices.mx_phase1.aperturescatterguard import ( ApertureValue, ) from dodal.devices.zocalo.zocalo_results import _NO_SAMPLE_ID @@ -115,8 +115,8 @@ def test_results_adjusted_and_passed_to_move_xyz( ) aperture_scatterguard = hyperion_flyscan_xrc_composite.aperture_scatterguard - large = aperture_scatterguard._loaded_positions[ApertureValue.LARGE] - medium = aperture_scatterguard._loaded_positions[ApertureValue.MEDIUM] + large = aperture_scatterguard._config.aperture_positions[ApertureValue.LARGE] + medium = aperture_scatterguard._config.aperture_positions[ApertureValue.MEDIUM] ap_call_large = call(large, ApertureValue.LARGE) ap_call_medium = call(medium, ApertureValue.MEDIUM) diff --git a/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py b/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py index 452d773805..6f487366b8 100644 --- a/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py +++ b/tests/unit_tests/hyperion/experiment_plans/test_pin_centre_then_xray_centre_plan.py @@ -4,10 +4,10 @@ from bluesky.run_engine import RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining from bluesky.utils import Msg -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.backlight import InOut from dodal.devices.beamlines.i03 import BeamstopPositions from dodal.devices.detector.detector_motion import ShutterState +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.smargon import CombinedMove from dodal.devices.synchrotron import SynchrotronMode from dodal.devices.xbpm_feedback import Pause diff --git a/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py b/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py index 1ab69a6f5b..c4ed056510 100644 --- a/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py +++ b/tests/unit_tests/hyperion/experiment_plans/test_rotation_scan_plan.py @@ -14,10 +14,13 @@ from bluesky import Msg from bluesky.run_engine import RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining -from dodal.devices.aperturescatterguard import ApertureScatterguard, ApertureValue from dodal.devices.backlight import InOut from dodal.devices.beamlines.i03 import BeamstopPositions from dodal.devices.detector.detector_motion import ShutterState +from dodal.devices.mx_phase1.aperturescatterguard import ( + ApertureScatterguard, + ApertureValue, +) from dodal.devices.oav.oav_parameters import OAVParameters from dodal.devices.smargon import CombinedMove, Smargon from dodal.devices.synchrotron import SynchrotronMode diff --git a/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py b/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py index f7f1294761..d48593d7b0 100644 --- a/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py +++ b/tests/unit_tests/hyperion/experiment_plans/test_udc_default_state.py @@ -5,7 +5,6 @@ from bluesky import Msg from bluesky.run_engine import RunEngine from bluesky.simulators import RunEngineSimulator, assert_message_and_return_remaining -from dodal.devices.aperturescatterguard import ApertureValue from dodal.devices.collimation_table import CollimationTable from dodal.devices.cryostream import ( CryoStreamGantry, @@ -17,9 +16,10 @@ from dodal.devices.fluorescence_detector_motion import FluorescenceDetector from dodal.devices.fluorescence_detector_motion import InOut as FlouInOut from dodal.devices.hutch_shutter import HutchShutter, ShutterDemand +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from dodal.devices.mx_phase1.beamstop import BeamstopPositions +from dodal.devices.mx_phase1.scintillator import InOut, Scintillator from dodal.devices.robot import BartRobot, PinMounted -from dodal.devices.scintillator import InOut, Scintillator from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutterState from ophyd_async.core import Device, Signal, init_devices, set_mock_value from ophyd_async.epics.motor import Motor @@ -62,7 +62,9 @@ async def default_devices( cryojet = OxfordCryoJet("") fluo = FluorescenceDetector("") hutch_shutter = HutchShutter("") - scintillator = Scintillator("", MagicMock(), MagicMock(), name="scin") + scintillator = Scintillator( + "", MagicMock(), MagicMock(), MagicMock(), name="scin" + ) collimation_table = CollimationTable("") with patch("dodal.devices.hutch_shutter.TEST_MODE", True): diff --git a/tests/unit_tests/hyperion/parameters/test_parameter_model.py b/tests/unit_tests/hyperion/parameters/test_parameter_model.py index 9f951814e2..b08c892b41 100644 --- a/tests/unit_tests/hyperion/parameters/test_parameter_model.py +++ b/tests/unit_tests/hyperion/parameters/test_parameter_model.py @@ -3,7 +3,7 @@ from unittest.mock import patch import pytest -from dodal.devices.aperturescatterguard import ApertureValue +from dodal.devices.mx_phase1.aperturescatterguard import ApertureValue from pydantic import ValidationError from mx_bluesky.common.external_interaction.callbacks.common.grid_detection_callback import ( diff --git a/uv.lock b/uv.lock index f7e456aef3..f1a3f65b41 100644 --- a/uv.lock +++ b/uv.lock @@ -802,8 +802,8 @@ wheels = [ [[package]] name = "dls-dodal" -version = "2.0.1.dev1+gfbc62313b" -source = { git = "https://github.com/DiamondLightSource/dodal.git?rev=main#fbc62313b4cdb4802b2dc0e8ce8b19af4909be4f" } +version = "1.69.1.dev55+ga2e9c3f7d" +source = { git = "https://github.com/DiamondLightSource/dodal.git?rev=mx-bluesky_1354_scintillator_safe_move#a2e9c3f7da2f27adba6a9d12ef96efc483580cdc" } dependencies = [ { name = "aiofiles", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, { name = "aiohttp", marker = "platform_machine == 'x86_64' and sys_platform == 'linux'" }, @@ -2108,7 +2108,7 @@ requires-dist = [ { name = "caproto" }, { name = "daq-config-server", specifier = ">=1.0.0rc2" }, { name = "deepdiff" }, - { name = "dls-dodal", git = "https://github.com/DiamondLightSource/dodal.git?rev=main" }, + { name = "dls-dodal", git = "https://github.com/DiamondLightSource/dodal.git?rev=mx-bluesky_1354_scintillator_safe_move" }, { name = "fastapi", extras = ["all"] }, { name = "flask-restful" }, { name = "jupyterlab" },