Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
224 changes: 63 additions & 161 deletions src/dodal/beamlines/i10.py
Original file line number Diff line number Diff line change
@@ -1,180 +1,82 @@
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.i10_devices_configs 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_pin_hole,
devices_rasor_temperature_controller,
devices_sample_stage,
devices_scaler_cards,
devices_shared_diagnostics,
devices_shared_mirror,
devices_shared_slit,
devices_slit_i,
devices_sr570,
devices_sr570_det,
pgm_device,
)
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.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 = DeviceManager()
devices.include(i10_shared_devices)
"""Mirrors"""

"""------------------shared-----------------------------------------"""
"""Insertion Devices"""

@devices.factory()
def focusing_mirror() -> PiezoMirror:
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")


"""Optic slits"""
devices.include(devices_idd)
devices.include(devices_idu)

"""Mirrors"""
devices.include(devices_shared_mirror)

@devices.factory()
def slits() -> I10Slits:
return I10Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-")


@devices.factory()
def slits_current() -> I10SlitsDrainCurrent:
return I10SlitsDrainCurrent(prefix=f"{PREFIX.beamline_prefix}-")

"""Slits"""
devices.include(devices_shared_slit)

"""Diagnostics"""
devices.include(devices_shared_diagnostics)

"""Energy"""
devices.include(pgm_device)

@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")


@devices.factory()
def diffractometer() -> Diffractometer:
return Diffractometer(prefix="ME01D-MO-DIFF-01:")

"""------------------i10 i devices-----------------------------------------"""
"""Mirrors"""
devices.include(devices_mirror_i)

@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,
)

"""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_pin_hole)
devices.include(devices_det_slits)
devices.include(devices_diffractometer)
devices.include(devices_pa_stage)
devices.include(devices_sample_stage)
"""Temperature controller"""
devices.include(devices_rasor_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

"""---------------------------------------------------------------------"""
65 changes: 37 additions & 28 deletions src/dodal/beamlines/i10_1.py
Original file line number Diff line number Diff line change
@@ -1,38 +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.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")
from dodal.devices.i10.i10_devices_configs 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,
)

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)
52 changes: 52 additions & 0 deletions src/dodal/devices/i10/i10_devices_configs/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
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_mirror_j, devices_shared_mirror
from .rasor.controllers import devices_rasor_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_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",
"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_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",
]
Original file line number Diff line number Diff line change
@@ -0,0 +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",
]
Loading