dls-dodal 1.69.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.69.0.dist-info → dls_dodal-2.0.0.dist-info}/METADATA +1 -1
- dls_dodal-2.0.0.dist-info/RECORD +354 -0
- {dls_dodal-1.69.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 +17 -17
- 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 +3 -3
- dodal/beamlines/i02_2.py +1 -1
- dodal/beamlines/i03.py +4 -4
- dodal/beamlines/i04.py +16 -8
- dodal/beamlines/i05.py +7 -45
- dodal/beamlines/i05_1.py +4 -13
- dodal/beamlines/i05_shared.py +51 -0
- dodal/beamlines/i06_1.py +7 -5
- dodal/beamlines/{i06.py → i06_shared.py} +25 -14
- dodal/beamlines/i07.py +14 -16
- dodal/beamlines/i09.py +54 -51
- dodal/beamlines/i09_1.py +25 -64
- 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/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 +6 -14
- dodal/beamlines/i21.py +35 -28
- dodal/beamlines/i22.py +19 -4
- dodal/beamlines/i23.py +1 -2
- dodal/beamlines/i24.py +11 -10
- dodal/beamlines/k07.py +99 -5
- dodal/beamlines/p38.py +3 -3
- dodal/beamlines/p60.py +28 -17
- dodal/beamlines/p99.py +16 -15
- dodal/beamlines/training_rig.py +20 -12
- dodal/cli.py +36 -2
- 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 +28 -40
- 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/{i04 → beamlines/i04}/murko_results.py +5 -5
- 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 +31 -45
- 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 +10 -16
- 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 +3 -2
- 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 +3 -3
- dodal/devices/eiger_odin.py +1 -1
- dodal/devices/electron_analyser/base/base_controller.py +13 -13
- 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_region.py +27 -30
- dodal/devices/electron_analyser/base/base_util.py +18 -16
- dodal/devices/electron_analyser/base/energy_sources.py +13 -19
- dodal/devices/eurotherm.py +3 -2
- dodal/devices/fast_grid_scan.py +31 -34
- dodal/devices/fast_shutter.py +24 -21
- 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 +8 -0
- dodal/devices/insertion_device/apple2_controller.py +51 -60
- dodal/devices/insertion_device/apple2_undulator.py +40 -64
- dodal/devices/insertion_device/apple_knot_controller.py +222 -0
- dodal/devices/insertion_device/energy.py +100 -27
- dodal/devices/insertion_device/energy_motor_lookup.py +20 -27
- dodal/devices/insertion_device/lookup_table_models.py +45 -50
- dodal/devices/insertion_device/polarisation.py +1 -1
- 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 +28 -23
- 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 +9 -12
- 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 +12 -4
- dodal/devices/s4_slit_gaps.py +1 -1
- dodal/devices/selectable_source.py +5 -2
- 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 +6 -7
- dodal/devices/zebra/zebra_constants_mapping.py +11 -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/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/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.69.0.dist-info/RECORD +0 -338
- dodal/beamline_specific_utils/i05_shared.py +0 -14
- dodal/devices/b07/__init__.py +0 -3
- dodal/devices/i04/beam_centre.py +0 -84
- dodal/devices/i05/__init__.py +0 -3
- dodal/devices/i09/__init__.py +0 -3
- dodal/devices/i21/__init__.py +0 -5
- {dls_dodal-1.69.0.dist-info → dls_dodal-2.0.0.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.69.0.dist-info → dls_dodal-2.0.0.dist-info}/licenses/LICENSE +0 -0
- {dls_dodal-1.69.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/{i04 → beamlines/i04}/max_pixel.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/beamlines/i11.py
CHANGED
|
@@ -1,25 +1,30 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from ophyd_async.core import StaticPathProvider, UUIDFilenameProvider
|
|
4
|
+
|
|
1
5
|
from dodal.common.beamlines.beamline_utils import (
|
|
2
6
|
device_factory,
|
|
3
7
|
get_path_provider,
|
|
8
|
+
set_path_provider,
|
|
4
9
|
)
|
|
5
10
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
6
11
|
from dodal.common.beamlines.device_helpers import DET_SUFFIX
|
|
7
|
-
from dodal.devices.
|
|
8
|
-
from dodal.devices.eurotherm import (
|
|
9
|
-
EurothermGeneral,
|
|
10
|
-
UpdatingEurothermGeneral,
|
|
11
|
-
)
|
|
12
|
-
from dodal.devices.i11.cyberstar_blower import (
|
|
12
|
+
from dodal.devices.beamlines.i11.cyberstar_blower import (
|
|
13
13
|
AutotunedCyberstarBlower,
|
|
14
14
|
CyberstarBlower,
|
|
15
15
|
)
|
|
16
|
-
from dodal.devices.i11.diff_stages import (
|
|
16
|
+
from dodal.devices.beamlines.i11.diff_stages import (
|
|
17
17
|
DiffractometerBase,
|
|
18
18
|
DiffractometerStage,
|
|
19
19
|
)
|
|
20
|
-
from dodal.devices.i11.mythen import Mythen3
|
|
21
|
-
from dodal.devices.i11.nx100robot import NX100Robot
|
|
22
|
-
from dodal.devices.i11.spinner import Spinner
|
|
20
|
+
from dodal.devices.beamlines.i11.mythen import Mythen3
|
|
21
|
+
from dodal.devices.beamlines.i11.nx100robot import NX100Robot
|
|
22
|
+
from dodal.devices.beamlines.i11.spinner import Spinner
|
|
23
|
+
from dodal.devices.cryostream import OxfordCryoStream
|
|
24
|
+
from dodal.devices.eurotherm import (
|
|
25
|
+
EurothermGeneral,
|
|
26
|
+
UpdatingEurothermGeneral,
|
|
27
|
+
)
|
|
23
28
|
from dodal.devices.slits import Slits
|
|
24
29
|
from dodal.devices.synchrotron import Synchrotron
|
|
25
30
|
from dodal.log import set_beamline as set_log_beamline
|
|
@@ -30,10 +35,17 @@ PREFIX = BeamlinePrefix(BL)
|
|
|
30
35
|
set_log_beamline(BL)
|
|
31
36
|
set_utils_beamline(BL)
|
|
32
37
|
|
|
38
|
+
# This should be removed when the DeviceManager is adopted
|
|
39
|
+
try:
|
|
40
|
+
get_path_provider()
|
|
41
|
+
except NameError:
|
|
42
|
+
# If one hasn't already been set, use a default to stop things crashing
|
|
43
|
+
set_path_provider(StaticPathProvider(UUIDFilenameProvider(), Path("/tmp")))
|
|
44
|
+
|
|
33
45
|
|
|
34
46
|
@device_factory()
|
|
35
47
|
def mythen3() -> Mythen3:
|
|
36
|
-
"""Mythen3 Detector from PSI"""
|
|
48
|
+
"""Mythen3 Detector from PSI."""
|
|
37
49
|
return Mythen3(
|
|
38
50
|
prefix=f"{PREFIX.beamline_prefix}-EA-DET-07:",
|
|
39
51
|
path_provider=get_path_provider(),
|
|
@@ -44,19 +56,19 @@ def mythen3() -> Mythen3:
|
|
|
44
56
|
|
|
45
57
|
@device_factory()
|
|
46
58
|
def ocs1() -> OxfordCryoStream:
|
|
47
|
-
"""i11 Oxford Cryostream 700 plus without cryoshutter"""
|
|
59
|
+
"""i11 Oxford Cryostream 700 plus without cryoshutter."""
|
|
48
60
|
return OxfordCryoStream(f"{PREFIX.beamline_prefix}-CG-CSTRM-01:")
|
|
49
61
|
|
|
50
62
|
|
|
51
63
|
@device_factory()
|
|
52
64
|
def ocs2() -> OxfordCryoStream:
|
|
53
|
-
"""i11 Oxford Cryostream 700 standard without cryoshutter"""
|
|
65
|
+
"""i11 Oxford Cryostream 700 standard without cryoshutter."""
|
|
54
66
|
return OxfordCryoStream(f"{PREFIX.beamline_prefix}-CG-CSTRM-02:")
|
|
55
67
|
|
|
56
68
|
|
|
57
69
|
@device_factory()
|
|
58
70
|
def diff_stage() -> DiffractometerStage:
|
|
59
|
-
"""Stage that contains the rotation axes, theta, two_theta, delta, spos"""
|
|
71
|
+
"""Stage that contains the rotation axes, theta, two_theta, delta, spos."""
|
|
60
72
|
return DiffractometerStage(prefix=f"{PREFIX.beamline_prefix}-MO-DIFF-01:")
|
|
61
73
|
|
|
62
74
|
|
|
@@ -67,7 +79,7 @@ def diff_base() -> DiffractometerBase:
|
|
|
67
79
|
|
|
68
80
|
@device_factory()
|
|
69
81
|
def csb1() -> CyberstarBlower[UpdatingEurothermGeneral]:
|
|
70
|
-
"""Cyberstar hot air blower 1 with Eurotherm Controller and updating PID"""
|
|
82
|
+
"""Cyberstar hot air blower 1 with Eurotherm Controller and updating PID."""
|
|
71
83
|
return CyberstarBlower(
|
|
72
84
|
prefix=f"{PREFIX.beamline_prefix}-EA-BLOW-01:",
|
|
73
85
|
controller_type=UpdatingEurothermGeneral,
|
|
@@ -76,7 +88,7 @@ def csb1() -> CyberstarBlower[UpdatingEurothermGeneral]:
|
|
|
76
88
|
|
|
77
89
|
@device_factory()
|
|
78
90
|
def csb2() -> AutotunedCyberstarBlower[EurothermGeneral]:
|
|
79
|
-
"""Cyberstar hot air blower 2 with autotuneable Eurotherm Controller"""
|
|
91
|
+
"""Cyberstar hot air blower 2 with autotuneable Eurotherm Controller."""
|
|
80
92
|
return AutotunedCyberstarBlower(
|
|
81
93
|
prefix=f"{PREFIX.beamline_prefix}-EA-BLOW-02:LOOP1:",
|
|
82
94
|
controller_type=EurothermGeneral,
|
|
@@ -86,13 +98,14 @@ def csb2() -> AutotunedCyberstarBlower[EurothermGeneral]:
|
|
|
86
98
|
@device_factory()
|
|
87
99
|
def sample_robot() -> NX100Robot:
|
|
88
100
|
"""The sample robot arm and carosel on i11 that moves
|
|
89
|
-
and loads samples on/off the spinner
|
|
101
|
+
and loads samples on/off the spinner.
|
|
102
|
+
"""
|
|
90
103
|
return NX100Robot(prefix=f"{PREFIX.beamline_prefix}-EA-ROBOT-01:")
|
|
91
104
|
|
|
92
105
|
|
|
93
106
|
@device_factory()
|
|
94
107
|
def spinner() -> Spinner:
|
|
95
|
-
"""Sample spinner for powder averaging"""
|
|
108
|
+
"""Sample spinner for powder averaging."""
|
|
96
109
|
return Spinner(prefix=f"{PREFIX.beamline_prefix}-EA-ENV-01:")
|
|
97
110
|
|
|
98
111
|
|
dodal/beamlines/i13_1.py
CHANGED
|
@@ -9,7 +9,7 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
9
9
|
)
|
|
10
10
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
11
11
|
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
|
|
12
|
-
from dodal.devices.i13_1.merlin import Merlin
|
|
12
|
+
from dodal.devices.beamlines.i13_1.merlin import Merlin
|
|
13
13
|
from dodal.devices.motors import XYZStage
|
|
14
14
|
from dodal.log import set_beamline as set_log_beamline
|
|
15
15
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
dodal/beamlines/i15.py
CHANGED
|
@@ -2,15 +2,15 @@ from ophyd_async.epics.motor import Motor
|
|
|
2
2
|
|
|
3
3
|
from dodal.common.beamlines.beamline_utils import device_factory
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
-
from dodal.devices.i15.dcm import DCM
|
|
6
|
-
from dodal.devices.i15.focussing_mirror import (
|
|
5
|
+
from dodal.devices.beamlines.i15.dcm import DCM
|
|
6
|
+
from dodal.devices.beamlines.i15.focussing_mirror import (
|
|
7
7
|
FocusingMirror,
|
|
8
8
|
FocusingMirrorHorizontal,
|
|
9
9
|
FocusingMirrorVertical,
|
|
10
10
|
FocusingMirrorWithRoll,
|
|
11
11
|
)
|
|
12
|
-
from dodal.devices.i15.jack import JackX, JackY
|
|
13
|
-
from dodal.devices.i15.motors import UpstreamDownstreamPair
|
|
12
|
+
from dodal.devices.beamlines.i15.jack import JackX, JackY
|
|
13
|
+
from dodal.devices.beamlines.i15.motors import UpstreamDownstreamPair
|
|
14
14
|
from dodal.devices.motors import (
|
|
15
15
|
SixAxisGonioKappaPhi,
|
|
16
16
|
XYStage,
|
|
@@ -66,7 +66,7 @@ def det1z() -> Motor:
|
|
|
66
66
|
|
|
67
67
|
@device_factory()
|
|
68
68
|
def det2z() -> Motor:
|
|
69
|
-
"""Deliberately the same as eht2dtx"""
|
|
69
|
+
"""Deliberately the same as eht2dtx."""
|
|
70
70
|
return Motor(f"{PREFIX.beamline_prefix}-MO-TABLE-03:DETECTOR2:Z")
|
|
71
71
|
|
|
72
72
|
|
|
@@ -85,7 +85,7 @@ def djack1() -> JackX:
|
|
|
85
85
|
|
|
86
86
|
@device_factory()
|
|
87
87
|
def eht2dtx() -> Motor:
|
|
88
|
-
"""Deliberately the same as det2z"""
|
|
88
|
+
"""Deliberately the same as det2z."""
|
|
89
89
|
return Motor(f"{PREFIX.beamline_prefix}-MO-TABLE-03:DETECTOR2:Z")
|
|
90
90
|
|
|
91
91
|
|
dodal/beamlines/i15_1.py
CHANGED
|
@@ -2,10 +2,10 @@ from ophyd_async.epics.motor import Motor
|
|
|
2
2
|
|
|
3
3
|
from dodal.common.beamlines.beamline_utils import device_factory
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
-
from dodal.devices.i15.laue import LaueMonochrometer
|
|
6
|
-
from dodal.devices.i15.motors import NumberedTripleAxisStage
|
|
7
|
-
from dodal.devices.i15.multilayer_mirror import MultiLayerMirror
|
|
8
|
-
from dodal.devices.i15.rail import Rail
|
|
5
|
+
from dodal.devices.beamlines.i15.laue import LaueMonochrometer
|
|
6
|
+
from dodal.devices.beamlines.i15.motors import NumberedTripleAxisStage
|
|
7
|
+
from dodal.devices.beamlines.i15.multilayer_mirror import MultiLayerMirror
|
|
8
|
+
from dodal.devices.beamlines.i15.rail import Rail
|
|
9
9
|
from dodal.devices.motors import XYPhiStage, XYStage, YZStage
|
|
10
10
|
from dodal.devices.slits import Slits
|
|
11
11
|
from dodal.devices.synchrotron import Synchrotron
|
|
@@ -41,13 +41,13 @@ def base_y() -> Motor:
|
|
|
41
41
|
|
|
42
42
|
@device_factory()
|
|
43
43
|
def blower_y() -> Motor:
|
|
44
|
-
"""Same motor as blowerZ"""
|
|
44
|
+
"""Same motor as blowerZ."""
|
|
45
45
|
return Motor(f"{PREFIX.beamline_prefix}-EA-BLOWR-01:TLATE")
|
|
46
46
|
|
|
47
47
|
|
|
48
48
|
@device_factory()
|
|
49
49
|
def blower_z() -> Motor:
|
|
50
|
-
"""Same motor as blowerY"""
|
|
50
|
+
"""Same motor as blowerY."""
|
|
51
51
|
return Motor(f"{PREFIX.beamline_prefix}-EA-BLOWR-01:TLATE")
|
|
52
52
|
|
|
53
53
|
|
dodal/beamlines/i17.py
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"""The I17 hardware doesn't exist yet, but this configuration file is useful for
|
|
2
|
-
creating plans in sm-bluesky as devices build up.
|
|
2
|
+
creating plans in sm-bluesky as devices build up.
|
|
3
|
+
"""
|
|
3
4
|
|
|
4
5
|
from ophyd_async.core import StrictEnum
|
|
5
6
|
|
|
6
|
-
from dodal.common.beamlines.beamline_utils import (
|
|
7
|
-
device_factory,
|
|
8
|
-
)
|
|
9
7
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
10
|
-
from dodal.
|
|
8
|
+
from dodal.device_manager import DeviceManager
|
|
9
|
+
from dodal.devices.beamlines.i17.i17_apple2 import I17Apple2Controller
|
|
11
10
|
from dodal.devices.insertion_device import (
|
|
12
11
|
Apple2,
|
|
13
12
|
Apple2Controller,
|
|
@@ -29,18 +28,20 @@ PREFIX = BeamlinePrefix(BL)
|
|
|
29
28
|
set_log_beamline(BL)
|
|
30
29
|
set_utils_beamline(BL)
|
|
31
30
|
|
|
31
|
+
devices = DeviceManager()
|
|
32
|
+
|
|
32
33
|
|
|
33
34
|
class I17Grating(StrictEnum):
|
|
34
35
|
AU_400 = "400 line/mm Au"
|
|
35
36
|
SI_400 = "400 line/mm Si"
|
|
36
37
|
|
|
37
38
|
|
|
38
|
-
@
|
|
39
|
+
@devices.factory
|
|
39
40
|
def synchrotron() -> Synchrotron:
|
|
40
41
|
return Synchrotron()
|
|
41
42
|
|
|
42
43
|
|
|
43
|
-
@
|
|
44
|
+
@devices.factory(skip=True)
|
|
44
45
|
def pgm() -> PlaneGratingMonochromator:
|
|
45
46
|
return PlaneGratingMonochromator(
|
|
46
47
|
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
@@ -49,12 +50,12 @@ def pgm() -> PlaneGratingMonochromator:
|
|
|
49
50
|
)
|
|
50
51
|
|
|
51
52
|
|
|
52
|
-
@
|
|
53
|
+
@devices.factory(skip=True)
|
|
53
54
|
def id_gap() -> UndulatorGap:
|
|
54
55
|
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
55
56
|
|
|
56
57
|
|
|
57
|
-
@
|
|
58
|
+
@devices.factory(skip=True)
|
|
58
59
|
def id_phase() -> UndulatorPhaseAxes:
|
|
59
60
|
return UndulatorPhaseAxes(
|
|
60
61
|
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
@@ -65,36 +66,44 @@ def id_phase() -> UndulatorPhaseAxes:
|
|
|
65
66
|
)
|
|
66
67
|
|
|
67
68
|
|
|
68
|
-
@
|
|
69
|
-
def id(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
69
|
+
@devices.factory(skip=True)
|
|
70
|
+
def id(
|
|
71
|
+
id_gap: UndulatorGap, id_phase: UndulatorPhaseAxes
|
|
72
|
+
) -> Apple2[UndulatorPhaseAxes]:
|
|
73
|
+
return Apple2[UndulatorPhaseAxes](
|
|
74
|
+
id_gap=id_gap,
|
|
75
|
+
id_phase=id_phase,
|
|
74
76
|
)
|
|
75
77
|
|
|
76
78
|
|
|
77
|
-
@
|
|
78
|
-
def id_controller(
|
|
79
|
+
@devices.factory(skip=True)
|
|
80
|
+
def id_controller(
|
|
81
|
+
id: Apple2[UndulatorPhaseAxes],
|
|
82
|
+
) -> Apple2Controller[Apple2[UndulatorPhaseAxes]]:
|
|
79
83
|
"""I17 insertion device controller with dummy energy to motor_converter."""
|
|
80
84
|
return I17Apple2Controller(
|
|
81
|
-
apple2=id
|
|
85
|
+
apple2=id,
|
|
82
86
|
gap_energy_motor_lut=EnergyMotorLookup(lut=LookupTable()),
|
|
83
87
|
phase_energy_motor_lut=EnergyMotorLookup(lut=LookupTable()),
|
|
84
88
|
)
|
|
85
89
|
|
|
86
90
|
|
|
87
|
-
@
|
|
88
|
-
def id_energy(
|
|
89
|
-
|
|
91
|
+
@devices.factory(skip=True)
|
|
92
|
+
def id_energy(
|
|
93
|
+
id_controller: Apple2Controller[Apple2[UndulatorPhaseAxes]],
|
|
94
|
+
) -> InsertionDeviceEnergy:
|
|
95
|
+
return InsertionDeviceEnergy(id_controller=id_controller)
|
|
90
96
|
|
|
91
97
|
|
|
92
|
-
@
|
|
93
|
-
def id_polarisation(
|
|
94
|
-
|
|
98
|
+
@devices.factory(skip=True)
|
|
99
|
+
def id_polarisation(
|
|
100
|
+
id_controller: Apple2Controller[Apple2[UndulatorPhaseAxes]],
|
|
101
|
+
) -> InsertionDevicePolarisation:
|
|
102
|
+
return InsertionDevicePolarisation(id_controller=id_controller)
|
|
95
103
|
|
|
96
104
|
|
|
97
|
-
@
|
|
98
|
-
def energy(
|
|
99
|
-
|
|
100
|
-
|
|
105
|
+
@devices.factory(skip=True)
|
|
106
|
+
def energy(
|
|
107
|
+
id_energy: InsertionDeviceEnergy, pgm: PlaneGratingMonochromator
|
|
108
|
+
) -> BeamEnergy:
|
|
109
|
+
return BeamEnergy(id_energy=id_energy, mono=pgm.energy)
|
dodal/beamlines/i18.py
CHANGED
|
@@ -12,13 +12,13 @@ from dodal.common.visit import (
|
|
|
12
12
|
LocalDirectoryServiceClient,
|
|
13
13
|
StaticVisitPathProvider,
|
|
14
14
|
)
|
|
15
|
+
from dodal.devices.beamlines.i18.diode import Diode
|
|
16
|
+
from dodal.devices.beamlines.i18.kb_mirror import KBMirror
|
|
15
17
|
from dodal.devices.common_dcm import (
|
|
16
18
|
DoubleCrystalMonochromatorWithDSpacing,
|
|
17
19
|
PitchAndRollCrystal,
|
|
18
20
|
RollCrystal,
|
|
19
21
|
)
|
|
20
|
-
from dodal.devices.i18.diode import Diode
|
|
21
|
-
from dodal.devices.i18.kb_mirror import KBMirror
|
|
22
22
|
from dodal.devices.motors import XYStage, XYZThetaStage
|
|
23
23
|
from dodal.devices.slits import Slits
|
|
24
24
|
from dodal.devices.synchrotron import Synchrotron
|
|
@@ -60,8 +60,7 @@ def undulator() -> UndulatorInKeV:
|
|
|
60
60
|
# See https://github.com/DiamondLightSource/dodal/issues/1180
|
|
61
61
|
@device_factory(skip=True)
|
|
62
62
|
def dcm() -> DoubleCrystalMonochromatorWithDSpacing:
|
|
63
|
-
"""
|
|
64
|
-
A double crystal monocromator device, used to select the beam energy.
|
|
63
|
+
"""A double crystal monocromator device, used to select the beam energy.
|
|
65
64
|
|
|
66
65
|
Once spacing is added Si111 d-spacing is 3.135 angsterm , and Si311 is 1.637
|
|
67
66
|
calculations are in gda/config/lookupTables/Si111/eV_Deg_converter.xml
|
dodal/beamlines/i19_1.py
CHANGED
|
@@ -1,20 +1,23 @@
|
|
|
1
|
-
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
-
device_factory,
|
|
3
|
-
)
|
|
4
1
|
from dodal.common.beamlines.beamline_utils import (
|
|
5
2
|
set_beamline as set_utils_beamline,
|
|
6
3
|
)
|
|
7
|
-
from dodal.
|
|
4
|
+
from dodal.device_manager import DeviceManager
|
|
5
|
+
from dodal.devices.beamlines.i19.access_controlled.attenuator_motor_squad import (
|
|
8
6
|
AttenuatorMotorSquad,
|
|
9
7
|
)
|
|
10
|
-
from dodal.devices.i19.access_controlled.blueapi_device import HutchState
|
|
11
|
-
from dodal.devices.i19.access_controlled.
|
|
8
|
+
from dodal.devices.beamlines.i19.access_controlled.blueapi_device import HutchState
|
|
9
|
+
from dodal.devices.beamlines.i19.access_controlled.piezo_control import (
|
|
10
|
+
AccessControlledPiezoActuator,
|
|
11
|
+
FocusingMirrorName,
|
|
12
|
+
)
|
|
13
|
+
from dodal.devices.beamlines.i19.access_controlled.shutter import (
|
|
12
14
|
AccessControlledShutter,
|
|
13
|
-
HutchState,
|
|
14
15
|
)
|
|
15
|
-
from dodal.devices.i19.beamstop import BeamStop
|
|
16
|
+
from dodal.devices.beamlines.i19.beamstop import BeamStop
|
|
17
|
+
from dodal.devices.beamlines.i19.pin_tip import PinTipCentreHolder
|
|
16
18
|
from dodal.devices.oav.oav_detector import OAVBeamCentreFile
|
|
17
19
|
from dodal.devices.oav.oav_parameters import OAVConfigBeamCentre
|
|
20
|
+
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
18
21
|
from dodal.devices.synchrotron import Synchrotron
|
|
19
22
|
from dodal.devices.zebra.zebra import Zebra
|
|
20
23
|
from dodal.devices.zebra.zebra_constants_mapping import (
|
|
@@ -39,42 +42,80 @@ I19_1_ZEBRA_MAPPING = ZebraMapping(
|
|
|
39
42
|
sources=ZebraSources(),
|
|
40
43
|
)
|
|
41
44
|
|
|
42
|
-
ZOOM_PARAMS_FILE =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
45
|
+
ZOOM_PARAMS_FILE = "/dls_sw/i19-1/software/bluesky/jCameraManZoomLevels.xml"
|
|
46
|
+
DISPLAY_CONFIG = "/dls_sw/i19-1/software/bluesky/display.configuration"
|
|
47
|
+
|
|
48
|
+
devices = DeviceManager()
|
|
46
49
|
|
|
47
50
|
|
|
48
|
-
@
|
|
51
|
+
@devices.factory()
|
|
49
52
|
def attenuator_motor_squad() -> AttenuatorMotorSquad:
|
|
50
53
|
return AttenuatorMotorSquad(
|
|
51
54
|
hutch=HutchState.EH1, instrument_session=I19_1_COMMISSIONING_INSTR_SESSION
|
|
52
55
|
)
|
|
53
56
|
|
|
54
57
|
|
|
55
|
-
|
|
56
|
-
# See https://github.com/DiamondLightSource/dodal/issues/1150
|
|
57
|
-
@device_factory()
|
|
58
|
+
@devices.factory()
|
|
58
59
|
def beamstop() -> BeamStop:
|
|
59
|
-
"""Get the i19-1 beamstop device, instantiate it if it hasn't already been.
|
|
60
|
-
If this is called when already instantiated in i19-1, it will return the existing object.
|
|
61
|
-
"""
|
|
62
60
|
return BeamStop(prefix=f"{PREFIX.beamline_prefix}-RS-ABSB-01:")
|
|
63
61
|
|
|
64
62
|
|
|
65
|
-
@
|
|
66
|
-
def
|
|
63
|
+
@devices.fixture
|
|
64
|
+
def oav_config() -> OAVConfigBeamCentre:
|
|
65
|
+
return OAVConfigBeamCentre(ZOOM_PARAMS_FILE, DISPLAY_CONFIG)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
@devices.factory()
|
|
69
|
+
def oav1(oav_config: OAVConfigBeamCentre) -> OAVBeamCentreFile:
|
|
70
|
+
"""The OAV1 camera, placed next to the beampipe along with the Zoom lens."""
|
|
67
71
|
return OAVBeamCentreFile(
|
|
68
72
|
prefix=f"{PREFIX.beamline_prefix}-EA-OAV-01:",
|
|
69
|
-
config=
|
|
73
|
+
config=oav_config,
|
|
70
74
|
)
|
|
71
75
|
|
|
72
76
|
|
|
73
|
-
@
|
|
77
|
+
@devices.factory()
|
|
78
|
+
def oav2(oav_config: OAVConfigBeamCentre) -> OAVBeamCentreFile:
|
|
79
|
+
"""The OAV2 camera, placed diagonally to the sample. It has no FZoom."""
|
|
80
|
+
return OAVBeamCentreFile(
|
|
81
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-OAV-02:",
|
|
82
|
+
config=oav_config,
|
|
83
|
+
)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
@devices.factory()
|
|
87
|
+
def pin_tip_centre1() -> PinTipCentreHolder:
|
|
88
|
+
"""I19-1 temporary device to hold the pin tip centre position for OAV1."""
|
|
89
|
+
return PinTipCentreHolder(
|
|
90
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-OAV-01:",
|
|
91
|
+
overlay_channel=8,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@devices.factory()
|
|
96
|
+
def pin_tip_centre2() -> PinTipCentreHolder:
|
|
97
|
+
"""I19-1 temporary device to hold the pin tip centre position for OAV2."""
|
|
98
|
+
return PinTipCentreHolder(
|
|
99
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-OAV-02:",
|
|
100
|
+
overlay_channel=8,
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
@devices.factory()
|
|
105
|
+
def pin_tip_detection1() -> PinTipDetection:
|
|
106
|
+
"""Pin tip detection device for OAV1 camera."""
|
|
107
|
+
return PinTipDetection(f"{PREFIX.beamline_prefix}-EA-OAV-01:")
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
@devices.factory()
|
|
111
|
+
def pin_tip_detection2() -> PinTipDetection:
|
|
112
|
+
"""Pin tip detection device for OAV2 camera."""
|
|
113
|
+
return PinTipDetection(f"{PREFIX.beamline_prefix}-EA-OAV-02:")
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
@devices.factory()
|
|
74
117
|
def shutter() -> AccessControlledShutter:
|
|
75
|
-
"""
|
|
76
|
-
If this is called when already instantiated, it will return the existing object.
|
|
77
|
-
"""
|
|
118
|
+
"""Access controlled wrapper for the experiment shutter."""
|
|
78
119
|
return AccessControlledShutter(
|
|
79
120
|
prefix=f"{PREFIX.beamline_prefix}-PS-SHTR-01:",
|
|
80
121
|
hutch=HutchState.EH1,
|
|
@@ -82,22 +123,42 @@ def shutter() -> AccessControlledShutter:
|
|
|
82
123
|
)
|
|
83
124
|
|
|
84
125
|
|
|
85
|
-
@
|
|
126
|
+
@devices.factory()
|
|
86
127
|
def synchrotron() -> Synchrotron:
|
|
87
|
-
"""Get the i19-1 synchrotron device, instantiate it if it hasn't already been.
|
|
88
|
-
If this is called when already instantiated in i19-1, it will return the existing object.
|
|
89
|
-
"""
|
|
90
128
|
return Synchrotron()
|
|
91
129
|
|
|
92
130
|
|
|
93
131
|
# NOTE EH1 uses the Zebra 2 box. While a Zebra 1 box exists and is connected
|
|
94
132
|
# on the beamline, it is currently not in use
|
|
95
|
-
@
|
|
133
|
+
@devices.factory()
|
|
96
134
|
def zebra() -> Zebra:
|
|
97
|
-
"""Get the i19-1 zebra device, instantiate it if it hasn't already been.
|
|
98
|
-
If this is called when already instantiated in i19-1, it will return the existing object.
|
|
99
|
-
"""
|
|
100
135
|
return Zebra(
|
|
101
136
|
mapping=I19_1_ZEBRA_MAPPING,
|
|
102
137
|
prefix=f"{PREFIX.beamline_prefix}-EA-ZEBRA-02:",
|
|
103
138
|
)
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
@devices.factory()
|
|
142
|
+
def hfm_piezo() -> AccessControlledPiezoActuator:
|
|
143
|
+
"""Get the i19-1 access controlled hfm piezo device, instantiate it if it hasn't already been.
|
|
144
|
+
If this is called when already instantiated, it will return the existing object.
|
|
145
|
+
"""
|
|
146
|
+
return AccessControlledPiezoActuator(
|
|
147
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-HFM-01:",
|
|
148
|
+
mirror_type=FocusingMirrorName.HFM,
|
|
149
|
+
hutch=HutchState.EH1,
|
|
150
|
+
instrument_session=I19_1_COMMISSIONING_INSTR_SESSION,
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
@devices.factory()
|
|
155
|
+
def vfm_piezo() -> AccessControlledPiezoActuator:
|
|
156
|
+
"""Get the i19-1 access controlled vfm piezo device, instantiate it if it hasn't already been.
|
|
157
|
+
If this is called when already instantiated, it will return the existing object.
|
|
158
|
+
"""
|
|
159
|
+
return AccessControlledPiezoActuator(
|
|
160
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-VFM-01:",
|
|
161
|
+
mirror_type=FocusingMirrorName.VFM,
|
|
162
|
+
hutch=HutchState.EH1,
|
|
163
|
+
instrument_session=I19_1_COMMISSIONING_INSTR_SESSION,
|
|
164
|
+
)
|