dls-dodal 1.68.0__py3-none-any.whl → 2.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/METADATA +1 -31
- dls_dodal-2.0.0.dist-info/RECORD +354 -0
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/WHEEL +1 -1
- dodal/_version.py +2 -2
- dodal/beamlines/__init__.py +10 -17
- dodal/beamlines/adsim.py +40 -33
- dodal/beamlines/b01_1.py +11 -0
- dodal/beamlines/b07.py +17 -21
- dodal/beamlines/b07_1.py +20 -22
- dodal/beamlines/b07_shared.py +12 -0
- dodal/beamlines/b16.py +1 -1
- dodal/beamlines/b21.py +15 -6
- dodal/beamlines/i02_1.py +17 -45
- dodal/beamlines/i02_2.py +6 -12
- dodal/beamlines/i03.py +8 -5
- dodal/beamlines/i03_supervisor.py +19 -0
- dodal/beamlines/i04.py +87 -184
- dodal/beamlines/i05.py +9 -39
- dodal/beamlines/i05_1.py +4 -13
- dodal/beamlines/i05_shared.py +51 -0
- dodal/beamlines/i06_1.py +26 -0
- dodal/beamlines/{i06.py → i06_shared.py} +25 -14
- dodal/beamlines/i07.py +14 -16
- dodal/beamlines/i09.py +76 -29
- dodal/beamlines/i09_1.py +25 -56
- dodal/beamlines/i09_1_shared.py +61 -0
- dodal/beamlines/i09_2.py +6 -100
- dodal/beamlines/i09_2_shared.py +110 -0
- dodal/beamlines/i10.py +60 -54
- dodal/beamlines/i10_1.py +99 -10
- dodal/beamlines/{i10_optics.py → i10_shared.py} +80 -66
- dodal/beamlines/i11.py +31 -18
- dodal/beamlines/i13_1.py +1 -1
- dodal/beamlines/i15.py +6 -6
- dodal/beamlines/i15_1.py +6 -6
- dodal/beamlines/i16.py +11 -0
- dodal/beamlines/i17.py +37 -28
- dodal/beamlines/i18.py +3 -4
- dodal/beamlines/i19_1.py +95 -34
- dodal/beamlines/i19_2.py +68 -52
- dodal/beamlines/i19_optics.py +26 -13
- dodal/beamlines/i20_1.py +17 -11
- dodal/beamlines/i21.py +44 -29
- dodal/beamlines/i22.py +19 -4
- dodal/beamlines/i23.py +20 -27
- dodal/beamlines/i24.py +64 -113
- dodal/beamlines/k07.py +99 -5
- dodal/beamlines/p38.py +3 -3
- dodal/beamlines/p60.py +35 -14
- dodal/beamlines/p99.py +16 -15
- dodal/beamlines/training_rig.py +20 -12
- dodal/cli.py +36 -2
- dodal/common/__init__.py +2 -1
- dodal/common/beamlines/beamline_parameters.py +2 -1
- dodal/common/beamlines/beamline_utils.py +11 -9
- dodal/common/beamlines/commissioning_mode.py +6 -3
- dodal/common/coordination.py +12 -14
- dodal/common/crystal_metadata.py +5 -8
- dodal/common/device_utils.py +4 -3
- dodal/common/maths.py +87 -19
- dodal/common/udc_directory_provider.py +13 -8
- dodal/common/visit.py +18 -21
- dodal/common/watcher_utils.py +13 -12
- dodal/device_manager.py +94 -54
- dodal/devices/aperturescatterguard.py +26 -27
- dodal/devices/areadetector/plugins/cam.py +1 -3
- dodal/devices/areadetector/plugins/mjpg.py +6 -5
- dodal/devices/attenuator/attenuator.py +12 -11
- dodal/devices/beamlines/b07/__init__.py +3 -0
- dodal/devices/{b07_1 → beamlines/b07_1}/__init__.py +2 -2
- dodal/devices/{b07_1 → beamlines/b07_1}/ccmc.py +5 -10
- dodal/devices/{b16 → beamlines/b16}/detector.py +2 -3
- dodal/devices/{i02_1 → beamlines/i02_1}/fast_grid_scan.py +2 -3
- dodal/devices/{i02_1 → beamlines/i02_1}/sample_motors.py +1 -1
- dodal/devices/{i03 → beamlines/i03}/beamsize.py +11 -7
- dodal/devices/{i03 → beamlines/i03}/dcm.py +1 -2
- dodal/devices/{i03 → beamlines/i03}/undulator_dcm.py +4 -5
- dodal/devices/beamlines/i04/beam_centre.py +151 -0
- dodal/devices/{i04 → beamlines/i04}/beamsize.py +11 -7
- dodal/devices/beamlines/i04/max_pixel.py +25 -0
- dodal/devices/{i04 → beamlines/i04}/murko_results.py +23 -8
- dodal/devices/{i04 → beamlines/i04}/transfocator.py +10 -15
- dodal/devices/beamlines/i05/__init__.py +3 -0
- dodal/devices/beamlines/i06_shared/__init__.py +3 -0
- dodal/devices/beamlines/i06_shared/i06_enum.py +7 -0
- dodal/devices/{i07 → beamlines/i07}/dcm.py +2 -3
- dodal/devices/{i07 → beamlines/i07}/id.py +8 -9
- dodal/devices/beamlines/i09/__init__.py +3 -0
- dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/hard_energy.py +5 -6
- dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/hard_undulator_functions.py +19 -16
- dodal/devices/{i10 → beamlines/i10}/diagnostics.py +4 -3
- dodal/devices/{i10 → beamlines/i10}/i10_apple2.py +37 -51
- dodal/devices/{i10 → beamlines/i10}/rasor/rasor_current_amp.py +1 -24
- dodal/devices/{i10 → beamlines/i10}/rasor/rasor_motors.py +2 -2
- dodal/devices/{i10 → beamlines/i10}/slits.py +5 -3
- dodal/devices/beamlines/i10_1/__init__.py +9 -0
- dodal/devices/beamlines/i10_1/electromagnet/magnet.py +16 -0
- dodal/devices/beamlines/i10_1/electromagnet/stages.py +14 -0
- dodal/devices/beamlines/i10_1/scaler_cards.py +13 -0
- dodal/devices/{i11 → beamlines/i11}/cyberstar_blower.py +1 -1
- dodal/devices/{i11 → beamlines/i11}/diff_stages.py +4 -6
- dodal/devices/{i11 → beamlines/i11}/mythen.py +3 -4
- dodal/devices/{i11 → beamlines/i11}/nx100robot.py +6 -6
- dodal/devices/{i11 → beamlines/i11}/spinner.py +1 -1
- dodal/devices/{i13_1 → beamlines/i13_1}/merlin.py +1 -1
- dodal/devices/{i15 → beamlines/i15}/dcm.py +1 -2
- dodal/devices/{i15 → beamlines/i15}/focussing_mirror.py +5 -5
- dodal/devices/{i15 → beamlines/i15}/jack.py +2 -2
- dodal/devices/{i15 → beamlines/i15}/multilayer_mirror.py +1 -1
- dodal/devices/{i17 → beamlines/i17}/i17_apple2.py +16 -22
- dodal/devices/{i18 → beamlines/i18}/diode.py +1 -1
- dodal/devices/{i19 → beamlines/i19}/access_controlled/attenuator_motor_squad.py +12 -8
- dodal/devices/{i19 → beamlines/i19}/access_controlled/blueapi_device.py +16 -15
- dodal/devices/beamlines/i19/access_controlled/piezo_control.py +72 -0
- dodal/devices/{i19 → beamlines/i19}/access_controlled/shutter.py +11 -9
- dodal/devices/{i19 → beamlines/i19}/backlight.py +3 -1
- dodal/devices/{i19 → beamlines/i19}/mapt_configuration.py +2 -1
- dodal/devices/{i19 → beamlines/i19}/pin_col_stages.py +11 -8
- dodal/devices/beamlines/i19/pin_tip.py +32 -0
- dodal/devices/beamlines/i21/__init__.py +3 -0
- dodal/devices/{i22 → beamlines/i22}/dcm.py +1 -2
- dodal/devices/{i22 → beamlines/i22}/fswitch.py +1 -3
- dodal/devices/{i22 → beamlines/i22}/nxsas.py +5 -4
- dodal/devices/{i24 → beamlines/i24}/beam_center.py +1 -1
- dodal/devices/{i24 → beamlines/i24}/beamstop.py +2 -2
- dodal/devices/{i24 → beamlines/i24}/commissioning_jungfrau.py +12 -12
- dodal/devices/{i24 → beamlines/i24}/dcm.py +1 -3
- dodal/devices/{i24 → beamlines/i24}/dual_backlight.py +3 -3
- dodal/devices/{i24 → beamlines/i24}/pmac.py +9 -7
- dodal/devices/{p60 → beamlines/p60}/lab_xray_source.py +1 -1
- dodal/devices/beamlines/p99/__init__.py +0 -0
- dodal/devices/{p99 → beamlines/p99}/andor2_point.py +11 -15
- dodal/devices/bimorph_mirror.py +22 -20
- dodal/devices/collimation_table.py +3 -2
- dodal/devices/common_dcm.py +30 -20
- dodal/devices/controllers.py +2 -2
- dodal/devices/cryostream.py +8 -0
- dodal/devices/current_amplifiers/current_amplifier.py +16 -18
- dodal/devices/current_amplifiers/current_amplifier_detector.py +9 -10
- dodal/devices/current_amplifiers/femto.py +8 -9
- dodal/devices/current_amplifiers/sr570.py +16 -16
- dodal/devices/current_amplifiers/struck_scaler_counter.py +5 -5
- dodal/devices/detector/det_resolution.py +9 -8
- dodal/devices/detector/detector.py +4 -2
- dodal/devices/diamond_filter.py +3 -4
- dodal/devices/eiger.py +32 -17
- dodal/devices/eiger_odin.py +1 -1
- dodal/devices/electron_analyser/base/__init__.py +3 -3
- dodal/devices/electron_analyser/base/base_controller.py +32 -21
- dodal/devices/electron_analyser/base/base_detector.py +15 -20
- dodal/devices/electron_analyser/base/base_driver_io.py +39 -46
- dodal/devices/electron_analyser/base/base_enums.py +0 -5
- dodal/devices/electron_analyser/base/base_region.py +29 -31
- dodal/devices/electron_analyser/base/base_util.py +18 -16
- dodal/devices/electron_analyser/base/energy_sources.py +35 -40
- dodal/devices/electron_analyser/specs/specs_detector.py +7 -6
- dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py +7 -6
- dodal/devices/eurotherm.py +3 -2
- dodal/devices/fast_grid_scan.py +31 -34
- dodal/devices/fast_shutter.py +125 -39
- dodal/devices/flux.py +1 -1
- dodal/devices/focusing_mirror.py +29 -11
- dodal/devices/hutch_shutter.py +6 -6
- dodal/devices/insertion_device/__init__.py +20 -8
- dodal/devices/insertion_device/apple2_controller.py +371 -0
- dodal/devices/insertion_device/apple2_undulator.py +184 -587
- dodal/devices/insertion_device/apple_knot_controller.py +222 -0
- dodal/devices/insertion_device/energy.py +161 -0
- dodal/devices/insertion_device/energy_motor_lookup.py +21 -28
- dodal/devices/insertion_device/lookup_table_models.py +47 -52
- dodal/devices/insertion_device/polarisation.py +36 -0
- dodal/devices/ipin.py +1 -1
- dodal/devices/linkam3.py +7 -5
- dodal/devices/motors.py +107 -19
- dodal/devices/mx_phase1/beamstop.py +2 -4
- dodal/devices/oav/oav_calculations.py +20 -13
- dodal/devices/oav/oav_detector.py +92 -22
- dodal/devices/oav/oav_parameters.py +4 -9
- dodal/devices/oav/oav_to_redis_forwarder.py +22 -18
- dodal/devices/oav/pin_image_recognition/__init__.py +4 -6
- dodal/devices/oav/pin_image_recognition/manual_test.py +1 -2
- dodal/devices/oav/pin_image_recognition/utils.py +30 -32
- dodal/devices/oav/snapshots/grid_overlay.py +10 -9
- dodal/devices/oav/snapshots/snapshot_image_processing.py +15 -13
- dodal/devices/oav/utils.py +20 -6
- dodal/devices/p45.py +3 -9
- dodal/devices/pgm.py +8 -14
- dodal/devices/pressure_jump_cell.py +93 -32
- dodal/devices/qbpm.py +1 -3
- dodal/devices/robot.py +45 -20
- dodal/devices/s4_slit_gaps.py +1 -1
- dodal/devices/selectable_source.py +41 -0
- dodal/devices/slits.py +2 -5
- dodal/devices/smargon.py +2 -3
- dodal/devices/temperture_controller/lakeshore/lakeshore.py +38 -64
- dodal/devices/temperture_controller/lakeshore/lakeshore_io.py +21 -35
- dodal/devices/tetramm.py +7 -7
- dodal/devices/turbo_slit.py +8 -7
- dodal/devices/undulator.py +42 -56
- dodal/devices/util/adjuster_plans.py +2 -3
- dodal/devices/util/epics_util.py +10 -10
- dodal/devices/util/lookup_tables.py +17 -18
- dodal/devices/v2f.py +2 -3
- dodal/devices/watsonmarlow323_pump.py +1 -1
- dodal/devices/xbpm_feedback.py +3 -2
- dodal/devices/xspress3/xspress3.py +8 -11
- dodal/devices/xspress3/xspress3_channel.py +3 -6
- dodal/devices/zebra/zebra.py +21 -7
- dodal/devices/zebra/zebra_constants_mapping.py +12 -7
- dodal/devices/zebra/zebra_controlled_shutter.py +2 -1
- dodal/devices/zocalo/zocalo_interaction.py +14 -14
- dodal/devices/zocalo/zocalo_results.py +33 -33
- dodal/log.py +23 -20
- dodal/plan_stubs/check_topup.py +15 -15
- dodal/plan_stubs/data_session.py +6 -6
- dodal/plan_stubs/motor_utils.py +22 -18
- dodal/plan_stubs/pressure_jump_cell.py +18 -0
- dodal/plan_stubs/wrapped.py +40 -55
- dodal/plans/bimorph.py +63 -52
- dodal/plans/configure_arm_trigger_and_disarm_detector.py +0 -1
- dodal/plans/device_setup_plans/__init__.py +5 -0
- dodal/plans/device_setup_plans/setup_pin_tip_params.py +63 -0
- dodal/plans/preprocessors/verify_undulator_gap.py +10 -8
- dodal/plans/spec_path.py +3 -5
- dodal/plans/verify_undulator_gap.py +1 -2
- dodal/plans/wrapped.py +4 -3
- dodal/testing/__init__.py +0 -0
- dodal/testing/electron_analyser/device_factory.py +5 -7
- dodal/testing/fixtures/devices/apple2.py +38 -0
- dodal/testing/fixtures/run_engine.py +3 -7
- dodal/testing/fixtures/utils.py +1 -2
- dodal/utils.py +60 -58
- dls_dodal-1.68.0.dist-info/RECORD +0 -330
- dodal/beamline_specific_utils/i05_shared.py +0 -14
- dodal/devices/b07/__init__.py +0 -3
- dodal/devices/i04/max_pixel.py +0 -38
- dodal/devices/i05/__init__.py +0 -3
- dodal/devices/i09/__init__.py +0 -3
- dodal/devices/i21/__init__.py +0 -5
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/licenses/LICENSE +0 -0
- {dls_dodal-1.68.0.dist-info → dls_dodal-2.0.0.dist-info}/top_level.txt +0 -0
- /dodal/{beamline_specific_utils → devices/beamlines}/__init__.py +0 -0
- /dodal/devices/{b07 → beamlines/b07}/enums.py +0 -0
- /dodal/devices/{b07_1 → beamlines/b07_1}/enums.py +0 -0
- /dodal/devices/{b16 → beamlines/b16}/__init__.py +0 -0
- /dodal/devices/{i02_1 → beamlines/i02_1}/__init__.py +0 -0
- /dodal/devices/{i02_2 → beamlines/i02_2}/__init__.py +0 -0
- /dodal/devices/{i03 → beamlines/i03}/__init__.py +0 -0
- /dodal/devices/{i03 → beamlines/i03}/constants.py +0 -0
- /dodal/devices/{i04 → beamlines/i04}/__init__.py +0 -0
- /dodal/devices/{i04 → beamlines/i04}/constants.py +0 -0
- /dodal/devices/{i05 → beamlines/i05}/enums.py +0 -0
- /dodal/devices/{i07 → beamlines/i07}/__init__.py +0 -0
- /dodal/devices/{i09 → beamlines/i09}/enums.py +0 -0
- /dodal/devices/{i09_1 → beamlines/i09_1}/__init__.py +0 -0
- /dodal/devices/{i09_1 → beamlines/i09_1}/enums.py +0 -0
- /dodal/devices/{i09_1_shared → beamlines/i09_1_shared}/__init__.py +0 -0
- /dodal/devices/{i09_2_shared → beamlines/i09_2_shared}/__init__.py +0 -0
- /dodal/devices/{i09_2_shared → beamlines/i09_2_shared}/i09_apple2.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/__init__.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/i10_setting_data.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/mirrors.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/rasor/__init__.py +0 -0
- /dodal/devices/{i10 → beamlines/i10}/rasor/rasor_scaler_cards.py +0 -0
- /dodal/devices/{i11 → beamlines/i10_1/electromagnet}/__init__.py +0 -0
- /dodal/devices/{i13_1 → beamlines/i11}/__init__.py +0 -0
- /dodal/devices/{i15 → beamlines/i13_1}/__init__.py +0 -0
- /dodal/devices/{i13_1 → beamlines/i13_1}/merlin_controller.py +0 -0
- /dodal/devices/{i17 → beamlines/i15}/__init__.py +0 -0
- /dodal/devices/{i15 → beamlines/i15}/laue.py +0 -0
- /dodal/devices/{i15 → beamlines/i15}/motors.py +0 -0
- /dodal/devices/{i15 → beamlines/i15}/rail.py +0 -0
- /dodal/devices/{i18 → beamlines/i17}/__init__.py +0 -0
- /dodal/devices/{i19 → beamlines/i18}/__init__.py +0 -0
- /dodal/devices/{i18 → beamlines/i18}/kb_mirror.py +0 -0
- /dodal/devices/{i19/access_controlled → beamlines/i19}/__init__.py +0 -0
- /dodal/devices/{i20_1 → beamlines/i19/access_controlled}/__init__.py +0 -0
- /dodal/devices/{i19 → beamlines/i19}/access_controlled/hutch_access.py +0 -0
- /dodal/devices/{i19 → beamlines/i19}/beamstop.py +0 -0
- /dodal/devices/{i19 → beamlines/i19}/diffractometer.py +0 -0
- /dodal/devices/{i22 → beamlines/i20_1}/__init__.py +0 -0
- /dodal/devices/{i21 → beamlines/i21}/enums.py +0 -0
- /dodal/devices/{i24 → beamlines/i22}/__init__.py +0 -0
- /dodal/devices/{p99 → beamlines/i24}/__init__.py +0 -0
- /dodal/devices/{i24 → beamlines/i24}/aperture.py +0 -0
- /dodal/devices/{i24 → beamlines/i24}/focus_mirrors.py +0 -0
- /dodal/devices/{i24 → beamlines/i24}/vgonio.py +0 -0
- /dodal/devices/{p60 → beamlines/p60}/__init__.py +0 -0
- /dodal/devices/{p60 → beamlines/p60}/enums.py +0 -0
- /dodal/devices/{p99 → beamlines/p99}/sample_stage.py +0 -0
- /dodal/devices/insertion_device/{id_enum.py → enum.py} +0 -0
dodal/beamlines/i04.py
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
from ophyd_async.core import Reference
|
|
2
2
|
|
|
3
3
|
from dodal.common.beamlines.beamline_parameters import get_beamline_parameters
|
|
4
|
-
from dodal.common.beamlines.beamline_utils import (
|
|
5
|
-
device_factory,
|
|
6
|
-
device_instantiation,
|
|
7
|
-
)
|
|
8
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
+
from dodal.device_manager import DeviceManager
|
|
9
6
|
from dodal.devices.aperturescatterguard import (
|
|
10
7
|
AperturePosition,
|
|
11
8
|
ApertureScatterguard,
|
|
@@ -14,22 +11,25 @@ from dodal.devices.aperturescatterguard import (
|
|
|
14
11
|
from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
15
12
|
from dodal.devices.backlight import Backlight
|
|
16
13
|
from dodal.devices.baton import Baton
|
|
17
|
-
from dodal.devices.
|
|
14
|
+
from dodal.devices.beamlines.i03.dcm import DCM
|
|
15
|
+
from dodal.devices.beamlines.i04.beam_centre import CentreEllipseMethod
|
|
16
|
+
from dodal.devices.beamlines.i04.beamsize import Beamsize
|
|
17
|
+
from dodal.devices.beamlines.i04.constants import RedisConstants
|
|
18
|
+
from dodal.devices.beamlines.i04.max_pixel import MaxPixel
|
|
19
|
+
from dodal.devices.beamlines.i04.murko_results import MurkoResultsDevice
|
|
20
|
+
from dodal.devices.beamlines.i04.transfocator import Transfocator
|
|
18
21
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
19
22
|
from dodal.devices.diamond_filter import DiamondFilter, I04Filters
|
|
20
23
|
from dodal.devices.eiger import EigerDetector
|
|
21
24
|
from dodal.devices.fast_grid_scan import ZebraFastGridScanThreeD
|
|
22
25
|
from dodal.devices.flux import Flux
|
|
23
|
-
from dodal.devices.i03.dcm import DCM
|
|
24
|
-
from dodal.devices.i04.beamsize import Beamsize
|
|
25
|
-
from dodal.devices.i04.constants import RedisConstants
|
|
26
|
-
from dodal.devices.i04.max_pixel import MaxPixel
|
|
27
|
-
from dodal.devices.i04.murko_results import MurkoResultsDevice
|
|
28
|
-
from dodal.devices.i04.transfocator import Transfocator
|
|
29
26
|
from dodal.devices.ipin import IPin
|
|
30
27
|
from dodal.devices.motors import XYZStage
|
|
31
28
|
from dodal.devices.mx_phase1.beamstop import Beamstop
|
|
32
|
-
from dodal.devices.oav.oav_detector import
|
|
29
|
+
from dodal.devices.oav.oav_detector import (
|
|
30
|
+
OAVBeamCentrePV,
|
|
31
|
+
ZoomControllerWithBeamCentres,
|
|
32
|
+
)
|
|
33
33
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
34
34
|
from dodal.devices.oav.oav_to_redis_forwarder import OAVToRedisForwarder
|
|
35
35
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
@@ -67,129 +67,87 @@ I04_ZEBRA_MAPPING = ZebraMapping(
|
|
|
67
67
|
outputs=(ZebraTTLOutputs(TTL_DETECTOR=1, TTL_FAST_SHUTTER=2, TTL_XSPRESS3=3)),
|
|
68
68
|
sources=ZebraSources(),
|
|
69
69
|
)
|
|
70
|
-
|
|
71
70
|
PREFIX = BeamlinePrefix(BL)
|
|
72
71
|
|
|
72
|
+
devices = DeviceManager()
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
|
|
75
|
+
@devices.factory()
|
|
75
76
|
def smargon() -> Smargon:
|
|
76
|
-
"""Get the i04 Smargon device, instantiate it if it hasn't already been.
|
|
77
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
78
|
-
"""
|
|
79
77
|
return Smargon(f"{PREFIX.beamline_prefix}-MO-SGON-01:")
|
|
80
78
|
|
|
81
79
|
|
|
82
|
-
@
|
|
80
|
+
@devices.factory()
|
|
83
81
|
def gonio_positioner() -> XYZStage:
|
|
84
|
-
"""Get the i04 lower_gonio_stages device, instantiate it if it hasn't already been.
|
|
85
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
86
|
-
"""
|
|
87
82
|
return XYZStage(
|
|
88
83
|
f"{PREFIX.beamline_prefix}-MO-GONIO-01:",
|
|
89
84
|
"lower_gonio_stages",
|
|
90
85
|
)
|
|
91
86
|
|
|
92
87
|
|
|
93
|
-
@
|
|
88
|
+
@devices.factory()
|
|
94
89
|
def sample_delivery_system() -> XYZStage:
|
|
95
|
-
"""Get the i04 sample_delivery_system device, instantiate it if it hasn't already been.
|
|
96
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
97
|
-
"""
|
|
98
90
|
return XYZStage(f"{PREFIX.beamline_prefix}-MO-SDE-01:")
|
|
99
91
|
|
|
100
92
|
|
|
101
|
-
@
|
|
93
|
+
@devices.factory()
|
|
102
94
|
def ipin() -> IPin:
|
|
103
|
-
"""Get the i04 ipin device, instantiate it if it hasn't already been.
|
|
104
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
105
|
-
"""
|
|
106
95
|
return IPin(f"{PREFIX.beamline_prefix}-EA-PIN-01:")
|
|
107
96
|
|
|
108
97
|
|
|
109
|
-
@
|
|
98
|
+
@devices.factory()
|
|
110
99
|
def beamstop() -> Beamstop:
|
|
111
|
-
"""Get the i04 beamstop device, instantiate it if it hasn't already been.
|
|
112
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
113
|
-
"""
|
|
114
100
|
return Beamstop(
|
|
115
101
|
f"{PREFIX.beamline_prefix}-MO-BS-01:",
|
|
116
102
|
beamline_parameters=get_beamline_parameters(),
|
|
117
103
|
)
|
|
118
104
|
|
|
119
105
|
|
|
120
|
-
@
|
|
106
|
+
@devices.factory()
|
|
121
107
|
def sample_shutter() -> ZebraShutter:
|
|
122
|
-
"""Get the i04 sample shutter device, instantiate it if it hasn't already been.
|
|
123
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
124
|
-
"""
|
|
125
108
|
return ZebraShutter(f"{PREFIX.beamline_prefix}-EA-SHTR-01:")
|
|
126
109
|
|
|
127
110
|
|
|
128
|
-
@
|
|
111
|
+
@devices.factory()
|
|
129
112
|
def attenuator() -> BinaryFilterAttenuator:
|
|
130
|
-
"""Get the i04 attenuator device, instantiate it if it hasn't already been.
|
|
131
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
132
|
-
"""
|
|
133
113
|
return BinaryFilterAttenuator(
|
|
134
114
|
prefix=f"{PREFIX.beamline_prefix}-EA-ATTN-01:",
|
|
135
115
|
num_filters=16,
|
|
136
116
|
)
|
|
137
117
|
|
|
138
118
|
|
|
139
|
-
@
|
|
119
|
+
@devices.factory()
|
|
140
120
|
def transfocator() -> Transfocator:
|
|
141
|
-
"""Get the i04 transfocator device, instantiate it if it hasn't already been.
|
|
142
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
143
|
-
"""
|
|
144
121
|
return Transfocator(f"{PREFIX.beamline_prefix}-MO-FSWT-01:")
|
|
145
122
|
|
|
146
123
|
|
|
147
|
-
@
|
|
124
|
+
@devices.factory()
|
|
148
125
|
def baton() -> Baton:
|
|
149
|
-
"""Get the i04 baton device, instantiate it if it hasn't already been.
|
|
150
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
151
|
-
"""
|
|
152
126
|
return Baton(f"{PREFIX.beamline_prefix}-CS-BATON-01:")
|
|
153
127
|
|
|
154
128
|
|
|
155
|
-
@
|
|
156
|
-
def xbpm_feedback() -> XBPMFeedback:
|
|
157
|
-
""
|
|
158
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
159
|
-
"""
|
|
160
|
-
return XBPMFeedback(f"{PREFIX.beamline_prefix}-EA-FDBK-01:", baton=baton())
|
|
129
|
+
@devices.factory()
|
|
130
|
+
def xbpm_feedback(baton: Baton) -> XBPMFeedback:
|
|
131
|
+
return XBPMFeedback(f"{PREFIX.beamline_prefix}-EA-FDBK-01:", baton=baton)
|
|
161
132
|
|
|
162
133
|
|
|
163
|
-
@
|
|
134
|
+
@devices.factory()
|
|
164
135
|
def flux() -> Flux:
|
|
165
|
-
"""Get the i04 flux device, instantiate it if it hasn't already been.
|
|
166
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
167
|
-
"""
|
|
168
136
|
return Flux(f"{PREFIX.beamline_prefix}-MO-FLUX-01:")
|
|
169
137
|
|
|
170
138
|
|
|
171
|
-
@
|
|
139
|
+
@devices.factory()
|
|
172
140
|
def dcm() -> DCM:
|
|
173
|
-
"""Get the i04 DCM device, instantiate it if it hasn't already been.
|
|
174
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
175
|
-
"""
|
|
176
141
|
return DCM(f"{PREFIX.beamline_prefix}-MO-DCM-01:")
|
|
177
142
|
|
|
178
143
|
|
|
179
|
-
@
|
|
144
|
+
@devices.factory()
|
|
180
145
|
def backlight() -> Backlight:
|
|
181
|
-
"""Get the i04 backlight device, instantiate it if it hasn't already been.
|
|
182
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
183
|
-
"""
|
|
184
146
|
return Backlight(PREFIX.beamline_prefix)
|
|
185
147
|
|
|
186
148
|
|
|
187
|
-
@
|
|
149
|
+
@devices.factory()
|
|
188
150
|
def aperture_scatterguard() -> ApertureScatterguard:
|
|
189
|
-
"""Get the i04 aperture and scatterguard device, instantiate it if it hasn't already
|
|
190
|
-
been. If this is called when already instantiated in i04, it will return the existing
|
|
191
|
-
object.
|
|
192
|
-
"""
|
|
193
151
|
params = get_beamline_parameters()
|
|
194
152
|
return ApertureScatterguard(
|
|
195
153
|
aperture_prefix=f"{PREFIX.beamline_prefix}-MO-MAPT-01:",
|
|
@@ -199,96 +157,59 @@ def aperture_scatterguard() -> ApertureScatterguard:
|
|
|
199
157
|
)
|
|
200
158
|
|
|
201
159
|
|
|
202
|
-
@
|
|
203
|
-
def eiger(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
If called with params, will update those params to the Eiger object.
|
|
207
|
-
"""
|
|
208
|
-
|
|
209
|
-
def set_params(eiger: EigerDetector):
|
|
210
|
-
if params is not None:
|
|
211
|
-
eiger.set_detector_parameters(params)
|
|
212
|
-
|
|
213
|
-
return device_instantiation(
|
|
214
|
-
device_factory=EigerDetector,
|
|
215
|
-
name="eiger",
|
|
216
|
-
prefix="-EA-EIGER-01:",
|
|
217
|
-
wait=False,
|
|
218
|
-
fake=mock,
|
|
219
|
-
post_create=set_params,
|
|
220
|
-
)
|
|
160
|
+
@devices.v1_init(EigerDetector, prefix="BL04I-EA-EIGER-01:", wait=False)
|
|
161
|
+
def eiger(eiger: EigerDetector) -> EigerDetector:
|
|
162
|
+
eiger.detector_id = 78
|
|
163
|
+
return eiger
|
|
221
164
|
|
|
222
165
|
|
|
223
|
-
@
|
|
166
|
+
@devices.factory()
|
|
224
167
|
def zebra_fast_grid_scan() -> ZebraFastGridScanThreeD:
|
|
225
|
-
""
|
|
226
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
227
|
-
"""
|
|
228
|
-
return ZebraFastGridScanThreeD(
|
|
229
|
-
prefix=f"{PREFIX.beamline_prefix}-MO-SGON-01:",
|
|
230
|
-
)
|
|
168
|
+
return ZebraFastGridScanThreeD(prefix=f"{PREFIX.beamline_prefix}-MO-SGON-01:")
|
|
231
169
|
|
|
232
170
|
|
|
233
|
-
@
|
|
171
|
+
@devices.factory()
|
|
234
172
|
def s4_slit_gaps() -> S4SlitGaps:
|
|
235
|
-
"""Get the i04 s4_slit_gaps device, instantiate it if it hasn't already been.
|
|
236
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
237
|
-
"""
|
|
238
173
|
return S4SlitGaps(f"{PREFIX.beamline_prefix}-AL-SLITS-04:")
|
|
239
174
|
|
|
240
175
|
|
|
241
|
-
@
|
|
242
|
-
def
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
176
|
+
@devices.fixture
|
|
177
|
+
def daq_configuration_path() -> str:
|
|
178
|
+
return DAQ_CONFIGURATION_PATH
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
@devices.factory()
|
|
182
|
+
def undulator(baton: Baton, daq_configuration_path: str) -> UndulatorInKeV:
|
|
246
183
|
return UndulatorInKeV(
|
|
247
184
|
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
248
|
-
id_gap_lookup_table_path="/
|
|
249
|
-
baton=baton
|
|
185
|
+
id_gap_lookup_table_path=f"{daq_configuration_path}/lookup/BeamLine_Undulator_toGap.txt",
|
|
186
|
+
baton=baton,
|
|
250
187
|
)
|
|
251
188
|
|
|
252
189
|
|
|
253
|
-
@
|
|
190
|
+
@devices.factory()
|
|
254
191
|
def synchrotron() -> Synchrotron:
|
|
255
|
-
"""Get the i04 synchrotron device, instantiate it if it hasn't already been.
|
|
256
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
257
|
-
"""
|
|
258
192
|
return Synchrotron()
|
|
259
193
|
|
|
260
194
|
|
|
261
|
-
@
|
|
195
|
+
@devices.factory()
|
|
262
196
|
def zebra() -> Zebra:
|
|
263
|
-
"""Get the i04 zebra device, instantiate it if it hasn't already been.
|
|
264
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
265
|
-
"""
|
|
266
197
|
return Zebra(
|
|
267
198
|
prefix=f"{PREFIX.beamline_prefix}-EA-ZEBRA-01:",
|
|
268
199
|
mapping=I04_ZEBRA_MAPPING,
|
|
269
200
|
)
|
|
270
201
|
|
|
271
202
|
|
|
272
|
-
@
|
|
273
|
-
skip=BL == "s04",
|
|
274
|
-
)
|
|
203
|
+
@devices.factory()
|
|
275
204
|
def oav(params: OAVConfig | None = None) -> OAVBeamCentrePV:
|
|
276
|
-
"""Get the i04 OAV device, instantiate it if it hasn't already been.
|
|
277
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
278
|
-
"""
|
|
279
205
|
return OAVBeamCentrePV(
|
|
280
206
|
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
281
207
|
config=params or OAVConfig(ZOOM_PARAMS_FILE),
|
|
282
208
|
)
|
|
283
209
|
|
|
284
210
|
|
|
285
|
-
@
|
|
286
|
-
skip=BL == "s04",
|
|
287
|
-
)
|
|
211
|
+
@devices.factory()
|
|
288
212
|
def oav_full_screen(params: OAVConfig | None = None) -> OAVBeamCentrePV:
|
|
289
|
-
"""Get the i04 OAV device, instantiate it if it hasn't already been.
|
|
290
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
291
|
-
"""
|
|
292
213
|
return OAVBeamCentrePV(
|
|
293
214
|
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
294
215
|
config=params or OAVConfig(ZOOM_PARAMS_FILE),
|
|
@@ -297,55 +218,40 @@ def oav_full_screen(params: OAVConfig | None = None) -> OAVBeamCentrePV:
|
|
|
297
218
|
)
|
|
298
219
|
|
|
299
220
|
|
|
300
|
-
@
|
|
301
|
-
skip=BL == "s04",
|
|
302
|
-
)
|
|
221
|
+
@devices.factory()
|
|
303
222
|
def detector_motion() -> DetectorMotion:
|
|
304
|
-
"""Get the i04 detector motion device, instantiate it if it hasn't already been.
|
|
305
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
306
|
-
"""
|
|
307
223
|
return DetectorMotion(
|
|
308
224
|
device_prefix=f"{PREFIX.beamline_prefix}-MO-DET-01:",
|
|
309
225
|
pmac_prefix=f"{PREFIX.beamline_prefix}-MO-PMAC-02:",
|
|
310
226
|
)
|
|
311
227
|
|
|
312
228
|
|
|
313
|
-
@
|
|
229
|
+
@devices.factory()
|
|
314
230
|
def thawer() -> Thawer:
|
|
315
|
-
"""Get the i04 thawer, instantiate it if it hasn't already been.
|
|
316
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
317
|
-
"""
|
|
318
231
|
return Thawer(f"{PREFIX.beamline_prefix}-EA-THAW-01")
|
|
319
232
|
|
|
320
233
|
|
|
321
|
-
@
|
|
234
|
+
@devices.factory()
|
|
322
235
|
def robot() -> BartRobot:
|
|
323
|
-
"""Get the i04 robot device, instantiate it if it hasn't already been.
|
|
324
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
325
|
-
"""
|
|
326
236
|
return BartRobot(f"{PREFIX.beamline_prefix}-MO-ROBOT-01:")
|
|
327
237
|
|
|
328
238
|
|
|
329
|
-
@
|
|
330
|
-
def oav_to_redis_forwarder(
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
"""
|
|
239
|
+
@devices.factory()
|
|
240
|
+
def oav_to_redis_forwarder(
|
|
241
|
+
oav: OAVBeamCentrePV, oav_full_screen: OAVBeamCentrePV
|
|
242
|
+
) -> OAVToRedisForwarder:
|
|
334
243
|
return OAVToRedisForwarder(
|
|
335
244
|
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
336
|
-
oav_roi=oav
|
|
337
|
-
oav_fs=oav_full_screen
|
|
245
|
+
oav_roi=oav,
|
|
246
|
+
oav_fs=oav_full_screen,
|
|
338
247
|
redis_host=RedisConstants.REDIS_HOST,
|
|
339
248
|
redis_password=RedisConstants.REDIS_PASSWORD,
|
|
340
249
|
redis_db=RedisConstants.MURKO_REDIS_DB,
|
|
341
250
|
)
|
|
342
251
|
|
|
343
252
|
|
|
344
|
-
@
|
|
253
|
+
@devices.factory()
|
|
345
254
|
def murko_results() -> MurkoResultsDevice:
|
|
346
|
-
"""Get the i04 OAV to redis forwarder, instantiate it if it hasn't already been.
|
|
347
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
348
|
-
"""
|
|
349
255
|
return MurkoResultsDevice(
|
|
350
256
|
redis_host=RedisConstants.REDIS_HOST,
|
|
351
257
|
redis_password=RedisConstants.REDIS_PASSWORD,
|
|
@@ -353,60 +259,57 @@ def murko_results() -> MurkoResultsDevice:
|
|
|
353
259
|
)
|
|
354
260
|
|
|
355
261
|
|
|
356
|
-
@
|
|
262
|
+
@devices.factory()
|
|
357
263
|
def diamond_filter() -> DiamondFilter[I04Filters]:
|
|
358
|
-
"""Get the i04 diamond filter device, instantiate it if it hasn't already been.
|
|
359
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
360
|
-
"""
|
|
361
264
|
return DiamondFilter[I04Filters](
|
|
362
265
|
f"{PREFIX.beamline_prefix}-MO-FLTR-01:Y", I04Filters
|
|
363
266
|
)
|
|
364
267
|
|
|
365
268
|
|
|
366
|
-
@
|
|
269
|
+
@devices.factory()
|
|
367
270
|
def zocalo() -> ZocaloResults:
|
|
368
|
-
"""Get the i04 ZocaloResults device, instantiate it if it hasn't already been.
|
|
369
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
370
|
-
"""
|
|
371
271
|
return ZocaloResults(channel="xrc.i04", results_source=ZocaloSource.CPU)
|
|
372
272
|
|
|
373
273
|
|
|
374
|
-
@
|
|
274
|
+
@devices.factory()
|
|
375
275
|
def pin_tip_detection() -> PinTipDetection:
|
|
376
|
-
"""Get the i04 pin tip detection device, instantiate it if it hasn't already been.
|
|
377
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
378
|
-
"""
|
|
379
276
|
return PinTipDetection(f"{PREFIX.beamline_prefix}-DI-OAV-01:")
|
|
380
277
|
|
|
381
278
|
|
|
382
|
-
@
|
|
383
|
-
def scintillator() -> Scintillator:
|
|
384
|
-
"""Get the i04 scintillator device, instantiate it if it hasn't already been.
|
|
385
|
-
If this is called when already instantiated in i04, it will return the existing object.
|
|
386
|
-
"""
|
|
279
|
+
@devices.factory()
|
|
280
|
+
def scintillator(aperture_scatterguard: ApertureScatterguard) -> Scintillator:
|
|
387
281
|
return Scintillator(
|
|
388
282
|
f"{PREFIX.beamline_prefix}-MO-SCIN-01:",
|
|
389
|
-
Reference(aperture_scatterguard
|
|
283
|
+
Reference(aperture_scatterguard),
|
|
390
284
|
get_beamline_parameters(),
|
|
391
285
|
)
|
|
392
286
|
|
|
393
287
|
|
|
394
|
-
@
|
|
288
|
+
@devices.factory()
|
|
395
289
|
def max_pixel() -> MaxPixel:
|
|
396
|
-
""
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
290
|
+
return MaxPixel(f"{PREFIX.beamline_prefix}-DI-OAV-01:")
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
@devices.factory()
|
|
294
|
+
def beamsize(
|
|
295
|
+
transfocator: Transfocator, aperture_scatterguard: ApertureScatterguard
|
|
296
|
+
) -> Beamsize:
|
|
297
|
+
return Beamsize(
|
|
298
|
+
transfocator,
|
|
299
|
+
aperture_scatterguard,
|
|
300
|
+
)
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
@devices.factory()
|
|
304
|
+
def beam_centre() -> CentreEllipseMethod:
|
|
305
|
+
return CentreEllipseMethod(
|
|
400
306
|
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
401
307
|
)
|
|
402
308
|
|
|
403
309
|
|
|
404
|
-
@
|
|
405
|
-
def
|
|
406
|
-
"""Get the i04
|
|
310
|
+
@devices.factory()
|
|
311
|
+
def zoom_controller() -> ZoomControllerWithBeamCentres:
|
|
312
|
+
"""Get the i04 zoom controller, instantiate it if it hasn't already been.
|
|
407
313
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
408
314
|
"""
|
|
409
|
-
return
|
|
410
|
-
transfocator=transfocator(),
|
|
411
|
-
aperture_scatterguard=aperture_scatterguard(),
|
|
412
|
-
)
|
|
315
|
+
return ZoomControllerWithBeamCentres(f"{PREFIX.beamline_prefix}-EA-OAV-01:FZOOM:")
|
dodal/beamlines/i05.py
CHANGED
|
@@ -1,49 +1,19 @@
|
|
|
1
|
-
from dodal.
|
|
2
|
-
from dodal.common.beamlines.beamline_utils import (
|
|
3
|
-
device_factory,
|
|
4
|
-
)
|
|
1
|
+
from dodal.beamlines.i05_shared import devices as i05_shared_devices
|
|
5
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
6
|
-
from dodal.
|
|
7
|
-
|
|
8
|
-
UndulatorGap,
|
|
9
|
-
UndulatorLockedPhaseAxes,
|
|
10
|
-
)
|
|
11
|
-
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
12
|
-
from dodal.devices.synchrotron import Synchrotron
|
|
3
|
+
from dodal.device_manager import DeviceManager
|
|
4
|
+
from dodal.devices.temperture_controller import Lakeshore336
|
|
13
5
|
from dodal.log import set_beamline as set_log_beamline
|
|
14
6
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
15
7
|
|
|
8
|
+
devices = DeviceManager()
|
|
9
|
+
devices.include(i05_shared_devices)
|
|
10
|
+
|
|
16
11
|
BL = get_beamline_name("i05")
|
|
17
12
|
PREFIX = BeamlinePrefix(BL)
|
|
18
13
|
set_log_beamline(BL)
|
|
19
14
|
set_utils_beamline(BL)
|
|
20
15
|
|
|
21
16
|
|
|
22
|
-
@
|
|
23
|
-
def
|
|
24
|
-
return
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
@device_factory()
|
|
28
|
-
def pgm() -> PlaneGratingMonochromator:
|
|
29
|
-
return i05_pgm()
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
@device_factory()
|
|
33
|
-
def id_gap() -> UndulatorGap:
|
|
34
|
-
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
@device_factory()
|
|
38
|
-
def id_phase() -> UndulatorLockedPhaseAxes:
|
|
39
|
-
return UndulatorLockedPhaseAxes(
|
|
40
|
-
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
41
|
-
top_outer="PL",
|
|
42
|
-
btm_inner="PU",
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
@device_factory()
|
|
47
|
-
def id() -> Apple2:
|
|
48
|
-
"""i05 insertion device."""
|
|
49
|
-
return Apple2(id_gap=id_gap(), id_phase=id_phase())
|
|
17
|
+
@devices.factory()
|
|
18
|
+
def sample_temperature_controller() -> Lakeshore336:
|
|
19
|
+
return Lakeshore336(prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-02:")
|
dodal/beamlines/i05_1.py
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
from dodal.
|
|
2
|
-
from dodal.common.beamlines.beamline_utils import device_factory
|
|
1
|
+
from dodal.beamlines.i05_shared import devices as i05_shared_devices
|
|
3
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
4
|
-
from dodal.
|
|
5
|
-
from dodal.devices.synchrotron import Synchrotron
|
|
3
|
+
from dodal.device_manager import DeviceManager
|
|
6
4
|
from dodal.log import set_beamline as set_log_beamline
|
|
7
5
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
8
6
|
|
|
@@ -11,12 +9,5 @@ PREFIX = BeamlinePrefix(BL, suffix="J")
|
|
|
11
9
|
set_log_beamline(BL)
|
|
12
10
|
set_utils_beamline(BL)
|
|
13
11
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
def pgm() -> PlaneGratingMonochromator:
|
|
17
|
-
return i05_pgm()
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
@device_factory()
|
|
21
|
-
def synchrotron() -> Synchrotron:
|
|
22
|
-
return Synchrotron()
|
|
12
|
+
devices = DeviceManager()
|
|
13
|
+
devices.include(i05_shared_devices)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from dodal.device_manager import DeviceManager
|
|
2
|
+
from dodal.devices.beamlines.i05.enums import Grating
|
|
3
|
+
from dodal.devices.insertion_device import (
|
|
4
|
+
Apple2,
|
|
5
|
+
UndulatorGap,
|
|
6
|
+
UndulatorLockedPhaseAxes,
|
|
7
|
+
)
|
|
8
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
9
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
10
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
11
|
+
|
|
12
|
+
BL = get_beamline_name("i05-shared")
|
|
13
|
+
PREFIX = BeamlinePrefix("i05-shared", "I")
|
|
14
|
+
|
|
15
|
+
devices = DeviceManager()
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
@devices.factory()
|
|
19
|
+
def synchrotron() -> Synchrotron:
|
|
20
|
+
return Synchrotron()
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
@devices.factory()
|
|
24
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
25
|
+
return PlaneGratingMonochromator(
|
|
26
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
27
|
+
grating=Grating,
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@devices.factory()
|
|
32
|
+
def id_gap() -> UndulatorGap:
|
|
33
|
+
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@devices.factory()
|
|
37
|
+
def id_phase() -> UndulatorLockedPhaseAxes:
|
|
38
|
+
return UndulatorLockedPhaseAxes(
|
|
39
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
40
|
+
top_outer="PL",
|
|
41
|
+
btm_inner="PU",
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
@devices.factory()
|
|
46
|
+
def id(
|
|
47
|
+
id_gap: UndulatorGap,
|
|
48
|
+
id_phase: UndulatorLockedPhaseAxes,
|
|
49
|
+
) -> Apple2[UndulatorLockedPhaseAxes]:
|
|
50
|
+
"""i05 insertion device."""
|
|
51
|
+
return Apple2[UndulatorLockedPhaseAxes](id_gap=id_gap, id_phase=id_phase)
|
dodal/beamlines/i06_1.py
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
from dodal.beamlines.i06_shared import devices as i06_shared_devices
|
|
2
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
+
from dodal.device_manager import DeviceManager
|
|
4
|
+
from dodal.devices.temperture_controller import (
|
|
5
|
+
Lakeshore336,
|
|
6
|
+
)
|
|
7
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
8
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
9
|
+
|
|
10
|
+
BL = get_beamline_name("i06_1")
|
|
11
|
+
PREFIX = BeamlinePrefix(BL, suffix="J")
|
|
12
|
+
set_log_beamline(BL)
|
|
13
|
+
set_utils_beamline(BL)
|
|
14
|
+
|
|
15
|
+
devices = DeviceManager()
|
|
16
|
+
devices.include(i06_shared_devices)
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@devices.factory()
|
|
20
|
+
def diff_cooling_temperature_controller() -> Lakeshore336:
|
|
21
|
+
return Lakeshore336(prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-02:")
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@devices.factory()
|
|
25
|
+
def diff_heating_temperature_controller() -> Lakeshore336:
|
|
26
|
+
return Lakeshore336(prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-03:")
|