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/b07_1.py
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
from dodal.
|
|
1
|
+
from dodal.beamlines.b07_shared import devices as b07_shared_devices
|
|
2
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
-
from dodal.
|
|
4
|
-
from dodal.devices.
|
|
3
|
+
from dodal.device_manager import DeviceManager
|
|
4
|
+
from dodal.devices.beamlines.b07 import PsuMode
|
|
5
|
+
from dodal.devices.beamlines.b07_1 import (
|
|
5
6
|
ChannelCutMonochromator,
|
|
6
7
|
Grating,
|
|
7
8
|
LensMode,
|
|
@@ -9,46 +10,43 @@ from dodal.devices.b07_1 import (
|
|
|
9
10
|
from dodal.devices.electron_analyser.base import EnergySource
|
|
10
11
|
from dodal.devices.electron_analyser.specs import SpecsDetector
|
|
11
12
|
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
12
|
-
from dodal.devices.synchrotron import Synchrotron
|
|
13
13
|
from dodal.log import set_beamline as set_log_beamline
|
|
14
14
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
15
15
|
|
|
16
16
|
BL = get_beamline_name("b07-1")
|
|
17
|
-
|
|
17
|
+
C_PREFIX = BeamlinePrefix(BL, suffix="C")
|
|
18
18
|
set_log_beamline(BL)
|
|
19
19
|
set_utils_beamline(BL)
|
|
20
20
|
|
|
21
|
+
devices = DeviceManager()
|
|
22
|
+
devices.include(b07_shared_devices)
|
|
21
23
|
|
|
22
|
-
@device_factory()
|
|
23
|
-
def synchrotron() -> Synchrotron:
|
|
24
|
-
return Synchrotron()
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
@device_factory()
|
|
25
|
+
@devices.factory()
|
|
28
26
|
def pgm() -> PlaneGratingMonochromator:
|
|
29
27
|
return PlaneGratingMonochromator(
|
|
30
|
-
prefix=f"{
|
|
28
|
+
prefix=f"{C_PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
31
29
|
grating=Grating,
|
|
32
30
|
)
|
|
33
31
|
|
|
34
32
|
|
|
35
|
-
|
|
36
|
-
# https://jira.diamond.ac.uk/browse/B07-1104
|
|
37
|
-
@device_factory()
|
|
33
|
+
@devices.factory()
|
|
38
34
|
def ccmc() -> ChannelCutMonochromator:
|
|
39
|
-
return ChannelCutMonochromator(prefix=f"{
|
|
35
|
+
return ChannelCutMonochromator(prefix=f"{C_PREFIX.beamline_prefix}-OP-CCM-01:")
|
|
40
36
|
|
|
41
37
|
|
|
42
|
-
@
|
|
43
|
-
def energy_source() -> EnergySource:
|
|
44
|
-
return EnergySource(pgm
|
|
38
|
+
@devices.factory()
|
|
39
|
+
def energy_source(pgm: PlaneGratingMonochromator) -> EnergySource:
|
|
40
|
+
return EnergySource(pgm.energy.user_readback)
|
|
45
41
|
|
|
46
42
|
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
# CAM:IMAGE will fail to connect outside the beamline network,
|
|
44
|
+
# see https://github.com/DiamondLightSource/dodal/issues/1852
|
|
45
|
+
@devices.factory()
|
|
46
|
+
def analyser(energy_source: EnergySource) -> SpecsDetector[LensMode, PsuMode]:
|
|
49
47
|
return SpecsDetector[LensMode, PsuMode](
|
|
50
|
-
prefix=f"{
|
|
48
|
+
prefix=f"{C_PREFIX.beamline_prefix}-EA-DET-01:CAM:",
|
|
51
49
|
lens_mode_type=LensMode,
|
|
52
50
|
psu_mode_type=PsuMode,
|
|
53
|
-
energy_source=energy_source
|
|
51
|
+
energy_source=energy_source,
|
|
54
52
|
)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from dodal.device_manager import DeviceManager
|
|
2
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
3
|
+
from dodal.utils import get_beamline_name
|
|
4
|
+
|
|
5
|
+
BL = get_beamline_name("b07-shared")
|
|
6
|
+
|
|
7
|
+
devices = DeviceManager()
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@devices.factory()
|
|
11
|
+
def synchrotron() -> Synchrotron:
|
|
12
|
+
return Synchrotron()
|
dodal/beamlines/b16.py
CHANGED
|
@@ -11,7 +11,7 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
11
11
|
)
|
|
12
12
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
13
13
|
from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
|
|
14
|
-
from dodal.devices.b16.detector import (
|
|
14
|
+
from dodal.devices.beamlines.b16.detector import (
|
|
15
15
|
software_triggered_tiff_area_detector,
|
|
16
16
|
)
|
|
17
17
|
from dodal.devices.motors import XYZStage
|
dodal/beamlines/b21.py
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from ophyd_async.core import StaticPathProvider, UUIDFilenameProvider
|
|
1
4
|
from ophyd_async.epics.adaravis import AravisDetector
|
|
2
5
|
from ophyd_async.fastcs.eiger import EigerDetector
|
|
3
6
|
from ophyd_async.fastcs.panda import HDFPanda
|
|
@@ -5,11 +8,12 @@ from ophyd_async.fastcs.panda import HDFPanda
|
|
|
5
8
|
from dodal.common.beamlines.beamline_utils import (
|
|
6
9
|
device_factory,
|
|
7
10
|
get_path_provider,
|
|
11
|
+
set_path_provider,
|
|
8
12
|
)
|
|
9
13
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
10
14
|
from dodal.common.beamlines.device_helpers import CAM_SUFFIX, HDF5_SUFFIX
|
|
15
|
+
from dodal.devices.beamlines.i22.nxsas import NXSasMetadataHolder, NXSasOAV
|
|
11
16
|
from dodal.devices.focusing_mirror import SimpleMirror
|
|
12
|
-
from dodal.devices.i22.nxsas import NXSasMetadataHolder, NXSasOAV
|
|
13
17
|
from dodal.devices.linkam3 import Linkam3
|
|
14
18
|
from dodal.devices.motors import XYStage
|
|
15
19
|
from dodal.devices.slits import Slits
|
|
@@ -23,6 +27,13 @@ PREFIX = BeamlinePrefix(BL)
|
|
|
23
27
|
set_log_beamline(BL)
|
|
24
28
|
set_utils_beamline(BL)
|
|
25
29
|
|
|
30
|
+
# This should be removed when the DeviceManager is adopted
|
|
31
|
+
try:
|
|
32
|
+
get_path_provider()
|
|
33
|
+
except NameError:
|
|
34
|
+
# If one hasn't already been set, use a default to stop things crashing
|
|
35
|
+
set_path_provider(StaticPathProvider(UUIDFilenameProvider(), Path("/tmp")))
|
|
36
|
+
|
|
26
37
|
|
|
27
38
|
@device_factory()
|
|
28
39
|
def saxs() -> EigerDetector:
|
|
@@ -95,9 +106,8 @@ def slits_3() -> Slits:
|
|
|
95
106
|
return Slits(prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:")
|
|
96
107
|
|
|
97
108
|
|
|
98
|
-
"""
|
|
99
|
-
|
|
100
|
-
"""
|
|
109
|
+
"""Slits 4 was removed from B21 after the camera length was fixed, it is not used
|
|
110
|
+
anymore."""
|
|
101
111
|
|
|
102
112
|
|
|
103
113
|
@device_factory()
|
|
@@ -112,8 +122,7 @@ def slits_6() -> Slits:
|
|
|
112
122
|
|
|
113
123
|
@device_factory()
|
|
114
124
|
def slits_7() -> Slits:
|
|
115
|
-
"""
|
|
116
|
-
Compact JJ slits device is used for B21 slits 7. PV's operate in same way
|
|
125
|
+
"""Compact JJ slits device is used for B21 slits 7. PV's operate in same way
|
|
117
126
|
but physically different to other slits, and uses X:GAP nomenclature.
|
|
118
127
|
"""
|
|
119
128
|
return Slits(
|
dodal/beamlines/i02_1.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""Beamline i02-1 is also known as VMXm, or I02J"""
|
|
1
|
+
"""Beamline i02-1 is also known as VMXm, or I02J."""
|
|
2
2
|
|
|
3
3
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
4
4
|
from dodal.device_manager import DeviceManager
|
|
@@ -9,9 +9,9 @@ from dodal.devices.attenuator.filter_selections import (
|
|
|
9
9
|
I02_1FilterThreeSelections,
|
|
10
10
|
I02_1FilterTwoSelections,
|
|
11
11
|
)
|
|
12
|
+
from dodal.devices.beamlines.i02_1.fast_grid_scan import ZebraFastGridScanTwoD
|
|
13
|
+
from dodal.devices.beamlines.i02_1.sample_motors import SampleMotors
|
|
12
14
|
from dodal.devices.eiger import EigerDetector
|
|
13
|
-
from dodal.devices.i02_1.fast_grid_scan import ZebraFastGridScanTwoD
|
|
14
|
-
from dodal.devices.i02_1.sample_motors import SampleMotors
|
|
15
15
|
from dodal.devices.synchrotron import Synchrotron
|
|
16
16
|
from dodal.devices.zebra.zebra import Zebra
|
|
17
17
|
from dodal.devices.zebra.zebra_constants_mapping import (
|
dodal/beamlines/i02_2.py
CHANGED
dodal/beamlines/i03.py
CHANGED
|
@@ -17,6 +17,10 @@ from dodal.devices.aperturescatterguard import (
|
|
|
17
17
|
from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
18
18
|
from dodal.devices.backlight import Backlight
|
|
19
19
|
from dodal.devices.baton import Baton
|
|
20
|
+
from dodal.devices.beamlines.i03 import Beamstop
|
|
21
|
+
from dodal.devices.beamlines.i03.beamsize import Beamsize
|
|
22
|
+
from dodal.devices.beamlines.i03.dcm import DCM
|
|
23
|
+
from dodal.devices.beamlines.i03.undulator_dcm import UndulatorDCM
|
|
20
24
|
from dodal.devices.collimation_table import CollimationTable
|
|
21
25
|
from dodal.devices.cryostream import (
|
|
22
26
|
CryoStreamGantry,
|
|
@@ -31,10 +35,6 @@ from dodal.devices.fluorescence_detector_motion import FluorescenceDetector
|
|
|
31
35
|
from dodal.devices.flux import Flux
|
|
32
36
|
from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
|
|
33
37
|
from dodal.devices.hutch_shutter import HutchShutter
|
|
34
|
-
from dodal.devices.i03 import Beamstop
|
|
35
|
-
from dodal.devices.i03.beamsize import Beamsize
|
|
36
|
-
from dodal.devices.i03.dcm import DCM
|
|
37
|
-
from dodal.devices.i03.undulator_dcm import UndulatorDCM
|
|
38
38
|
from dodal.devices.ipin import IPin
|
|
39
39
|
from dodal.devices.motors import XYZStage
|
|
40
40
|
from dodal.devices.oav.oav_detector import OAVBeamCentreFile
|
dodal/beamlines/i04.py
CHANGED
|
@@ -11,23 +11,24 @@ from dodal.devices.aperturescatterguard import (
|
|
|
11
11
|
from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
12
12
|
from dodal.devices.backlight import Backlight
|
|
13
13
|
from dodal.devices.baton import Baton
|
|
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
|
|
14
21
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
15
22
|
from dodal.devices.diamond_filter import DiamondFilter, I04Filters
|
|
16
23
|
from dodal.devices.eiger import EigerDetector
|
|
17
24
|
from dodal.devices.fast_grid_scan import ZebraFastGridScanThreeD
|
|
18
25
|
from dodal.devices.flux import Flux
|
|
19
|
-
from dodal.devices.i03.dcm import DCM
|
|
20
|
-
from dodal.devices.i04.beam_centre import CentreEllipseMethod
|
|
21
|
-
from dodal.devices.i04.beamsize import Beamsize
|
|
22
|
-
from dodal.devices.i04.constants import RedisConstants
|
|
23
|
-
from dodal.devices.i04.max_pixel import MaxPixel
|
|
24
|
-
from dodal.devices.i04.murko_results import MurkoResultsDevice
|
|
25
|
-
from dodal.devices.i04.transfocator import Transfocator
|
|
26
26
|
from dodal.devices.ipin import IPin
|
|
27
27
|
from dodal.devices.motors import XYZStage
|
|
28
28
|
from dodal.devices.mx_phase1.beamstop import Beamstop
|
|
29
29
|
from dodal.devices.oav.oav_detector import (
|
|
30
30
|
OAVBeamCentrePV,
|
|
31
|
+
ZoomControllerWithBeamCentres,
|
|
31
32
|
)
|
|
32
33
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
33
34
|
from dodal.devices.oav.oav_to_redis_forwarder import OAVToRedisForwarder
|
|
@@ -66,7 +67,6 @@ I04_ZEBRA_MAPPING = ZebraMapping(
|
|
|
66
67
|
outputs=(ZebraTTLOutputs(TTL_DETECTOR=1, TTL_FAST_SHUTTER=2, TTL_XSPRESS3=3)),
|
|
67
68
|
sources=ZebraSources(),
|
|
68
69
|
)
|
|
69
|
-
|
|
70
70
|
PREFIX = BeamlinePrefix(BL)
|
|
71
71
|
|
|
72
72
|
devices = DeviceManager()
|
|
@@ -305,3 +305,11 @@ def beam_centre() -> CentreEllipseMethod:
|
|
|
305
305
|
return CentreEllipseMethod(
|
|
306
306
|
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
307
307
|
)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
@devices.factory()
|
|
311
|
+
def zoom_controller() -> ZoomControllerWithBeamCentres:
|
|
312
|
+
"""Get the i04 zoom controller, instantiate it if it hasn't already been.
|
|
313
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
314
|
+
"""
|
|
315
|
+
return ZoomControllerWithBeamCentres(f"{PREFIX.beamline_prefix}-EA-OAV-01:FZOOM:")
|
dodal/beamlines/i05.py
CHANGED
|
@@ -1,57 +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
|
|
13
|
-
from dodal.devices.temperture_controller import (
|
|
14
|
-
Lakeshore336,
|
|
15
|
-
)
|
|
3
|
+
from dodal.device_manager import DeviceManager
|
|
4
|
+
from dodal.devices.temperture_controller import Lakeshore336
|
|
16
5
|
from dodal.log import set_beamline as set_log_beamline
|
|
17
6
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
18
7
|
|
|
8
|
+
devices = DeviceManager()
|
|
9
|
+
devices.include(i05_shared_devices)
|
|
10
|
+
|
|
19
11
|
BL = get_beamline_name("i05")
|
|
20
12
|
PREFIX = BeamlinePrefix(BL)
|
|
21
13
|
set_log_beamline(BL)
|
|
22
14
|
set_utils_beamline(BL)
|
|
23
15
|
|
|
24
16
|
|
|
25
|
-
@
|
|
26
|
-
def synchrotron() -> Synchrotron:
|
|
27
|
-
return Synchrotron()
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
@device_factory()
|
|
31
|
-
def pgm() -> PlaneGratingMonochromator:
|
|
32
|
-
return i05_pgm()
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
@device_factory()
|
|
36
|
-
def id_gap() -> UndulatorGap:
|
|
37
|
-
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
@device_factory()
|
|
41
|
-
def id_phase() -> UndulatorLockedPhaseAxes:
|
|
42
|
-
return UndulatorLockedPhaseAxes(
|
|
43
|
-
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
44
|
-
top_outer="PL",
|
|
45
|
-
btm_inner="PU",
|
|
46
|
-
)
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
@device_factory()
|
|
50
|
-
def id() -> Apple2:
|
|
51
|
-
"""i05 insertion device."""
|
|
52
|
-
return Apple2(id_gap=id_gap(), id_phase=id_phase())
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
@device_factory()
|
|
17
|
+
@devices.factory()
|
|
56
18
|
def sample_temperature_controller() -> Lakeshore336:
|
|
57
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
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
from dodal.
|
|
2
|
-
device_factory,
|
|
3
|
-
)
|
|
1
|
+
from dodal.beamlines.i06_shared import devices as i06_shared_devices
|
|
4
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
+
from dodal.device_manager import DeviceManager
|
|
5
4
|
from dodal.devices.temperture_controller import (
|
|
6
5
|
Lakeshore336,
|
|
7
6
|
)
|
|
@@ -13,12 +12,15 @@ PREFIX = BeamlinePrefix(BL, suffix="J")
|
|
|
13
12
|
set_log_beamline(BL)
|
|
14
13
|
set_utils_beamline(BL)
|
|
15
14
|
|
|
15
|
+
devices = DeviceManager()
|
|
16
|
+
devices.include(i06_shared_devices)
|
|
17
|
+
|
|
16
18
|
|
|
17
|
-
@
|
|
19
|
+
@devices.factory()
|
|
18
20
|
def diff_cooling_temperature_controller() -> Lakeshore336:
|
|
19
21
|
return Lakeshore336(prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-02:")
|
|
20
22
|
|
|
21
23
|
|
|
22
|
-
@
|
|
24
|
+
@devices.factory()
|
|
23
25
|
def diff_heating_temperature_controller() -> Lakeshore336:
|
|
24
26
|
return Lakeshore336(prefix=f"{PREFIX.beamline_prefix}-EA-TCTRL-03:")
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
from dodal.common.beamlines.beamline_utils import (
|
|
2
|
-
device_factory,
|
|
3
|
-
)
|
|
4
1
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
2
|
+
from dodal.device_manager import DeviceManager
|
|
3
|
+
from dodal.devices.beamlines.i06_shared import I06Grating
|
|
5
4
|
from dodal.devices.insertion_device import (
|
|
6
5
|
Apple2,
|
|
7
6
|
UndulatorGap,
|
|
8
7
|
UndulatorLockedPhaseAxes,
|
|
9
8
|
)
|
|
9
|
+
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
10
10
|
from dodal.devices.synchrotron import Synchrotron
|
|
11
11
|
from dodal.log import set_beamline as set_log_beamline
|
|
12
12
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -16,18 +16,20 @@ PREFIX = BeamlinePrefix(BL)
|
|
|
16
16
|
set_log_beamline(BL)
|
|
17
17
|
set_utils_beamline(BL)
|
|
18
18
|
|
|
19
|
+
devices = DeviceManager()
|
|
20
|
+
|
|
19
21
|
|
|
20
|
-
@
|
|
22
|
+
@devices.factory()
|
|
21
23
|
def synchrotron() -> Synchrotron:
|
|
22
24
|
return Synchrotron()
|
|
23
25
|
|
|
24
26
|
|
|
25
|
-
@
|
|
27
|
+
@devices.factory()
|
|
26
28
|
def idd_gap() -> UndulatorGap:
|
|
27
29
|
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
28
30
|
|
|
29
31
|
|
|
30
|
-
@
|
|
32
|
+
@devices.factory()
|
|
31
33
|
def idd_phase() -> UndulatorLockedPhaseAxes:
|
|
32
34
|
return UndulatorLockedPhaseAxes(
|
|
33
35
|
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
@@ -36,18 +38,18 @@ def idd_phase() -> UndulatorLockedPhaseAxes:
|
|
|
36
38
|
)
|
|
37
39
|
|
|
38
40
|
|
|
39
|
-
@
|
|
40
|
-
def idd() -> Apple2:
|
|
41
|
+
@devices.factory()
|
|
42
|
+
def idd(idd_gap: UndulatorGap, idd_phase: UndulatorLockedPhaseAxes) -> Apple2:
|
|
41
43
|
"""i06 downstream insertion device."""
|
|
42
|
-
return Apple2(id_gap=idd_gap
|
|
44
|
+
return Apple2(id_gap=idd_gap, id_phase=idd_phase)
|
|
43
45
|
|
|
44
46
|
|
|
45
|
-
@
|
|
47
|
+
@devices.factory()
|
|
46
48
|
def idu_gap() -> UndulatorGap:
|
|
47
49
|
return UndulatorGap(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:")
|
|
48
50
|
|
|
49
51
|
|
|
50
|
-
@
|
|
52
|
+
@devices.factory()
|
|
51
53
|
def idu_phase() -> UndulatorLockedPhaseAxes:
|
|
52
54
|
return UndulatorLockedPhaseAxes(
|
|
53
55
|
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
@@ -56,7 +58,16 @@ def idu_phase() -> UndulatorLockedPhaseAxes:
|
|
|
56
58
|
)
|
|
57
59
|
|
|
58
60
|
|
|
59
|
-
@
|
|
60
|
-
def idu() -> Apple2:
|
|
61
|
+
@devices.factory()
|
|
62
|
+
def idu(idu_gap: UndulatorGap, idu_phase: UndulatorLockedPhaseAxes) -> Apple2:
|
|
61
63
|
"""i06 upstream insertion device."""
|
|
62
|
-
return Apple2(id_gap=
|
|
64
|
+
return Apple2(id_gap=idu_gap, id_phase=idu_phase)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
@devices.factory()
|
|
68
|
+
def pgm() -> PlaneGratingMonochromator:
|
|
69
|
+
return PlaneGratingMonochromator(
|
|
70
|
+
prefix=f"{PREFIX.beamline_prefix}-OP-PGM-01:",
|
|
71
|
+
grating=I06Grating,
|
|
72
|
+
grating_pv="NLINES2",
|
|
73
|
+
)
|
dodal/beamlines/i07.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
1
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
-
from dodal.
|
|
4
|
-
from dodal.devices.i07.
|
|
2
|
+
from dodal.device_manager import DeviceManager
|
|
3
|
+
from dodal.devices.beamlines.i07.dcm import DCM
|
|
4
|
+
from dodal.devices.beamlines.i07.id import InsertionDevice
|
|
5
5
|
from dodal.devices.undulator import UndulatorOrder
|
|
6
6
|
from dodal.log import set_beamline as set_log_beamline
|
|
7
7
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
@@ -11,31 +11,29 @@ set_log_beamline(BL)
|
|
|
11
11
|
set_utils_beamline(BL)
|
|
12
12
|
PREFIX = BeamlinePrefix(BL)
|
|
13
13
|
|
|
14
|
+
devices = DeviceManager()
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
@devices.factory()
|
|
16
18
|
def dcm() -> DCM:
|
|
17
|
-
"""Instantiate DCM using two PV bases"""
|
|
18
|
-
|
|
19
|
-
f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
20
|
-
f"{PREFIX.beamline_prefix}-DI-DCM-01:",
|
|
21
|
-
"dcm",
|
|
19
|
+
"""Instantiate DCM using two PV bases."""
|
|
20
|
+
return DCM(
|
|
21
|
+
f"{PREFIX.beamline_prefix}-MO-DCM-01:", f"{PREFIX.beamline_prefix}-DI-DCM-01:"
|
|
22
22
|
)
|
|
23
|
-
return dcm
|
|
24
23
|
|
|
25
24
|
|
|
26
|
-
@
|
|
25
|
+
@devices.factory()
|
|
27
26
|
def harmonic() -> UndulatorOrder:
|
|
28
|
-
return UndulatorOrder(
|
|
27
|
+
return UndulatorOrder()
|
|
29
28
|
|
|
30
29
|
|
|
31
|
-
@
|
|
32
|
-
def id() -> InsertionDevice:
|
|
30
|
+
@devices.factory()
|
|
31
|
+
def id(harmonic: UndulatorOrder) -> InsertionDevice:
|
|
33
32
|
"""Get the i07 undulator device, instantiate it if it hasn't already been.
|
|
34
33
|
If this is called when already instantiated it will return the existing object.
|
|
35
34
|
"""
|
|
36
35
|
return InsertionDevice(
|
|
37
|
-
"id",
|
|
38
36
|
f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
39
|
-
harmonic
|
|
37
|
+
harmonic,
|
|
40
38
|
id_gap_lookup_table_path="/dls_sw/i07/software/gda/config/lookupTables/IIDCalibrationTable.txt",
|
|
41
39
|
)
|