From a3687fc8e60b70c73321c15a1a26049ad18a68fe Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Mon, 26 Jan 2026 16:34:53 +0000 Subject: [PATCH 1/5] breaking up i10 config into smaller python files --- src/dodal/beamlines/i10.py | 224 +++++------------- src/dodal/beamlines/i10_1.py | 1 + src/dodal/beamlines/i10_devices/__init__.py | 41 ++++ .../i10_devices/diagnostics/__init__.py | 7 + .../i10_devices/diagnostics/diagnostics_i.py | 29 +++ .../diagnostics/shared_diagnostics.py | 28 +++ .../beamlines/i10_devices/energy/__init__.py | 5 + .../i10_devices/energy/shared_energy.py | 24 ++ .../i10_devices/insertion_devices/__init__.py | 6 + .../shared_insertion_devices.py} | 102 ++------ .../beamlines/i10_devices/mirrors/__init__.py | 7 + .../i10_devices/mirrors/focusing_mirror.py | 20 ++ .../i10_devices/mirrors/shared_mirrors.py | 31 +++ .../beamlines/i10_devices/rasor/__init__.py | 0 .../i10_devices/rasor/controllers.py | 20 ++ .../beamlines/i10_devices/rasor/detectors.py | 96 ++++++++ .../beamlines/i10_devices/rasor/stages.py | 45 ++++ .../beamlines/i10_devices/slits/__init__.py | 7 + .../i10_devices/slits/shared_slits.py | 21 ++ .../beamlines/i10_devices/slits/slits_i.py | 24 ++ 20 files changed, 496 insertions(+), 242 deletions(-) create mode 100644 src/dodal/beamlines/i10_devices/__init__.py create mode 100644 src/dodal/beamlines/i10_devices/diagnostics/__init__.py create mode 100644 src/dodal/beamlines/i10_devices/diagnostics/diagnostics_i.py create mode 100644 src/dodal/beamlines/i10_devices/diagnostics/shared_diagnostics.py create mode 100644 src/dodal/beamlines/i10_devices/energy/__init__.py create mode 100644 src/dodal/beamlines/i10_devices/energy/shared_energy.py create mode 100644 src/dodal/beamlines/i10_devices/insertion_devices/__init__.py rename src/dodal/beamlines/{i10_shared.py => i10_devices/insertion_devices/shared_insertion_devices.py} (76%) create mode 100644 src/dodal/beamlines/i10_devices/mirrors/__init__.py create mode 100644 src/dodal/beamlines/i10_devices/mirrors/focusing_mirror.py create mode 100644 src/dodal/beamlines/i10_devices/mirrors/shared_mirrors.py create mode 100644 src/dodal/beamlines/i10_devices/rasor/__init__.py create mode 100644 src/dodal/beamlines/i10_devices/rasor/controllers.py create mode 100644 src/dodal/beamlines/i10_devices/rasor/detectors.py create mode 100644 src/dodal/beamlines/i10_devices/rasor/stages.py create mode 100644 src/dodal/beamlines/i10_devices/slits/__init__.py create mode 100644 src/dodal/beamlines/i10_devices/slits/shared_slits.py create mode 100644 src/dodal/beamlines/i10_devices/slits/slits_i.py diff --git a/src/dodal/beamlines/i10.py b/src/dodal/beamlines/i10.py index 34955eb0b8..362a2efd07 100644 --- a/src/dodal/beamlines/i10.py +++ b/src/dodal/beamlines/i10.py @@ -1,180 +1,80 @@ -from dodal.beamlines.i10_shared import devices as i10_shared_devices -from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline -from dodal.device_manager import DeviceManager -from dodal.devices.current_amplifiers import CurrentAmpDet -from dodal.devices.i10 import ( - I10Diagnostic, - I10Diagnostic5ADet, - I10Slits, - I10SlitsDrainCurrent, - PiezoMirror, -) -from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet -from dodal.devices.i10.rasor.rasor_current_amp import RasorFemto, RasorSR570 -from dodal.devices.i10.rasor.rasor_motors import ( - DetSlits, - Diffractometer, - PaStage, -) -from dodal.devices.i10.rasor.rasor_scaler_cards import RasorScalerCard1 -from dodal.devices.motors import XYStage, XYZStage -from dodal.devices.temperture_controller import ( - Lakeshore340, +from dodal.beamlines.i10_devices import ( + devices_det_slits, + devices_diagnostics_i, + devices_diffractometer, + devices_femto, + devices_femto_det, + devices_idd, + devices_idu, + devices_mirror_i, + devices_pa_stage, + devices_sample_stage, + devices_scaler_cards, + devices_shared_diagnostics, + devices_shared_mirror, + devices_shared_slit, + devices_slit_i, + devices_sr570, + devices_sr570_det, + devices_temperature_controller, + pgm_device, ) -from dodal.log import set_beamline as set_log_beamline -from dodal.utils import BeamlinePrefix, get_beamline_name +from dodal.device_manager import DeviceManager -BL = get_beamline_name("i10") -set_log_beamline(BL) -set_utils_beamline(BL) -PREFIX = BeamlinePrefix(BL) devices = DeviceManager() -devices.include(i10_shared_devices) -"""Mirrors""" - - -@devices.factory() -def focusing_mirror() -> PiezoMirror: - return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:") - - -"""Optic slits""" - -@devices.factory() -def slits() -> I10Slits: - return I10Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-") +"""------------------shared-----------------------------------------""" +"""Insertion Devices""" +devices.include(devices_idd) +devices.include(devices_idu) -@devices.factory() -def slits_current() -> I10SlitsDrainCurrent: - return I10SlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-") +"""Mirrors""" +devices.include(devices_shared_mirror) +"""Slits""" +devices.include(devices_shared_slit) """Diagnostics""" +devices.include(devices_shared_diagnostics) - -@devices.factory() -def diagnostics() -> I10Diagnostic: - return I10Diagnostic( - prefix=f"{PREFIX.beamline_prefix}-DI-", - ) - - -@devices.factory() -def d5a_det() -> I10Diagnostic5ADet: - return I10Diagnostic5ADet(prefix=f"{PREFIX.beamline_prefix}-DI-") - - -"""Rasor devices""" - - -@devices.factory() -def pin_hole() -> XYStage: - return XYStage(prefix="ME01D-EA-PINH-01:") - - -@devices.factory() -def det_slits() -> DetSlits: - return DetSlits(prefix="ME01D-MO-APTR-0") +"""Energy""" +devices.include(pgm_device) -@devices.factory() -def diffractometer() -> Diffractometer: - return Diffractometer(prefix="ME01D-MO-DIFF-01:") - - -@devices.factory() -def pa_stage() -> PaStage: - return PaStage(prefix="ME01D-MO-POLAN-01:") - - -@devices.factory() -def sample_stage() -> XYZStage: - return XYZStage(prefix="ME01D-MO-CRYO-01:") - - -@devices.factory() -def rasor_temperature_controller() -> Lakeshore340: - return Lakeshore340( - prefix="ME01D-EA-TCTRL-01:", - ) - - -@devices.factory() -def rasor_femto() -> RasorFemto: - return RasorFemto( - prefix="ME01D-EA-IAMP", - ) - - -@devices.factory() -def rasor_det_scalers() -> RasorScalerCard1: - return RasorScalerCard1(prefix="ME01D-EA-SCLR-01:SCALER1") - - -@devices.factory() -def rasor_sr570() -> RasorSR570: - return RasorSR570( - prefix="ME01D-EA-IAMP", - ) - - -@devices.factory() -def rasor_sr570_pa_scaler_det( - rasor_sr570: RasorSR570, rasor_det_scalers: RasorScalerCard1 -) -> CurrentAmpDet: - return CurrentAmpDet( - current_amp=rasor_sr570.ca1, - counter=rasor_det_scalers.det, - ) - - -@devices.factory() -def rasor_femto_pa_scaler_det( - rasor_femto: RasorFemto, rasor_det_scalers: RasorScalerCard1 -) -> CurrentAmpDet: - return CurrentAmpDet( - current_amp=rasor_femto.ca1, - counter=rasor_det_scalers.det, - ) - - -@devices.factory() -def rasor_sr570_fluo_scaler_det( - rasor_sr570: RasorSR570, rasor_det_scalers: RasorScalerCard1 -) -> CurrentAmpDet: - return CurrentAmpDet( - current_amp=rasor_sr570.ca2, - counter=rasor_det_scalers.fluo, - ) +"""------------------i10 i devices-----------------------------------------""" +"""Mirrors""" +devices.include(devices_mirror_i) +"""Optic slits""" -@devices.factory() -def rasor_femto_fluo_scaler_det( - rasor_femto: RasorFemto, rasor_det_scalers: RasorScalerCard1 -) -> CurrentAmpDet: - return CurrentAmpDet( - current_amp=rasor_femto.ca2, - counter=rasor_det_scalers.fluo, - ) +devices.include(devices_slit_i) -@devices.factory() -def rasor_sr570_drain_scaler_det( - rasor_sr570: RasorSR570, rasor_det_scalers: RasorScalerCard1 -) -> CurrentAmpDet: - return CurrentAmpDet( - current_amp=rasor_sr570.ca3, - counter=rasor_det_scalers.drain, - ) +"""Diagnostics""" +devices.include(devices_diagnostics_i) -@devices.factory() -def rasor_femto_drain_scaler_det( - rasor_femto: RasorFemto, rasor_det_scalers: RasorScalerCard1 -) -> CurrentAmpDet: - return CurrentAmpDet( - current_amp=rasor_femto.ca3, - counter=rasor_det_scalers.drain, - ) +"""Rasor devices""" +"""Stage devices""" +devices.include(devices_det_slits) +devices.include(devices_diffractometer) +devices.include(devices_pa_stage) +devices.include(devices_sample_stage) +"""Temperature controller""" +devices.include(devices_temperature_controller) +""" detectors """ +"""Current amplifiers""" +devices.include(devices_femto) +devices.include(devices_sr570) +"""Scaler cards""" +devices.include(devices_scaler_cards) +"""Detectors""" +devices.include( + devices_femto_det +) # Must include devices_scaler_cards and devices_femto +devices.include( + devices_sr570_det +) # Must include devices_scaler_cards and devices_sr570 + +"""---------------------------------------------------------------------""" diff --git a/src/dodal/beamlines/i10_1.py b/src/dodal/beamlines/i10_1.py index 72be2ae75b..ea1ad10527 100644 --- a/src/dodal/beamlines/i10_1.py +++ b/src/dodal/beamlines/i10_1.py @@ -1,4 +1,5 @@ from dodal.beamlines.i10_shared import devices as i10_shared_devices + from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline from dodal.device_manager import DeviceManager from dodal.devices.i10 import I10JDiagnostic, I10JSlits, PiezoMirror diff --git a/src/dodal/beamlines/i10_devices/__init__.py b/src/dodal/beamlines/i10_devices/__init__.py new file mode 100644 index 0000000000..3b4410746f --- /dev/null +++ b/src/dodal/beamlines/i10_devices/__init__.py @@ -0,0 +1,41 @@ +from .diagnostics import devices_diagnostics_i, devices_shared_diagnostics +from .energy import pgm_device +from .insertion_devices import devices_idd, devices_idu +from .mirrors import devices_mirror_i, devices_shared_mirror +from .rasor.controllers import devices_temperature_controller +from .rasor.detectors import ( + devices_femto, + devices_femto_det, + devices_scaler_cards, + devices_sr570, + devices_sr570_det, +) +from .rasor.stages import ( + devices_det_slits, + devices_diffractometer, + devices_pa_stage, + devices_sample_stage, +) +from .slits import devices_shared_slit, devices_slit_i + +__all__ = [ + "devices_mirror_i", + "devices_shared_mirror", + "devices_shared_slit", + "devices_shared_diagnostics", + "devices_diagnostics_i", + "devices_idd", + "devices_idu", + "pgm_device", + "devices_slit_i", + "devices_det_slits", + "devices_diffractometer", + "devices_pa_stage", + "devices_sample_stage", + "devices_temperature_controller", + "devices_femto", + "devices_femto_det", + "devices_scaler_cards", + "devices_sr570", + "devices_sr570_det", +] diff --git a/src/dodal/beamlines/i10_devices/diagnostics/__init__.py b/src/dodal/beamlines/i10_devices/diagnostics/__init__.py new file mode 100644 index 0000000000..09d77dd6b7 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/diagnostics/__init__.py @@ -0,0 +1,7 @@ +from .diagnostics_i import devices_diagnostics_i +from .shared_diagnostics import devices_shared_diagnostics + +__all__ = [ + "devices_shared_diagnostics", + "devices_diagnostics_i", +] diff --git a/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_i.py b/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_i.py new file mode 100644 index 0000000000..3ee1949a9f --- /dev/null +++ b/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_i.py @@ -0,0 +1,29 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import ( + I10Diagnostic, + I10Diagnostic5ADet, +) +from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet + +# Imports taken from i10 while we work out how to deal with split end stations +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_diagnostics_i = DeviceManager() + + +@devices_diagnostics_i.factory() +def diagnostics() -> I10Diagnostic: + return I10Diagnostic( + prefix=f"{PREFIX.beamline_prefix}-DI-", + ) + + +@devices_diagnostics_i.factory() +def d5a_det() -> I10Diagnostic5ADet: + return I10Diagnostic5ADet(prefix=f"{PREFIX.beamline_prefix}-DI-") diff --git a/src/dodal/beamlines/i10_devices/diagnostics/shared_diagnostics.py b/src/dodal/beamlines/i10_devices/diagnostics/shared_diagnostics.py new file mode 100644 index 0000000000..e17c2a31b5 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/diagnostics/shared_diagnostics.py @@ -0,0 +1,28 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import ( + I10SharedDiagnostic, + I10SharedSlitsDrainCurrent, +) + +# Imports taken from i10 while we work out how to deal with split end stations +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_shared_diagnostics = DeviceManager() + + +@devices_shared_diagnostics.factory() +def optics_diagnostics() -> I10SharedDiagnostic: + return I10SharedDiagnostic( + prefix=f"{PREFIX.beamline_prefix}-DI-", + ) + + +@devices_shared_diagnostics.factory() +def optics_slits_current() -> I10SharedSlitsDrainCurrent: + return I10SharedSlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-") diff --git a/src/dodal/beamlines/i10_devices/energy/__init__.py b/src/dodal/beamlines/i10_devices/energy/__init__.py new file mode 100644 index 0000000000..a92cff2440 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/energy/__init__.py @@ -0,0 +1,5 @@ +from .shared_energy import pgm_device + +__all__ = [ + "pgm_device", +] diff --git a/src/dodal/beamlines/i10_devices/energy/shared_energy.py b/src/dodal/beamlines/i10_devices/energy/shared_energy.py new file mode 100644 index 0000000000..872a75fef0 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/energy/shared_energy.py @@ -0,0 +1,24 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager + +# Imports taken from i10 while we work out how to deal with split end stations +from dodal.devices.i10.i10_setting_data import I10Grating +from dodal.devices.pgm import PlaneGratingMonochromator +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +pgm_device = DeviceManager() + + +@pgm_device.factory() +def pgm() -> PlaneGratingMonochromator: + "I10 Plane Grating Monochromator, it can change energy via pgm.energy.set()" + return PlaneGratingMonochromator( + prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", + grating=I10Grating, + grating_pv="NLINES2", + ) diff --git a/src/dodal/beamlines/i10_devices/insertion_devices/__init__.py b/src/dodal/beamlines/i10_devices/insertion_devices/__init__.py new file mode 100644 index 0000000000..d2672f9adc --- /dev/null +++ b/src/dodal/beamlines/i10_devices/insertion_devices/__init__.py @@ -0,0 +1,6 @@ +from .shared_insertion_devices import devices_idd, devices_idu + +__all__ = [ + "devices_idd", + "devices_idu", +] diff --git a/src/dodal/beamlines/i10_shared.py b/src/dodal/beamlines/i10_devices/insertion_devices/shared_insertion_devices.py similarity index 76% rename from src/dodal/beamlines/i10_shared.py rename to src/dodal/beamlines/i10_devices/insertion_devices/shared_insertion_devices.py index 820dbfdcce..3f996feb56 100644 --- a/src/dodal/beamlines/i10_shared.py +++ b/src/dodal/beamlines/i10_devices/insertion_devices/shared_insertion_devices.py @@ -12,12 +12,6 @@ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline from dodal.device_manager import DeviceManager -from dodal.devices.i10 import ( - I10SharedDiagnostic, - I10SharedSlits, - I10SharedSlitsDrainCurrent, - PiezoMirror, -) from dodal.devices.i10.i10_apple2 import ( I10Apple2, I10Apple2Controller, @@ -25,7 +19,6 @@ ) # Imports taken from i10 while we work out how to deal with split end stations -from dodal.devices.i10.i10_setting_data import I10Grating from dodal.devices.insertion_device import ( BeamEnergy, InsertionDeviceEnergy, @@ -44,7 +37,6 @@ Source, ) from dodal.devices.pgm import PlaneGratingMonochromator -from dodal.devices.synchrotron import Synchrotron from dodal.log import set_beamline as set_log_beamline from dodal.utils import BeamlinePrefix, get_beamline_name @@ -52,36 +44,9 @@ set_log_beamline(BL) set_utils_beamline(BL) PREFIX = BeamlinePrefix(BL) -devices = DeviceManager() - - -@devices.factory() -def synchrotron() -> Synchrotron: - return Synchrotron() - - -"""Mirrors""" - - -@devices.factory() -def first_mirror() -> PiezoMirror: - return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:") - - -@devices.factory() -def pgm() -> PlaneGratingMonochromator: - "I10 Plane Grating Monochromator, it can change energy via pgm.energy.set()" - return PlaneGratingMonochromator( - prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:", - grating=I10Grating, - grating_pv="NLINES2", - ) - - -@devices.factory() -def switching_mirror() -> PiezoMirror: - return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:") +devices_idd = DeviceManager() +devices_idu = DeviceManager() """ID""" @@ -90,12 +55,12 @@ def switching_mirror() -> PiezoMirror: LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/" -@devices.factory() +@devices_idd.factory() def idd_gap() -> UndulatorGap: return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:") -@devices.factory() +@devices_idd.factory() def idd_phase() -> UndulatorPhaseAxes: return UndulatorPhaseAxes( prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:", @@ -106,7 +71,7 @@ def idd_phase() -> UndulatorPhaseAxes: ) -@devices.factory() +@devices_idd.factory() def idd_jaw_phase() -> UndulatorJawPhase: return UndulatorJawPhase( prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:", @@ -114,7 +79,7 @@ def idd_jaw_phase() -> UndulatorJawPhase: ) -@devices.factory() +@devices_idd.factory() def idd( idd_gap: UndulatorGap, idd_phase: UndulatorPhaseAxes, @@ -124,7 +89,7 @@ def idd( return I10Apple2(id_gap=idd_gap, id_phase=idd_phase, id_jaw_phase=idd_jaw_phase) -@devices.factory() +@devices_idd.factory() def idd_controller(idd: I10Apple2) -> I10Apple2Controller: """I10 downstream insertion device controller.""" source = Source(column="Source", value="idd") @@ -145,24 +110,24 @@ def idd_controller(idd: I10Apple2) -> I10Apple2Controller: ) -@devices.factory() +@devices_idd.factory() def idd_energy(idd_controller: I10Apple2Controller) -> InsertionDeviceEnergy: return InsertionDeviceEnergy(id_controller=idd_controller) -@devices.factory() +@devices_idd.factory() def idd_polarisation( idd_controller: I10Apple2Controller, ) -> InsertionDevicePolarisation: return InsertionDevicePolarisation(id_controller=idd_controller) -@devices.factory() +@devices_idd.factory() def idd_laa(idd_controller: I10Apple2Controller) -> LinearArbitraryAngle: return LinearArbitraryAngle(id_controller=idd_controller) -@devices.factory() +@devices_idd.factory() def energy_dd( idd_energy: InsertionDeviceEnergy, pgm: PlaneGratingMonochromator ) -> BeamEnergy: @@ -170,12 +135,12 @@ def energy_dd( return BeamEnergy(id_energy=idd_energy, mono=pgm.energy) -@devices.factory() +@devices_idu.factory() def idu_gap() -> UndulatorGap: return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:") -@devices.factory() +@devices_idu.factory() def idu_phase() -> UndulatorPhaseAxes: return UndulatorPhaseAxes( prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:", @@ -186,7 +151,7 @@ def idu_phase() -> UndulatorPhaseAxes: ) -@devices.factory() +@devices_idu.factory() def idu_jaw_phase() -> UndulatorJawPhase: return UndulatorJawPhase( prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:", @@ -194,7 +159,7 @@ def idu_jaw_phase() -> UndulatorJawPhase: ) -@devices.factory() +@devices_idu.factory() def idu( idu_gap: UndulatorGap, idu_phase: UndulatorPhaseAxes, @@ -204,8 +169,8 @@ def idu( return I10Apple2(id_gap=idu_gap, id_phase=idu_phase, id_jaw_phase=idu_jaw_phase) -@devices.factory() -def idu_controller(idd: I10Apple2) -> I10Apple2Controller: +@devices_idu.factory() +def idu_controller(idu: I10Apple2) -> I10Apple2Controller: """I10 upstream insertion device controller.""" source = Source(column="Source", value="idu") idu_gap_energy_motor_lut = ConfigServerEnergyMotorLookup( @@ -219,55 +184,32 @@ def idu_controller(idd: I10Apple2) -> I10Apple2Controller: path=Path(LOOK_UPTABLE_DIR, DEFAULT_PHASE_FILE), ) return I10Apple2Controller( - apple2=idd, + apple2=idu, gap_energy_motor_lut=idu_gap_energy_motor_lut, phase_energy_motor_lut=idu_phase_energy_motor_lut, ) -@devices.factory() +@devices_idu.factory() def idu_energy(idu_controller: I10Apple2Controller) -> InsertionDeviceEnergy: return InsertionDeviceEnergy(id_controller=idu_controller) -@devices.factory() +@devices_idu.factory() def idu_polarisation( idu_controller: I10Apple2Controller, ) -> InsertionDevicePolarisation: return InsertionDevicePolarisation(id_controller=idu_controller) -@devices.factory() +@devices_idu.factory() def idu_laa(idu_controller: I10Apple2Controller) -> LinearArbitraryAngle: return LinearArbitraryAngle(id_controller=idu_controller) -@devices.factory() +@devices_idu.factory() def energy_ud( idu_energy: InsertionDeviceEnergy, pgm: PlaneGratingMonochromator ) -> BeamEnergy: """Beam energy from down energy devices.""" return BeamEnergy(id_energy=idu_energy, mono=pgm.energy) - - -"""Slits""" - - -@devices.factory() -def optics_slits() -> I10SharedSlits: - return I10SharedSlits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-") - - -"""Diagnostics""" - - -@devices.factory() -def optics_diagnostics() -> I10SharedDiagnostic: - return I10SharedDiagnostic( - prefix=f"{PREFIX.beamline_prefix}-DI-", - ) - - -@devices.factory() -def optics_slits_current() -> I10SharedSlitsDrainCurrent: - return I10SharedSlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-") diff --git a/src/dodal/beamlines/i10_devices/mirrors/__init__.py b/src/dodal/beamlines/i10_devices/mirrors/__init__.py new file mode 100644 index 0000000000..c1d7a399bd --- /dev/null +++ b/src/dodal/beamlines/i10_devices/mirrors/__init__.py @@ -0,0 +1,7 @@ +from .focusing_mirror import devices_mirror_i +from .shared_mirrors import devices_shared_mirror + +__all__ = [ + "devices_mirror_i", + "devices_shared_mirror", +] diff --git a/src/dodal/beamlines/i10_devices/mirrors/focusing_mirror.py b/src/dodal/beamlines/i10_devices/mirrors/focusing_mirror.py new file mode 100644 index 0000000000..a2c189402f --- /dev/null +++ b/src/dodal/beamlines/i10_devices/mirrors/focusing_mirror.py @@ -0,0 +1,20 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import ( + PiezoMirror, +) + +# Imports taken from i10 while we work out how to deal with split end stations +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_mirror_i = DeviceManager() + + +@devices_mirror_i.factory() +def focusing_mirror() -> PiezoMirror: + return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:") diff --git a/src/dodal/beamlines/i10_devices/mirrors/shared_mirrors.py b/src/dodal/beamlines/i10_devices/mirrors/shared_mirrors.py new file mode 100644 index 0000000000..89bbd6f23d --- /dev/null +++ b/src/dodal/beamlines/i10_devices/mirrors/shared_mirrors.py @@ -0,0 +1,31 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import ( + PiezoMirror, +) + +# Imports taken from i10 while we work out how to deal with split end stations +from dodal.devices.synchrotron import Synchrotron +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_shared_mirror = DeviceManager() + + +@devices_shared_mirror.factory() +def synchrotron() -> Synchrotron: + return Synchrotron() + + +@devices_shared_mirror.factory() +def first_mirror() -> PiezoMirror: + return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:") + + +@devices_shared_mirror.factory() +def switching_mirror() -> PiezoMirror: + return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:") diff --git a/src/dodal/beamlines/i10_devices/rasor/__init__.py b/src/dodal/beamlines/i10_devices/rasor/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/dodal/beamlines/i10_devices/rasor/controllers.py b/src/dodal/beamlines/i10_devices/rasor/controllers.py new file mode 100644 index 0000000000..d3eeaa0f6b --- /dev/null +++ b/src/dodal/beamlines/i10_devices/rasor/controllers.py @@ -0,0 +1,20 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.temperture_controller import ( + Lakeshore340, +) +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_temperature_controller = DeviceManager() + + +@devices_temperature_controller.factory() +def rasor_temperature_controller() -> Lakeshore340: + return Lakeshore340( + prefix="ME01D-EA-TCTRL-01:", + ) diff --git a/src/dodal/beamlines/i10_devices/rasor/detectors.py b/src/dodal/beamlines/i10_devices/rasor/detectors.py new file mode 100644 index 0000000000..3a1f3a13a3 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/rasor/detectors.py @@ -0,0 +1,96 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.current_amplifiers import CurrentAmpDet +from dodal.devices.i10.rasor.rasor_current_amp import RasorFemto, RasorSR570 +from dodal.devices.i10.rasor.rasor_scaler_cards import RasorScalerCard1 +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_femto = DeviceManager() +devices_sr570 = DeviceManager() +devices_scaler_cards = DeviceManager() +devices_sr570_det = DeviceManager() +devices_femto_det = DeviceManager() + + +@devices_femto.factory() +def rasor_femto() -> RasorFemto: + return RasorFemto( + prefix="ME01D-EA-IAMP", + ) + + +@devices_scaler_cards.factory() +def rasor_det_scalers() -> RasorScalerCard1: + return RasorScalerCard1(prefix="ME01D-EA-SCLR-01:SCALER1") + + +@devices_sr570.factory() +def rasor_sr570() -> RasorSR570: + return RasorSR570( + prefix="ME01D-EA-IAMP", + ) + + +@devices_sr570_det.factory() +def rasor_sr570_pa_scaler_det( + rasor_sr570: RasorSR570, rasor_det_scalers: RasorScalerCard1 +) -> CurrentAmpDet: + return CurrentAmpDet( + current_amp=rasor_sr570.ca1, + counter=rasor_det_scalers.det, + ) + + +@devices_femto_det.factory() +def rasor_femto_pa_scaler_det( + rasor_femto: RasorFemto, rasor_det_scalers: RasorScalerCard1 +) -> CurrentAmpDet: + return CurrentAmpDet( + current_amp=rasor_femto.ca1, + counter=rasor_det_scalers.det, + ) + + +@devices_sr570_det.factory() +def rasor_sr570_fluo_scaler_det( + rasor_sr570: RasorSR570, rasor_det_scalers: RasorScalerCard1 +) -> CurrentAmpDet: + return CurrentAmpDet( + current_amp=rasor_sr570.ca2, + counter=rasor_det_scalers.fluo, + ) + + +@devices_femto_det.factory() +def rasor_femto_fluo_scaler_det( + rasor_femto: RasorFemto, rasor_det_scalers: RasorScalerCard1 +) -> CurrentAmpDet: + return CurrentAmpDet( + current_amp=rasor_femto.ca2, + counter=rasor_det_scalers.fluo, + ) + + +@devices_sr570_det.factory() +def rasor_sr570_drain_scaler_det( + rasor_sr570: RasorSR570, rasor_det_scalers: RasorScalerCard1 +) -> CurrentAmpDet: + return CurrentAmpDet( + current_amp=rasor_sr570.ca3, + counter=rasor_det_scalers.drain, + ) + + +@devices_femto_det.factory() +def rasor_femto_drain_scaler_det( + rasor_femto: RasorFemto, rasor_det_scalers: RasorScalerCard1 +) -> CurrentAmpDet: + return CurrentAmpDet( + current_amp=rasor_femto.ca3, + counter=rasor_det_scalers.drain, + ) diff --git a/src/dodal/beamlines/i10_devices/rasor/stages.py b/src/dodal/beamlines/i10_devices/rasor/stages.py new file mode 100644 index 0000000000..449e3d3e95 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/rasor/stages.py @@ -0,0 +1,45 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10.rasor.rasor_motors import ( + DetSlits, + Diffractometer, + PaStage, +) +from dodal.devices.motors import XYStage, XYZStage +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_pin_hole = DeviceManager() +devices_det_slits = DeviceManager() +devices_diffractometer = DeviceManager() +devices_pa_stage = DeviceManager() +devices_sample_stage = DeviceManager() + + +@devices_pin_hole.factory() +def pin_hole() -> XYStage: + return XYStage(prefix="ME01D-EA-PINH-01:") + + +@devices_det_slits.factory() +def det_slits() -> DetSlits: + return DetSlits(prefix="ME01D-MO-APTR-0") + + +@devices_diffractometer.factory() +def diffractometer() -> Diffractometer: + return Diffractometer(prefix="ME01D-MO-DIFF-01:") + + +@devices_pa_stage.factory() +def pa_stage() -> PaStage: + return PaStage(prefix="ME01D-MO-POLAN-01:") + + +@devices_sample_stage.factory() +def sample_stage() -> XYZStage: + return XYZStage(prefix="ME01D-MO-CRYO-01:") diff --git a/src/dodal/beamlines/i10_devices/slits/__init__.py b/src/dodal/beamlines/i10_devices/slits/__init__.py new file mode 100644 index 0000000000..34e1bcf727 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/slits/__init__.py @@ -0,0 +1,7 @@ +from .shared_slits import devices_shared_slit +from .slits_i import devices_slit_i + +__all__ = [ + "devices_shared_slit", + "devices_slit_i", +] diff --git a/src/dodal/beamlines/i10_devices/slits/shared_slits.py b/src/dodal/beamlines/i10_devices/slits/shared_slits.py new file mode 100644 index 0000000000..169937322e --- /dev/null +++ b/src/dodal/beamlines/i10_devices/slits/shared_slits.py @@ -0,0 +1,21 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import ( + I10SharedSlits, +) + +# Imports taken from i10 while we work out how to deal with split end stations +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_shared_slit = DeviceManager() +"""Slits""" + + +@devices_shared_slit.factory() +def optics_slits() -> I10SharedSlits: + return I10SharedSlits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-") diff --git a/src/dodal/beamlines/i10_devices/slits/slits_i.py b/src/dodal/beamlines/i10_devices/slits/slits_i.py new file mode 100644 index 0000000000..07dd6b82d8 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/slits/slits_i.py @@ -0,0 +1,24 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import ( + I10Slits, + I10SlitsDrainCurrent, +) +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix(BL) +devices_slit_i = DeviceManager() + + +@devices_slit_i.factory() +def slits() -> I10Slits: + return I10Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-") + + +@devices_slit_i.factory() +def slits_current() -> I10SlitsDrainCurrent: + return I10SlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-") From 6e566fe87b7de786204ea6bbde8084c026680a21 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Mon, 26 Jan 2026 16:58:16 +0000 Subject: [PATCH 2/5] make i10_1 use the same import --- src/dodal/beamlines/i10.py | 4 +- src/dodal/beamlines/i10_1.py | 66 +++++++++++-------- src/dodal/beamlines/i10_devices/__init__.py | 19 ++++-- .../i10_devices/diagnostics/__init__.py | 2 + .../i10_devices/diagnostics/diagnostics_j.py | 22 +++++++ .../beamlines/i10_devices/em/__init__.py | 0 .../beamlines/i10_devices/em/controllers.py | 20 ++++++ .../beamlines/i10_devices/mirrors/__init__.py | 4 +- .../{focusing_mirror.py => mirror_i.py} | 0 .../beamlines/i10_devices/mirrors/mirror_j.py | 18 +++++ .../i10_devices/rasor/controllers.py | 4 +- .../beamlines/i10_devices/slits/__init__.py | 2 + .../beamlines/i10_devices/slits/slits_j.py | 16 +++++ 13 files changed, 138 insertions(+), 39 deletions(-) create mode 100644 src/dodal/beamlines/i10_devices/diagnostics/diagnostics_j.py create mode 100644 src/dodal/beamlines/i10_devices/em/__init__.py create mode 100644 src/dodal/beamlines/i10_devices/em/controllers.py rename src/dodal/beamlines/i10_devices/mirrors/{focusing_mirror.py => mirror_i.py} (100%) create mode 100644 src/dodal/beamlines/i10_devices/mirrors/mirror_j.py create mode 100644 src/dodal/beamlines/i10_devices/slits/slits_j.py diff --git a/src/dodal/beamlines/i10.py b/src/dodal/beamlines/i10.py index 362a2efd07..e1b9e127d0 100644 --- a/src/dodal/beamlines/i10.py +++ b/src/dodal/beamlines/i10.py @@ -8,6 +8,7 @@ devices_idu, devices_mirror_i, devices_pa_stage, + devices_rasor_temperature_controller, devices_sample_stage, devices_scaler_cards, devices_shared_diagnostics, @@ -16,7 +17,6 @@ devices_slit_i, devices_sr570, devices_sr570_det, - devices_temperature_controller, pgm_device, ) from dodal.device_manager import DeviceManager @@ -62,7 +62,7 @@ devices.include(devices_pa_stage) devices.include(devices_sample_stage) """Temperature controller""" -devices.include(devices_temperature_controller) +devices.include(devices_rasor_temperature_controller) """ detectors """ """Current amplifiers""" devices.include(devices_femto) diff --git a/src/dodal/beamlines/i10_1.py b/src/dodal/beamlines/i10_1.py index ea1ad10527..1868be53b9 100644 --- a/src/dodal/beamlines/i10_1.py +++ b/src/dodal/beamlines/i10_1.py @@ -1,39 +1,47 @@ -from dodal.beamlines.i10_shared import devices as i10_shared_devices - -from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.beamlines.i10_devices import ( + devices_diagnostics_j, + devices_em_temperature_controller, + devices_idd, + devices_idu, + devices_mirror_j, + devices_shared_diagnostics, + devices_shared_mirror, + devices_shared_slit, + devices_slit_j, + pgm_device, +) from dodal.device_manager import DeviceManager -from dodal.devices.i10 import I10JDiagnostic, I10JSlits, PiezoMirror -from dodal.devices.temperture_controller.lakeshore.lakeshore import Lakeshore336 -from dodal.log import set_beamline as set_log_beamline -from dodal.utils import BeamlinePrefix, get_beamline_name - -BL = get_beamline_name("i10-1") -set_log_beamline(BL) -set_utils_beamline(BL) -PREFIX = BeamlinePrefix("i10", "J") + devices = DeviceManager() -devices.include(i10_shared_devices) +"""------------------shared-----------------------------------------""" +"""Insertion Devices""" + +devices.include(devices_idd) +devices.include(devices_idu) + +"""Mirrors""" +devices.include(devices_shared_mirror) + +"""Slits""" +devices.include(devices_shared_slit) -@devices.factory() -def em_temperature_controller() -> Lakeshore336: - return Lakeshore336( - prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-41:", - ) +"""Diagnostics""" +devices.include(devices_shared_diagnostics) +"""Energy""" +devices.include(pgm_device) -@devices.factory() -def slits() -> I10JSlits: - return I10JSlits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-") +"""------------------i10 j devices-----------------------------------------""" -@devices.factory() -def diagnostic() -> I10JDiagnostic: - return I10JDiagnostic( - prefix=f"{PREFIX.beamline_prefix}-DI-", - ) +"""Mirrors""" +devices.include(devices_mirror_j) +"""Diagnostics""" +devices.include(devices_diagnostics_j) +"""Optic slits """ +devices.include(devices_slit_j) -@devices.factory() -def focusing_mirror() -> PiezoMirror: - return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCA-01:") +"""EM devices""" +devices.include(devices_em_temperature_controller) diff --git a/src/dodal/beamlines/i10_devices/__init__.py b/src/dodal/beamlines/i10_devices/__init__.py index 3b4410746f..4dc414bc5a 100644 --- a/src/dodal/beamlines/i10_devices/__init__.py +++ b/src/dodal/beamlines/i10_devices/__init__.py @@ -1,8 +1,13 @@ -from .diagnostics import devices_diagnostics_i, devices_shared_diagnostics +from .diagnostics import ( + devices_diagnostics_i, + devices_diagnostics_j, + devices_shared_diagnostics, +) +from .em.controllers import devices_em_temperature_controller from .energy import pgm_device from .insertion_devices import devices_idd, devices_idu -from .mirrors import devices_mirror_i, devices_shared_mirror -from .rasor.controllers import devices_temperature_controller +from .mirrors import devices_mirror_i, devices_mirror_j, devices_shared_mirror +from .rasor.controllers import devices_rasor_temperature_controller from .rasor.detectors import ( devices_femto, devices_femto_det, @@ -16,7 +21,7 @@ devices_pa_stage, devices_sample_stage, ) -from .slits import devices_shared_slit, devices_slit_i +from .slits import devices_shared_slit, devices_slit_i, devices_slit_j __all__ = [ "devices_mirror_i", @@ -32,10 +37,14 @@ "devices_diffractometer", "devices_pa_stage", "devices_sample_stage", - "devices_temperature_controller", + "devices_rasor_temperature_controller", "devices_femto", "devices_femto_det", "devices_scaler_cards", "devices_sr570", "devices_sr570_det", + "devices_diagnostics_j", + "devices_slit_j", + "devices_mirror_j", + "devices_em_temperature_controller", ] diff --git a/src/dodal/beamlines/i10_devices/diagnostics/__init__.py b/src/dodal/beamlines/i10_devices/diagnostics/__init__.py index 09d77dd6b7..49c6ab1c24 100644 --- a/src/dodal/beamlines/i10_devices/diagnostics/__init__.py +++ b/src/dodal/beamlines/i10_devices/diagnostics/__init__.py @@ -1,7 +1,9 @@ from .diagnostics_i import devices_diagnostics_i +from .diagnostics_j import devices_diagnostics_j from .shared_diagnostics import devices_shared_diagnostics __all__ = [ "devices_shared_diagnostics", "devices_diagnostics_i", + "devices_diagnostics_j", ] diff --git a/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_j.py b/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_j.py new file mode 100644 index 0000000000..9714cf23a9 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_j.py @@ -0,0 +1,22 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10.diagnostics import ( + I10JDiagnostic, +) + +# Imports taken from i10 while we work out how to deal with split end stations +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10-1") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix("i10", "J") +devices_diagnostics_j = DeviceManager() + + +@devices_diagnostics_j.factory() +def diagnostic() -> I10JDiagnostic: + return I10JDiagnostic( + prefix=f"{PREFIX.beamline_prefix}-DI-", + ) diff --git a/src/dodal/beamlines/i10_devices/em/__init__.py b/src/dodal/beamlines/i10_devices/em/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/dodal/beamlines/i10_devices/em/controllers.py b/src/dodal/beamlines/i10_devices/em/controllers.py new file mode 100644 index 0000000000..0fda4b2f52 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/em/controllers.py @@ -0,0 +1,20 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.temperture_controller import ( + Lakeshore336, +) +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10-1") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix("i10", "J") +devices_em_temperature_controller = DeviceManager() + + +@devices_em_temperature_controller.factory() +def em_temperature_controller() -> Lakeshore336: + return Lakeshore336( + prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-41:", + ) diff --git a/src/dodal/beamlines/i10_devices/mirrors/__init__.py b/src/dodal/beamlines/i10_devices/mirrors/__init__.py index c1d7a399bd..9dfab9f6cc 100644 --- a/src/dodal/beamlines/i10_devices/mirrors/__init__.py +++ b/src/dodal/beamlines/i10_devices/mirrors/__init__.py @@ -1,7 +1,9 @@ -from .focusing_mirror import devices_mirror_i +from .mirror_i import devices_mirror_i +from .mirror_j import devices_mirror_j from .shared_mirrors import devices_shared_mirror __all__ = [ "devices_mirror_i", "devices_shared_mirror", + "devices_mirror_j", ] diff --git a/src/dodal/beamlines/i10_devices/mirrors/focusing_mirror.py b/src/dodal/beamlines/i10_devices/mirrors/mirror_i.py similarity index 100% rename from src/dodal/beamlines/i10_devices/mirrors/focusing_mirror.py rename to src/dodal/beamlines/i10_devices/mirrors/mirror_i.py diff --git a/src/dodal/beamlines/i10_devices/mirrors/mirror_j.py b/src/dodal/beamlines/i10_devices/mirrors/mirror_j.py new file mode 100644 index 0000000000..9b17496198 --- /dev/null +++ b/src/dodal/beamlines/i10_devices/mirrors/mirror_j.py @@ -0,0 +1,18 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import ( + PiezoMirror, +) +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10-1") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix("i10", "J") +devices_mirror_j = DeviceManager() + + +@devices_mirror_j.factory() +def focusing_mirror() -> PiezoMirror: + return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCA-01:") diff --git a/src/dodal/beamlines/i10_devices/rasor/controllers.py b/src/dodal/beamlines/i10_devices/rasor/controllers.py index d3eeaa0f6b..1930782cd5 100644 --- a/src/dodal/beamlines/i10_devices/rasor/controllers.py +++ b/src/dodal/beamlines/i10_devices/rasor/controllers.py @@ -10,10 +10,10 @@ set_log_beamline(BL) set_utils_beamline(BL) PREFIX = BeamlinePrefix(BL) -devices_temperature_controller = DeviceManager() +devices_rasor_temperature_controller = DeviceManager() -@devices_temperature_controller.factory() +@devices_rasor_temperature_controller.factory() def rasor_temperature_controller() -> Lakeshore340: return Lakeshore340( prefix="ME01D-EA-TCTRL-01:", diff --git a/src/dodal/beamlines/i10_devices/slits/__init__.py b/src/dodal/beamlines/i10_devices/slits/__init__.py index 34e1bcf727..6c8dcdd794 100644 --- a/src/dodal/beamlines/i10_devices/slits/__init__.py +++ b/src/dodal/beamlines/i10_devices/slits/__init__.py @@ -1,7 +1,9 @@ from .shared_slits import devices_shared_slit from .slits_i import devices_slit_i +from .slits_j import devices_slit_j __all__ = [ "devices_shared_slit", "devices_slit_i", + "devices_slit_j", ] diff --git a/src/dodal/beamlines/i10_devices/slits/slits_j.py b/src/dodal/beamlines/i10_devices/slits/slits_j.py new file mode 100644 index 0000000000..68c674010b --- /dev/null +++ b/src/dodal/beamlines/i10_devices/slits/slits_j.py @@ -0,0 +1,16 @@ +from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline +from dodal.device_manager import DeviceManager +from dodal.devices.i10 import I10JSlits +from dodal.log import set_beamline as set_log_beamline +from dodal.utils import BeamlinePrefix, get_beamline_name + +BL = get_beamline_name("i10-1") +set_log_beamline(BL) +set_utils_beamline(BL) +PREFIX = BeamlinePrefix("i10", "J") +devices_slit_j = DeviceManager() + + +@devices_slit_j.factory() +def slits() -> I10JSlits: + return I10JSlits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-") From c8d88b1c1c2e1f4af5602c6d3b7c0dd9795ea318 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Mon, 26 Jan 2026 17:02:27 +0000 Subject: [PATCH 3/5] move config folders out of beamline --- src/dodal/beamlines/i10.py | 4 ++-- src/dodal/beamlines/i10_1.py | 4 ++-- .../i10/i10_devices_configs}/__init__.py | 0 .../i10/i10_devices_configs}/diagnostics/__init__.py | 0 .../i10/i10_devices_configs}/diagnostics/diagnostics_i.py | 0 .../i10/i10_devices_configs}/diagnostics/diagnostics_j.py | 0 .../i10_devices_configs}/diagnostics/shared_diagnostics.py | 0 .../i10/i10_devices_configs}/em/__init__.py | 0 .../i10/i10_devices_configs}/em/controllers.py | 0 .../i10/i10_devices_configs}/energy/__init__.py | 0 .../i10/i10_devices_configs}/energy/shared_energy.py | 0 .../i10/i10_devices_configs}/insertion_devices/__init__.py | 0 .../insertion_devices/shared_insertion_devices.py | 0 .../i10/i10_devices_configs}/mirrors/__init__.py | 0 .../i10/i10_devices_configs}/mirrors/mirror_i.py | 0 .../i10/i10_devices_configs}/mirrors/mirror_j.py | 0 .../i10/i10_devices_configs}/mirrors/shared_mirrors.py | 0 .../i10/i10_devices_configs}/rasor/__init__.py | 0 .../i10/i10_devices_configs}/rasor/controllers.py | 0 .../i10/i10_devices_configs}/rasor/detectors.py | 0 .../i10/i10_devices_configs}/rasor/stages.py | 0 .../i10/i10_devices_configs}/slits/__init__.py | 0 .../i10/i10_devices_configs}/slits/shared_slits.py | 0 .../i10/i10_devices_configs}/slits/slits_i.py | 0 .../i10/i10_devices_configs}/slits/slits_j.py | 0 25 files changed, 4 insertions(+), 4 deletions(-) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/diagnostics/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/diagnostics/diagnostics_i.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/diagnostics/diagnostics_j.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/diagnostics/shared_diagnostics.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/em/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/em/controllers.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/energy/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/energy/shared_energy.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/insertion_devices/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/insertion_devices/shared_insertion_devices.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/mirrors/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/mirrors/mirror_i.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/mirrors/mirror_j.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/mirrors/shared_mirrors.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/rasor/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/rasor/controllers.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/rasor/detectors.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/rasor/stages.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/slits/__init__.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/slits/shared_slits.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/slits/slits_i.py (100%) rename src/dodal/{beamlines/i10_devices => devices/i10/i10_devices_configs}/slits/slits_j.py (100%) diff --git a/src/dodal/beamlines/i10.py b/src/dodal/beamlines/i10.py index e1b9e127d0..f6c2d8926e 100644 --- a/src/dodal/beamlines/i10.py +++ b/src/dodal/beamlines/i10.py @@ -1,4 +1,5 @@ -from dodal.beamlines.i10_devices import ( +from dodal.device_manager import DeviceManager +from dodal.devices.i10.i10_devices_configs import ( devices_det_slits, devices_diagnostics_i, devices_diffractometer, @@ -19,7 +20,6 @@ devices_sr570_det, pgm_device, ) -from dodal.device_manager import DeviceManager devices = DeviceManager() diff --git a/src/dodal/beamlines/i10_1.py b/src/dodal/beamlines/i10_1.py index 1868be53b9..d45e4dde66 100644 --- a/src/dodal/beamlines/i10_1.py +++ b/src/dodal/beamlines/i10_1.py @@ -1,4 +1,5 @@ -from dodal.beamlines.i10_devices import ( +from dodal.device_manager import DeviceManager +from dodal.devices.i10.i10_devices_configs import ( devices_diagnostics_j, devices_em_temperature_controller, devices_idd, @@ -10,7 +11,6 @@ devices_slit_j, pgm_device, ) -from dodal.device_manager import DeviceManager devices = DeviceManager() diff --git a/src/dodal/beamlines/i10_devices/__init__.py b/src/dodal/devices/i10/i10_devices_configs/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/__init__.py diff --git a/src/dodal/beamlines/i10_devices/diagnostics/__init__.py b/src/dodal/devices/i10/i10_devices_configs/diagnostics/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/diagnostics/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/diagnostics/__init__.py diff --git a/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_i.py b/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_i.py similarity index 100% rename from src/dodal/beamlines/i10_devices/diagnostics/diagnostics_i.py rename to src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_i.py diff --git a/src/dodal/beamlines/i10_devices/diagnostics/diagnostics_j.py b/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_j.py similarity index 100% rename from src/dodal/beamlines/i10_devices/diagnostics/diagnostics_j.py rename to src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_j.py diff --git a/src/dodal/beamlines/i10_devices/diagnostics/shared_diagnostics.py b/src/dodal/devices/i10/i10_devices_configs/diagnostics/shared_diagnostics.py similarity index 100% rename from src/dodal/beamlines/i10_devices/diagnostics/shared_diagnostics.py rename to src/dodal/devices/i10/i10_devices_configs/diagnostics/shared_diagnostics.py diff --git a/src/dodal/beamlines/i10_devices/em/__init__.py b/src/dodal/devices/i10/i10_devices_configs/em/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/em/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/em/__init__.py diff --git a/src/dodal/beamlines/i10_devices/em/controllers.py b/src/dodal/devices/i10/i10_devices_configs/em/controllers.py similarity index 100% rename from src/dodal/beamlines/i10_devices/em/controllers.py rename to src/dodal/devices/i10/i10_devices_configs/em/controllers.py diff --git a/src/dodal/beamlines/i10_devices/energy/__init__.py b/src/dodal/devices/i10/i10_devices_configs/energy/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/energy/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/energy/__init__.py diff --git a/src/dodal/beamlines/i10_devices/energy/shared_energy.py b/src/dodal/devices/i10/i10_devices_configs/energy/shared_energy.py similarity index 100% rename from src/dodal/beamlines/i10_devices/energy/shared_energy.py rename to src/dodal/devices/i10/i10_devices_configs/energy/shared_energy.py diff --git a/src/dodal/beamlines/i10_devices/insertion_devices/__init__.py b/src/dodal/devices/i10/i10_devices_configs/insertion_devices/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/insertion_devices/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/insertion_devices/__init__.py diff --git a/src/dodal/beamlines/i10_devices/insertion_devices/shared_insertion_devices.py b/src/dodal/devices/i10/i10_devices_configs/insertion_devices/shared_insertion_devices.py similarity index 100% rename from src/dodal/beamlines/i10_devices/insertion_devices/shared_insertion_devices.py rename to src/dodal/devices/i10/i10_devices_configs/insertion_devices/shared_insertion_devices.py diff --git a/src/dodal/beamlines/i10_devices/mirrors/__init__.py b/src/dodal/devices/i10/i10_devices_configs/mirrors/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/mirrors/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/mirrors/__init__.py diff --git a/src/dodal/beamlines/i10_devices/mirrors/mirror_i.py b/src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_i.py similarity index 100% rename from src/dodal/beamlines/i10_devices/mirrors/mirror_i.py rename to src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_i.py diff --git a/src/dodal/beamlines/i10_devices/mirrors/mirror_j.py b/src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_j.py similarity index 100% rename from src/dodal/beamlines/i10_devices/mirrors/mirror_j.py rename to src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_j.py diff --git a/src/dodal/beamlines/i10_devices/mirrors/shared_mirrors.py b/src/dodal/devices/i10/i10_devices_configs/mirrors/shared_mirrors.py similarity index 100% rename from src/dodal/beamlines/i10_devices/mirrors/shared_mirrors.py rename to src/dodal/devices/i10/i10_devices_configs/mirrors/shared_mirrors.py diff --git a/src/dodal/beamlines/i10_devices/rasor/__init__.py b/src/dodal/devices/i10/i10_devices_configs/rasor/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/rasor/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/rasor/__init__.py diff --git a/src/dodal/beamlines/i10_devices/rasor/controllers.py b/src/dodal/devices/i10/i10_devices_configs/rasor/controllers.py similarity index 100% rename from src/dodal/beamlines/i10_devices/rasor/controllers.py rename to src/dodal/devices/i10/i10_devices_configs/rasor/controllers.py diff --git a/src/dodal/beamlines/i10_devices/rasor/detectors.py b/src/dodal/devices/i10/i10_devices_configs/rasor/detectors.py similarity index 100% rename from src/dodal/beamlines/i10_devices/rasor/detectors.py rename to src/dodal/devices/i10/i10_devices_configs/rasor/detectors.py diff --git a/src/dodal/beamlines/i10_devices/rasor/stages.py b/src/dodal/devices/i10/i10_devices_configs/rasor/stages.py similarity index 100% rename from src/dodal/beamlines/i10_devices/rasor/stages.py rename to src/dodal/devices/i10/i10_devices_configs/rasor/stages.py diff --git a/src/dodal/beamlines/i10_devices/slits/__init__.py b/src/dodal/devices/i10/i10_devices_configs/slits/__init__.py similarity index 100% rename from src/dodal/beamlines/i10_devices/slits/__init__.py rename to src/dodal/devices/i10/i10_devices_configs/slits/__init__.py diff --git a/src/dodal/beamlines/i10_devices/slits/shared_slits.py b/src/dodal/devices/i10/i10_devices_configs/slits/shared_slits.py similarity index 100% rename from src/dodal/beamlines/i10_devices/slits/shared_slits.py rename to src/dodal/devices/i10/i10_devices_configs/slits/shared_slits.py diff --git a/src/dodal/beamlines/i10_devices/slits/slits_i.py b/src/dodal/devices/i10/i10_devices_configs/slits/slits_i.py similarity index 100% rename from src/dodal/beamlines/i10_devices/slits/slits_i.py rename to src/dodal/devices/i10/i10_devices_configs/slits/slits_i.py diff --git a/src/dodal/beamlines/i10_devices/slits/slits_j.py b/src/dodal/devices/i10/i10_devices_configs/slits/slits_j.py similarity index 100% rename from src/dodal/beamlines/i10_devices/slits/slits_j.py rename to src/dodal/devices/i10/i10_devices_configs/slits/slits_j.py From 58075e8cc95e50c365edb52762eddcaa603320d8 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Mon, 26 Jan 2026 17:05:33 +0000 Subject: [PATCH 4/5] clean up comment --- .../i10/i10_devices_configs/diagnostics/diagnostics_i.py | 2 -- .../i10/i10_devices_configs/diagnostics/diagnostics_j.py | 2 -- .../i10/i10_devices_configs/diagnostics/shared_diagnostics.py | 2 -- .../devices/i10/i10_devices_configs/energy/shared_energy.py | 2 -- .../insertion_devices/shared_insertion_devices.py | 2 -- src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_i.py | 2 -- .../devices/i10/i10_devices_configs/mirrors/shared_mirrors.py | 2 -- src/dodal/devices/i10/i10_devices_configs/slits/shared_slits.py | 2 -- 8 files changed, 16 deletions(-) diff --git a/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_i.py b/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_i.py index 3ee1949a9f..7cad91c2a8 100644 --- a/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_i.py +++ b/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_i.py @@ -5,8 +5,6 @@ I10Diagnostic5ADet, ) from dodal.devices.i10.diagnostics import I10Diagnostic, I10Diagnostic5ADet - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.log import set_beamline as set_log_beamline from dodal.utils import BeamlinePrefix, get_beamline_name diff --git a/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_j.py b/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_j.py index 9714cf23a9..46ac7219c0 100644 --- a/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_j.py +++ b/src/dodal/devices/i10/i10_devices_configs/diagnostics/diagnostics_j.py @@ -3,8 +3,6 @@ from dodal.devices.i10.diagnostics import ( I10JDiagnostic, ) - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.log import set_beamline as set_log_beamline from dodal.utils import BeamlinePrefix, get_beamline_name diff --git a/src/dodal/devices/i10/i10_devices_configs/diagnostics/shared_diagnostics.py b/src/dodal/devices/i10/i10_devices_configs/diagnostics/shared_diagnostics.py index e17c2a31b5..3d502ae515 100644 --- a/src/dodal/devices/i10/i10_devices_configs/diagnostics/shared_diagnostics.py +++ b/src/dodal/devices/i10/i10_devices_configs/diagnostics/shared_diagnostics.py @@ -4,8 +4,6 @@ I10SharedDiagnostic, I10SharedSlitsDrainCurrent, ) - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.log import set_beamline as set_log_beamline from dodal.utils import BeamlinePrefix, get_beamline_name diff --git a/src/dodal/devices/i10/i10_devices_configs/energy/shared_energy.py b/src/dodal/devices/i10/i10_devices_configs/energy/shared_energy.py index 872a75fef0..c6d5b4c4f8 100644 --- a/src/dodal/devices/i10/i10_devices_configs/energy/shared_energy.py +++ b/src/dodal/devices/i10/i10_devices_configs/energy/shared_energy.py @@ -1,7 +1,5 @@ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline from dodal.device_manager import DeviceManager - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.devices.i10.i10_setting_data import I10Grating from dodal.devices.pgm import PlaneGratingMonochromator from dodal.log import set_beamline as set_log_beamline diff --git a/src/dodal/devices/i10/i10_devices_configs/insertion_devices/shared_insertion_devices.py b/src/dodal/devices/i10/i10_devices_configs/insertion_devices/shared_insertion_devices.py index 3f996feb56..4a2f01b63f 100644 --- a/src/dodal/devices/i10/i10_devices_configs/insertion_devices/shared_insertion_devices.py +++ b/src/dodal/devices/i10/i10_devices_configs/insertion_devices/shared_insertion_devices.py @@ -17,8 +17,6 @@ I10Apple2Controller, LinearArbitraryAngle, ) - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.devices.insertion_device import ( BeamEnergy, InsertionDeviceEnergy, diff --git a/src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_i.py b/src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_i.py index a2c189402f..14436d7d19 100644 --- a/src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_i.py +++ b/src/dodal/devices/i10/i10_devices_configs/mirrors/mirror_i.py @@ -3,8 +3,6 @@ from dodal.devices.i10 import ( PiezoMirror, ) - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.log import set_beamline as set_log_beamline from dodal.utils import BeamlinePrefix, get_beamline_name diff --git a/src/dodal/devices/i10/i10_devices_configs/mirrors/shared_mirrors.py b/src/dodal/devices/i10/i10_devices_configs/mirrors/shared_mirrors.py index 89bbd6f23d..773bf14bd8 100644 --- a/src/dodal/devices/i10/i10_devices_configs/mirrors/shared_mirrors.py +++ b/src/dodal/devices/i10/i10_devices_configs/mirrors/shared_mirrors.py @@ -3,8 +3,6 @@ from dodal.devices.i10 import ( PiezoMirror, ) - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.devices.synchrotron import Synchrotron from dodal.log import set_beamline as set_log_beamline from dodal.utils import BeamlinePrefix, get_beamline_name diff --git a/src/dodal/devices/i10/i10_devices_configs/slits/shared_slits.py b/src/dodal/devices/i10/i10_devices_configs/slits/shared_slits.py index 169937322e..871ed47772 100644 --- a/src/dodal/devices/i10/i10_devices_configs/slits/shared_slits.py +++ b/src/dodal/devices/i10/i10_devices_configs/slits/shared_slits.py @@ -3,8 +3,6 @@ from dodal.devices.i10 import ( I10SharedSlits, ) - -# Imports taken from i10 while we work out how to deal with split end stations from dodal.log import set_beamline as set_log_beamline from dodal.utils import BeamlinePrefix, get_beamline_name From 168f0a28e1379320911da690e3ef6d7fb5301da2 Mon Sep 17 00:00:00 2001 From: Relm-Arrowny Date: Mon, 26 Jan 2026 17:14:19 +0000 Subject: [PATCH 5/5] add pin_hole --- src/dodal/beamlines/i10.py | 2 ++ src/dodal/devices/i10/i10_devices_configs/__init__.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/dodal/beamlines/i10.py b/src/dodal/beamlines/i10.py index f6c2d8926e..2925023c57 100644 --- a/src/dodal/beamlines/i10.py +++ b/src/dodal/beamlines/i10.py @@ -9,6 +9,7 @@ devices_idu, devices_mirror_i, devices_pa_stage, + devices_pin_hole, devices_rasor_temperature_controller, devices_sample_stage, devices_scaler_cards, @@ -57,6 +58,7 @@ """Rasor devices""" """Stage devices""" +devices.include(devices_pin_hole) devices.include(devices_det_slits) devices.include(devices_diffractometer) devices.include(devices_pa_stage) diff --git a/src/dodal/devices/i10/i10_devices_configs/__init__.py b/src/dodal/devices/i10/i10_devices_configs/__init__.py index 4dc414bc5a..6cbefb2c8b 100644 --- a/src/dodal/devices/i10/i10_devices_configs/__init__.py +++ b/src/dodal/devices/i10/i10_devices_configs/__init__.py @@ -19,11 +19,13 @@ devices_det_slits, devices_diffractometer, devices_pa_stage, + devices_pin_hole, devices_sample_stage, ) from .slits import devices_shared_slit, devices_slit_i, devices_slit_j __all__ = [ + "devices_pin_hole", "devices_mirror_i", "devices_shared_mirror", "devices_shared_slit",