dls-dodal 1.45.0__tar.gz → 1.46.0__tar.gz
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.45.0 → dls_dodal-1.46.0}/PKG-INFO +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/pyproject.toml +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dls_dodal.egg-info/PKG-INFO +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dls_dodal.egg-info/SOURCES.txt +7 -4
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dls_dodal.egg-info/requires.txt +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/_version.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i03.py +4 -4
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i04.py +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i18.py +7 -4
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i22.py +3 -3
- dls_dodal-1.46.0/src/dodal/beamlines/i23.py +95 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/p38.py +3 -3
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/beamlines/beamline_utils.py +5 -0
- dls_dodal-1.46.0/src/dodal/devices/common_dcm.py +77 -0
- {dls_dodal-1.45.0/src/dodal/devices → dls_dodal-1.46.0/src/dodal/devices/i03}/dcm.py +8 -12
- {dls_dodal-1.45.0/src/dodal/devices → dls_dodal-1.46.0/src/dodal/devices/i03}/undulator_dcm.py +6 -4
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i13_1/merlin.py +3 -4
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i13_1/merlin_controller.py +1 -1
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i22/dcm.py +10 -12
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/dcm.py +8 -17
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/tetramm.py +3 -4
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/turbo_slit.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zebra/zebra.py +4 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plan_stubs/data_session.py +10 -1
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plans/verify_undulator_gap.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i13_1/test_merlin.py +3 -4
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i22/test_dcm.py +21 -16
- dls_dodal-1.46.0/tests/devices/test_common_dcm.py +8 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests → dls_dodal-1.46.0/tests/devices/unit_tests/i03}/test_dcm.py +2 -2
- {dls_dodal-1.45.0/tests/devices/unit_tests → dls_dodal-1.46.0/tests/devices/unit_tests/i03}/test_undulator_dcm.py +2 -2
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_tetramm.py +19 -19
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plan_stubs/test_data_session.py +14 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plans/conftest.py +3 -2
- dls_dodal-1.46.0/tests/unit_tests/__init__.py +0 -0
- dls_dodal-1.45.0/src/dodal/beamlines/i23.py +0 -40
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.copier-answers.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/dependabot.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/pages/index.html +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/scripts/check_test_durations.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.gitignore +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.vscode/extensions.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.vscode/launch.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.vscode/settings.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/.vscode/tasks.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/Dockerfile +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/LICENSE +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/README.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/catalog-info.yaml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/conftest.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/conf.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/explanations.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/genindex.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/how-to.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/index.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/reference/api.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/reference/device-standards.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/reference.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/docs/tutorials.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/pull_request_template.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/setup.cfg +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/adsim.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/aithre.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/b07.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/b07_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i02_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i09.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i09_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i10.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i19_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i19_2.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i19_optics.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/i24.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/p60.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/cli.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/data_util.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/signal_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/aithre_lasershaping/goniometer.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/aperturescatterguard.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/apple2_undulator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/attenuator/attenuator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/attenuator/filter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/attenuator/filter_selections.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/baton.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/bimorph_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/current_amplifiers/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/current_amplifiers/current_amplifier.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/current_amplifiers/current_amplifier_detector.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/current_amplifiers/femto.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/current_amplifiers/sr570.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/current_amplifiers/struck_scaler_counter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/eiger.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/electron_analyser/abstract_analyser_io.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/electron_analyser/abstract_region.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/electron_analyser/specs_analyser_io.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/electron_analyser/specs_region.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/electron_analyser/vgscienta_analyser_io.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/electron_analyser/vgscienta_region.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/fast_grid_scan.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i03/beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/diagnostics.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/i10_setting_data.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/mirrors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/rasor/rasor_current_amp.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/rasor/rasor_motors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/rasor/rasor_scaler_cards.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i10/slits.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i13_1/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i18/KBMirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i18/diode.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i18/table.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i18/thor_labs_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i19/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i19/beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i19/blueapi_device.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i19/hutch_access.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i19/shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/dual_backlight.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/focus_mirrors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/linkam3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/oav_detector.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/snapshots/snapshot.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/snapshots/snapshot_image_processing.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/oav/utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/p99/sample_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/robot.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/slits.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/training_rig/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/util/test_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/xspress3/xspress3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zebra/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zebra/zebra_constants_mapping.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zebra/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/log.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plan_stubs/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plan_stubs/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plan_stubs/electron_analyser/configure_controller.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plans/preprocessors/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plans/preprocessors/verify_undulator_gap.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plans/save_panda.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/src/dodal/utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_adsim.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_aperturescatterguard_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_cli.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_eiger_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_oav_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_oav_to_redis_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/beamlines/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/beamlines/unit_tests/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/beamlines/unit_tests/test_mapping.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/beamlines/test_beamline_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/beamlines/test_device_instantiation.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/test_signal_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/conftest.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/constants.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i03/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i03/test_beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i04/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/test_diagnostic.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i10/test_i10Apple2.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i18/test_kb_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i18/test_table.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i18/test_thor_labs_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i19/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i19/test_beamstop.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i19/test_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i22/test_fswitch.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/test_diamond_filter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/current_amplifier/test_femto.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/current_amplifier/test_sr570.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/conftest.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/test_base_analayser_io.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/test_specs_analyser_io.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/test_specs_region.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/test_util.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests/i24 → dls_dodal-1.46.0/tests/devices/unit_tests/i03}/__init__.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests/oav → dls_dodal-1.46.0/tests/devices/unit_tests/i24}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/i24/test_dual_backlight.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/i24/test_focus_mirrors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/i24/test_pmac.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.45.0/tests/devices/unit_tests/util → dls_dodal-1.46.0/tests/devices/unit_tests/oav}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/conftest.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/test_oav.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/test_oav_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/test_snapshot_image_processing.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/oav/test_snapshots.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/p99/test_p99_stage.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_aperture_scatterguard.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_apple2_undulator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_attenuator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_backlight.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_bart_robot.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_baton.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_bimorph_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_eiger.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_focusing_mirror.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_gridscan.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_hutch_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_linkam3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_motors.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_pressure_jump_cell.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_qbpm.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_slits.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_smargon.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_synchrotron.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_thawer.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_turbo_slit.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_undulator.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_xbpm_feedback.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_xspress3.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_zebra.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_zebra_constants_mapping.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_zebra_shutter.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.45.0/tests/fake_zocalo → dls_dodal-1.46.0/tests/devices/unit_tests/util}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.45.0/tests/unit_tests → dls_dodal-1.46.0/tests/fake_zocalo}/__init__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plan_stubs/test_motor_util_plans.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plan_stubs/test_topup_plan.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plans/test_preprocessors/test_verify_undulator_gap.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plans/test_verify_undulator_gap_plan.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/electron_analyser/specs_sequence.seq +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/electron_analyser/vgscienta_sequence.seq +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/test_utils.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/unit_tests/test_cli.py +0 -0
- {dls_dodal-1.45.0 → dls_dodal-1.46.0}/tests/unit_tests/test_log.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.46.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async>=0.10.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.10.0a3
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.46.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async>=0.10.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.10.0a3
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -136,8 +136,8 @@ src/dodal/devices/apple2_undulator.py
|
|
|
136
136
|
src/dodal/devices/backlight.py
|
|
137
137
|
src/dodal/devices/baton.py
|
|
138
138
|
src/dodal/devices/bimorph_mirror.py
|
|
139
|
+
src/dodal/devices/common_dcm.py
|
|
139
140
|
src/dodal/devices/cryostream.py
|
|
140
|
-
src/dodal/devices/dcm.py
|
|
141
141
|
src/dodal/devices/diamond_filter.py
|
|
142
142
|
src/dodal/devices/eiger.py
|
|
143
143
|
src/dodal/devices/eiger_odin.py
|
|
@@ -166,7 +166,6 @@ src/dodal/devices/tetramm.py
|
|
|
166
166
|
src/dodal/devices/thawer.py
|
|
167
167
|
src/dodal/devices/turbo_slit.py
|
|
168
168
|
src/dodal/devices/undulator.py
|
|
169
|
-
src/dodal/devices/undulator_dcm.py
|
|
170
169
|
src/dodal/devices/watsonmarlow323_pump.py
|
|
171
170
|
src/dodal/devices/webcam.py
|
|
172
171
|
src/dodal/devices/xbpm_feedback.py
|
|
@@ -197,6 +196,8 @@ src/dodal/devices/electron_analyser/vgscienta_analyser_io.py
|
|
|
197
196
|
src/dodal/devices/electron_analyser/vgscienta_region.py
|
|
198
197
|
src/dodal/devices/i03/__init__.py
|
|
199
198
|
src/dodal/devices/i03/beamstop.py
|
|
199
|
+
src/dodal/devices/i03/dcm.py
|
|
200
|
+
src/dodal/devices/i03/undulator_dcm.py
|
|
200
201
|
src/dodal/devices/i04/transfocator.py
|
|
201
202
|
src/dodal/devices/i10/diagnostics.py
|
|
202
203
|
src/dodal/devices/i10/i10_apple2.py
|
|
@@ -324,6 +325,7 @@ tests/common/beamlines/test_beamline_utils.py
|
|
|
324
325
|
tests/common/beamlines/test_device_helpers.py
|
|
325
326
|
tests/common/beamlines/test_device_instantiation.py
|
|
326
327
|
tests/devices/__init__.py
|
|
328
|
+
tests/devices/test_common_dcm.py
|
|
327
329
|
tests/devices/test_diamond_filter.py
|
|
328
330
|
tests/devices/i03/__init__.py
|
|
329
331
|
tests/devices/i03/test_beamstop.py
|
|
@@ -361,7 +363,6 @@ tests/devices/unit_tests/test_baton.py
|
|
|
361
363
|
tests/devices/unit_tests/test_beam_converter.py
|
|
362
364
|
tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt
|
|
363
365
|
tests/devices/unit_tests/test_bimorph_mirror.py
|
|
364
|
-
tests/devices/unit_tests/test_dcm.py
|
|
365
366
|
tests/devices/unit_tests/test_display.configuration
|
|
366
367
|
tests/devices/unit_tests/test_eiger.py
|
|
367
368
|
tests/devices/unit_tests/test_focusing_mirror.py
|
|
@@ -383,7 +384,6 @@ tests/devices/unit_tests/test_tetramm.py
|
|
|
383
384
|
tests/devices/unit_tests/test_thawer.py
|
|
384
385
|
tests/devices/unit_tests/test_turbo_slit.py
|
|
385
386
|
tests/devices/unit_tests/test_undulator.py
|
|
386
|
-
tests/devices/unit_tests/test_undulator_dcm.py
|
|
387
387
|
tests/devices/unit_tests/test_utils.py
|
|
388
388
|
tests/devices/unit_tests/test_watsonmarlow323_pump.py
|
|
389
389
|
tests/devices/unit_tests/test_webcam.py
|
|
@@ -407,6 +407,9 @@ tests/devices/unit_tests/electron_analyser/test_specs_region.py
|
|
|
407
407
|
tests/devices/unit_tests/electron_analyser/test_util.py
|
|
408
408
|
tests/devices/unit_tests/electron_analyser/test_vgscienta_analyser_io.py
|
|
409
409
|
tests/devices/unit_tests/electron_analyser/test_vgscienta_region.py
|
|
410
|
+
tests/devices/unit_tests/i03/__init__.py
|
|
411
|
+
tests/devices/unit_tests/i03/test_dcm.py
|
|
412
|
+
tests/devices/unit_tests/i03/test_undulator_dcm.py
|
|
410
413
|
tests/devices/unit_tests/i24/__init__.py
|
|
411
414
|
tests/devices/unit_tests/i24/test_dual_backlight.py
|
|
412
415
|
tests/devices/unit_tests/i24/test_focus_mirrors.py
|
|
@@ -18,7 +18,6 @@ from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
|
18
18
|
from dodal.devices.backlight import Backlight
|
|
19
19
|
from dodal.devices.baton import Baton
|
|
20
20
|
from dodal.devices.cryostream import CryoStream
|
|
21
|
-
from dodal.devices.dcm import DCM
|
|
22
21
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
23
22
|
from dodal.devices.diamond_filter import DiamondFilter, I03Filters
|
|
24
23
|
from dodal.devices.eiger import EigerDetector
|
|
@@ -26,6 +25,8 @@ from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
|
|
|
26
25
|
from dodal.devices.flux import Flux
|
|
27
26
|
from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
|
|
28
27
|
from dodal.devices.i03.beamstop import Beamstop
|
|
28
|
+
from dodal.devices.i03.dcm import DCM
|
|
29
|
+
from dodal.devices.i03.undulator_dcm import UndulatorDCM
|
|
29
30
|
from dodal.devices.motors import XYZPositioner
|
|
30
31
|
from dodal.devices.oav.oav_detector import OAV
|
|
31
32
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
@@ -37,7 +38,6 @@ from dodal.devices.smargon import Smargon
|
|
|
37
38
|
from dodal.devices.synchrotron import Synchrotron
|
|
38
39
|
from dodal.devices.thawer import Thawer
|
|
39
40
|
from dodal.devices.undulator import Undulator
|
|
40
|
-
from dodal.devices.undulator_dcm import UndulatorDCM
|
|
41
41
|
from dodal.devices.webcam import Webcam
|
|
42
42
|
from dodal.devices.xbpm_feedback import XBPMFeedback
|
|
43
43
|
from dodal.devices.xspress3.xspress3 import Xspress3
|
|
@@ -113,8 +113,8 @@ def dcm() -> DCM:
|
|
|
113
113
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
114
114
|
"""
|
|
115
115
|
return DCM(
|
|
116
|
-
f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
117
|
-
"dcm",
|
|
116
|
+
prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
117
|
+
name="dcm",
|
|
118
118
|
)
|
|
119
119
|
|
|
120
120
|
|
|
@@ -10,13 +10,13 @@ from dodal.devices.aperturescatterguard import (
|
|
|
10
10
|
)
|
|
11
11
|
from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
|
|
12
12
|
from dodal.devices.backlight import Backlight
|
|
13
|
-
from dodal.devices.dcm import DCM
|
|
14
13
|
from dodal.devices.detector import DetectorParams
|
|
15
14
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
16
15
|
from dodal.devices.diamond_filter import DiamondFilter, I04Filters
|
|
17
16
|
from dodal.devices.eiger import EigerDetector
|
|
18
17
|
from dodal.devices.fast_grid_scan import ZebraFastGridScan
|
|
19
18
|
from dodal.devices.flux import Flux
|
|
19
|
+
from dodal.devices.i03.dcm import DCM
|
|
20
20
|
from dodal.devices.i04.transfocator import Transfocator
|
|
21
21
|
from dodal.devices.ipin import IPin
|
|
22
22
|
from dodal.devices.motors import XYZPositioner
|
|
@@ -12,7 +12,7 @@ from dodal.common.visit import (
|
|
|
12
12
|
LocalDirectoryServiceClient,
|
|
13
13
|
StaticVisitPathProvider,
|
|
14
14
|
)
|
|
15
|
-
from dodal.devices.
|
|
15
|
+
from dodal.devices.common_dcm import BaseDCM, PitchAndRollCrystal, RollCrystal
|
|
16
16
|
from dodal.devices.i18.diode import Diode
|
|
17
17
|
from dodal.devices.i18.KBMirror import KBMirror
|
|
18
18
|
from dodal.devices.i18.table import Table
|
|
@@ -54,12 +54,15 @@ def undulator() -> Undulator:
|
|
|
54
54
|
return Undulator(f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
# See https://github.com/DiamondLightSource/dodal/issues/1180
|
|
58
|
+
@device_factory(skip=True)
|
|
59
|
+
def dcm() -> BaseDCM[RollCrystal, PitchAndRollCrystal]:
|
|
59
60
|
# once spacing is added Si111 d-spacing is 3.135 angsterm , and Si311 is 1.637
|
|
60
61
|
# calculations are in gda/config/lookupTables/Si111/eV_Deg_converter.xml
|
|
61
|
-
return
|
|
62
|
+
return BaseDCM(
|
|
62
63
|
prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
64
|
+
xtal_1=RollCrystal,
|
|
65
|
+
xtal_2=PitchAndRollCrystal,
|
|
63
66
|
)
|
|
64
67
|
|
|
65
68
|
|
|
@@ -18,7 +18,7 @@ from dodal.common.crystal_metadata import (
|
|
|
18
18
|
from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
|
|
19
19
|
from dodal.devices.bimorph_mirror import BimorphMirror
|
|
20
20
|
from dodal.devices.focusing_mirror import FocusingMirror
|
|
21
|
-
from dodal.devices.i22.dcm import
|
|
21
|
+
from dodal.devices.i22.dcm import DCM
|
|
22
22
|
from dodal.devices.i22.fswitch import FSwitch
|
|
23
23
|
from dodal.devices.i22.nxsas import NXSasMetadataHolder, NXSasOAV, NXSasPilatus
|
|
24
24
|
from dodal.devices.linkam3 import Linkam3
|
|
@@ -141,8 +141,8 @@ def bimorph_vfm() -> BimorphMirror:
|
|
|
141
141
|
|
|
142
142
|
|
|
143
143
|
@device_factory()
|
|
144
|
-
def dcm() ->
|
|
145
|
-
return
|
|
144
|
+
def dcm() -> DCM:
|
|
145
|
+
return DCM(
|
|
146
146
|
prefix=f"{PREFIX.beamline_prefix}-MO-DCM-01:",
|
|
147
147
|
temperature_prefix=f"{PREFIX.beamline_prefix}-DI-DCM-01:",
|
|
148
148
|
crystal_1_metadata=make_crystal_metadata_from_material(
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from ophyd_async.epics.adpilatus import PilatusDetector
|
|
4
|
+
|
|
5
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
6
|
+
device_factory,
|
|
7
|
+
get_path_provider,
|
|
8
|
+
set_path_provider,
|
|
9
|
+
)
|
|
10
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
11
|
+
from dodal.common.beamlines.device_helpers import HDF5_SUFFIX
|
|
12
|
+
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
|
|
13
|
+
from dodal.devices.motors import SixAxisGonio
|
|
14
|
+
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
15
|
+
from dodal.devices.zebra.zebra import Zebra
|
|
16
|
+
from dodal.devices.zebra.zebra_constants_mapping import (
|
|
17
|
+
ZebraMapping,
|
|
18
|
+
ZebraSources,
|
|
19
|
+
ZebraTTLOutputs,
|
|
20
|
+
)
|
|
21
|
+
from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter
|
|
22
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
23
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name, get_hostname
|
|
24
|
+
|
|
25
|
+
BL = get_beamline_name("i23")
|
|
26
|
+
set_log_beamline(BL)
|
|
27
|
+
set_utils_beamline(BL)
|
|
28
|
+
|
|
29
|
+
set_path_provider(
|
|
30
|
+
StaticVisitPathProvider(
|
|
31
|
+
BL,
|
|
32
|
+
Path("/tmp"),
|
|
33
|
+
client=LocalDirectoryServiceClient(),
|
|
34
|
+
)
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
PREFIX = BeamlinePrefix(BL)
|
|
38
|
+
|
|
39
|
+
I23_ZEBRA_MAPPING = ZebraMapping(
|
|
40
|
+
outputs=ZebraTTLOutputs(TTL_DETECTOR=1, TTL_SHUTTER=4),
|
|
41
|
+
sources=ZebraSources(),
|
|
42
|
+
AND_GATE_FOR_AUTO_SHUTTER=2,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def _is_i23_machine():
|
|
47
|
+
"""
|
|
48
|
+
Devices using PVA can only connect from i23 machines, due to the absence of
|
|
49
|
+
PVA gateways at present.
|
|
50
|
+
"""
|
|
51
|
+
hostname = get_hostname()
|
|
52
|
+
return hostname.startswith("i23-ws") or hostname.startswith("i23-control")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
@device_factory(skip=lambda: not _is_i23_machine())
|
|
56
|
+
def oav_pin_tip_detection() -> PinTipDetection:
|
|
57
|
+
"""Get the i23 OAV pin-tip detection device."""
|
|
58
|
+
|
|
59
|
+
return PinTipDetection(
|
|
60
|
+
f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
61
|
+
"pin_tip_detection",
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@device_factory()
|
|
66
|
+
def shutter() -> ZebraShutter:
|
|
67
|
+
"""Get the i23 zebra controlled shutter."""
|
|
68
|
+
return ZebraShutter(f"{PREFIX.beamline_prefix}-EA-SHTR-01:", "shutter")
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@device_factory()
|
|
72
|
+
def gonio() -> SixAxisGonio:
|
|
73
|
+
"""Get the i23 goniometer"""
|
|
74
|
+
return SixAxisGonio(f"{PREFIX.beamline_prefix}-MO-GONIO-01:")
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
@device_factory()
|
|
78
|
+
def zebra() -> Zebra:
|
|
79
|
+
"""Get the i23 zebra"""
|
|
80
|
+
return Zebra(
|
|
81
|
+
name="zebra",
|
|
82
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-ZEBRA-01:ZEBRA:",
|
|
83
|
+
mapping=I23_ZEBRA_MAPPING,
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@device_factory()
|
|
88
|
+
def pilatus() -> PilatusDetector:
|
|
89
|
+
"""Get the i23 pilatus"""
|
|
90
|
+
return PilatusDetector(
|
|
91
|
+
prefix=f"{PREFIX.beamline_prefix}-EA-PILAT-01:",
|
|
92
|
+
path_provider=get_path_provider(),
|
|
93
|
+
drv_suffix="cam1:",
|
|
94
|
+
fileio_suffix=HDF5_SUFFIX,
|
|
95
|
+
)
|
|
@@ -16,7 +16,7 @@ from dodal.common.crystal_metadata import (
|
|
|
16
16
|
)
|
|
17
17
|
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
|
|
18
18
|
from dodal.devices.focusing_mirror import FocusingMirror
|
|
19
|
-
from dodal.devices.i22.dcm import
|
|
19
|
+
from dodal.devices.i22.dcm import DCM
|
|
20
20
|
from dodal.devices.i22.fswitch import FSwitch
|
|
21
21
|
from dodal.devices.linkam3 import Linkam3
|
|
22
22
|
from dodal.devices.pressure_jump_cell import PressureJumpCell
|
|
@@ -143,8 +143,8 @@ def hfm() -> FocusingMirror:
|
|
|
143
143
|
|
|
144
144
|
|
|
145
145
|
@device_factory(mock=True)
|
|
146
|
-
def dcm() ->
|
|
147
|
-
return
|
|
146
|
+
def dcm() -> DCM:
|
|
147
|
+
return DCM(
|
|
148
148
|
temperature_prefix=f"{PREFIX.beamline_prefix}-DI-DCM-01:",
|
|
149
149
|
crystal_1_metadata=make_crystal_metadata_from_material(
|
|
150
150
|
MaterialsEnum.Si, (1, 1, 1)
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
from typing import Generic, TypeVar
|
|
2
|
+
|
|
3
|
+
from ophyd_async.core import (
|
|
4
|
+
StandardReadable,
|
|
5
|
+
)
|
|
6
|
+
from ophyd_async.epics.core import epics_signal_r
|
|
7
|
+
from ophyd_async.epics.motor import Motor
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class StationaryCrystal(StandardReadable):
|
|
11
|
+
def __init__(self, prefix):
|
|
12
|
+
super().__init__(prefix)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class RollCrystal(StationaryCrystal):
|
|
16
|
+
def __init__(self, prefix):
|
|
17
|
+
with self.add_children_as_readables():
|
|
18
|
+
self.roll_in_mrad = Motor(prefix + "ROLL")
|
|
19
|
+
super().__init__(prefix)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class PitchAndRollCrystal(StationaryCrystal):
|
|
23
|
+
def __init__(self, prefix):
|
|
24
|
+
with self.add_children_as_readables():
|
|
25
|
+
self.pitch_in_mrad = Motor(prefix + "PITCH")
|
|
26
|
+
self.roll_in_mrad = Motor(prefix + "ROLL")
|
|
27
|
+
super().__init__(prefix)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
Xtal_1 = TypeVar("Xtal_1", bound=StationaryCrystal)
|
|
31
|
+
Xtal_2 = TypeVar("Xtal_2", bound=StationaryCrystal)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class BaseDCM(StandardReadable, Generic[Xtal_1, Xtal_2]):
|
|
35
|
+
"""
|
|
36
|
+
Common device for the double crystal monochromator (DCM), used to select the energy of the beam.
|
|
37
|
+
|
|
38
|
+
Features common across all DCM's should include virtual motors to set energy/wavelength and contain two crystals,
|
|
39
|
+
each of which can be movable. Some DCM's contain crystals with roll motors, and some contain crystals with roll and pitch motors.
|
|
40
|
+
This base device accounts for all combinations of this.
|
|
41
|
+
|
|
42
|
+
This device should act as a parent for beamline-specific DCM's, in which any other missing signals can be added.
|
|
43
|
+
|
|
44
|
+
Bluesky plans using DCM's should be typed to specify which types of crystals are required. For example, a plan
|
|
45
|
+
which only requires one crystal which can roll should be typed 'def my_plan(dcm: BaseDCM[RollCrystal, StationaryCrystal])`
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
def __init__(
|
|
49
|
+
self, prefix: str, xtal_1: type[Xtal_1], xtal_2: type[Xtal_2], name: str = ""
|
|
50
|
+
) -> None:
|
|
51
|
+
with self.add_children_as_readables():
|
|
52
|
+
# Virtual motor PV's which set the physical motors so that the DCM produces requested
|
|
53
|
+
# wavelength/energy
|
|
54
|
+
self.energy_in_kev = Motor(prefix + "ENERGY")
|
|
55
|
+
self.wavelength_in_a = Motor(prefix + "WAVELENGTH")
|
|
56
|
+
|
|
57
|
+
# Real motors
|
|
58
|
+
self.bragg_in_degrees = Motor(prefix + "BRAGG")
|
|
59
|
+
# Offset ensures that the beam exits the DCM at the same point, regardless of energy.
|
|
60
|
+
self.offset_in_mm = Motor(prefix + "OFFSET")
|
|
61
|
+
|
|
62
|
+
self.crystal_metadata_d_spacing_a = epics_signal_r(
|
|
63
|
+
float, prefix + "DSPACING:RBV"
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
self._make_crystals(prefix, xtal_1, xtal_2)
|
|
67
|
+
|
|
68
|
+
super().__init__(name)
|
|
69
|
+
|
|
70
|
+
# Prefix convention is different depending on whether there are one or two controllable crystals
|
|
71
|
+
def _make_crystals(self, prefix: str, xtal_1: type[Xtal_1], xtal_2: type[Xtal_2]):
|
|
72
|
+
if StationaryCrystal not in [xtal_1, xtal_2]:
|
|
73
|
+
self.xtal_1 = xtal_1(f"{prefix}XTAL1:")
|
|
74
|
+
self.xtal_2 = xtal_2(f"{prefix}XTAL2:")
|
|
75
|
+
else:
|
|
76
|
+
self.xtal_1 = xtal_1(prefix)
|
|
77
|
+
self.xtal_2 = xtal_2(prefix)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import numpy as np
|
|
2
|
-
from ophyd_async.core import Array1D,
|
|
2
|
+
from ophyd_async.core import Array1D, soft_signal_r_and_setter
|
|
3
3
|
from ophyd_async.epics.core import epics_signal_r
|
|
4
4
|
from ophyd_async.epics.motor import Motor
|
|
5
5
|
|
|
@@ -8,9 +8,14 @@ from dodal.common.crystal_metadata import (
|
|
|
8
8
|
MaterialsEnum,
|
|
9
9
|
make_crystal_metadata_from_material,
|
|
10
10
|
)
|
|
11
|
+
from dodal.devices.common_dcm import (
|
|
12
|
+
BaseDCM,
|
|
13
|
+
PitchAndRollCrystal,
|
|
14
|
+
StationaryCrystal,
|
|
15
|
+
)
|
|
11
16
|
|
|
12
17
|
|
|
13
|
-
class DCM(
|
|
18
|
+
class DCM(BaseDCM[PitchAndRollCrystal, StationaryCrystal]):
|
|
14
19
|
"""
|
|
15
20
|
A double crystal monochromator (DCM), used to select the energy of the beam.
|
|
16
21
|
|
|
@@ -30,13 +35,7 @@ class DCM(StandardReadable):
|
|
|
30
35
|
MaterialsEnum.Si, (1, 1, 1)
|
|
31
36
|
)
|
|
32
37
|
with self.add_children_as_readables():
|
|
33
|
-
self.bragg_in_degrees = Motor(prefix + "BRAGG")
|
|
34
|
-
self.roll_in_mrad = Motor(prefix + "ROLL")
|
|
35
|
-
self.offset_in_mm = Motor(prefix + "OFFSET")
|
|
36
38
|
self.perp_in_mm = Motor(prefix + "PERP")
|
|
37
|
-
self.energy_in_kev = Motor(prefix + "ENERGY")
|
|
38
|
-
self.pitch_in_mrad = Motor(prefix + "PITCH")
|
|
39
|
-
self.wavelength = Motor(prefix + "WAVELENGTH")
|
|
40
39
|
|
|
41
40
|
# temperatures
|
|
42
41
|
self.xtal1_temp = epics_signal_r(float, prefix + "TEMP1")
|
|
@@ -58,7 +57,4 @@ class DCM(StandardReadable):
|
|
|
58
57
|
Array1D[np.uint64],
|
|
59
58
|
initial_value=reflection_array,
|
|
60
59
|
)
|
|
61
|
-
|
|
62
|
-
float, prefix + "DSPACING:RBV"
|
|
63
|
-
)
|
|
64
|
-
super().__init__(name)
|
|
60
|
+
super().__init__(prefix, PitchAndRollCrystal, StationaryCrystal, name)
|
{dls_dodal-1.45.0/src/dodal/devices → dls_dodal-1.46.0/src/dodal/devices/i03}/undulator_dcm.py
RENAMED
|
@@ -4,10 +4,9 @@ from bluesky.protocols import Movable
|
|
|
4
4
|
from ophyd_async.core import AsyncStatus, Reference, StandardReadable
|
|
5
5
|
|
|
6
6
|
from dodal.common.beamlines.beamline_parameters import get_beamline_parameters
|
|
7
|
-
|
|
8
|
-
from
|
|
9
|
-
from .
|
|
10
|
-
from .undulator import Undulator
|
|
7
|
+
from dodal.devices.i03.dcm import DCM
|
|
8
|
+
from dodal.devices.undulator import Undulator
|
|
9
|
+
from dodal.log import LOGGER
|
|
11
10
|
|
|
12
11
|
ENERGY_TIMEOUT_S: float = 30.0
|
|
13
12
|
|
|
@@ -23,6 +22,9 @@ class UndulatorDCM(StandardReadable, Movable[float]):
|
|
|
23
22
|
Calling unulator_dcm.set(energy) will move the DCM motor, perform a table lookup
|
|
24
23
|
and move the Undulator gap motor if needed. So the set method can be thought of as
|
|
25
24
|
a comprehensive way to set beam energy.
|
|
25
|
+
|
|
26
|
+
This class will be removed in the future. Use the separate Undulator and DCM devices
|
|
27
|
+
instead. See https://github.com/DiamondLightSource/dodal/issues/1092
|
|
26
28
|
"""
|
|
27
29
|
|
|
28
30
|
def __init__(
|
|
@@ -23,10 +23,9 @@ class Merlin(StandardDetector):
|
|
|
23
23
|
super().__init__(
|
|
24
24
|
MerlinController(self.drv),
|
|
25
25
|
adcore.ADHDFWriter(
|
|
26
|
-
self.hdf,
|
|
27
|
-
path_provider,
|
|
28
|
-
|
|
29
|
-
adcore.ADBaseDatasetDescriber(self.drv),
|
|
26
|
+
fileio=self.hdf,
|
|
27
|
+
path_provider=path_provider,
|
|
28
|
+
dataset_describer=adcore.ADBaseDatasetDescriber(self.drv),
|
|
30
29
|
),
|
|
31
30
|
config_sigs=(self.drv.acquire_period, self.drv.acquire_time),
|
|
32
31
|
name=name,
|
|
@@ -37,7 +37,7 @@ class MerlinController(ADBaseController):
|
|
|
37
37
|
DEFAULT_TIMEOUT + await self.driver.acquire_time.get_value()
|
|
38
38
|
)
|
|
39
39
|
await asyncio.gather(
|
|
40
|
-
self.driver.num_images.set(trigger_info.
|
|
40
|
+
self.driver.num_images.set(trigger_info.total_number_of_exposures),
|
|
41
41
|
self.driver.image_mode.set(ADImageMode.MULTIPLE),
|
|
42
42
|
)
|
|
43
43
|
|
|
@@ -5,7 +5,6 @@ from bluesky.protocols import Reading
|
|
|
5
5
|
from event_model.documents.event_descriptor import DataKey
|
|
6
6
|
from ophyd_async.core import (
|
|
7
7
|
Array1D,
|
|
8
|
-
StandardReadable,
|
|
9
8
|
StandardReadableFormat,
|
|
10
9
|
soft_signal_r_and_setter,
|
|
11
10
|
)
|
|
@@ -13,13 +12,18 @@ from ophyd_async.epics.core import epics_signal_r
|
|
|
13
12
|
from ophyd_async.epics.motor import Motor
|
|
14
13
|
|
|
15
14
|
from dodal.common.crystal_metadata import CrystalMetadata
|
|
15
|
+
from dodal.devices.common_dcm import (
|
|
16
|
+
BaseDCM,
|
|
17
|
+
PitchAndRollCrystal,
|
|
18
|
+
RollCrystal,
|
|
19
|
+
)
|
|
16
20
|
|
|
17
21
|
# Conversion constant for energy and wavelength, taken from the X-Ray data booklet
|
|
18
22
|
# Converts between energy in KeV and wavelength in angstrom
|
|
19
23
|
_CONVERSION_CONSTANT = 12.3984
|
|
20
24
|
|
|
21
25
|
|
|
22
|
-
class
|
|
26
|
+
class DCM(BaseDCM[RollCrystal, PitchAndRollCrystal]):
|
|
23
27
|
"""
|
|
24
28
|
A double crystal monochromator (DCM), used to select the energy of the beam.
|
|
25
29
|
|
|
@@ -39,13 +43,7 @@ class DoubleCrystalMonochromator(StandardReadable):
|
|
|
39
43
|
) -> None:
|
|
40
44
|
with self.add_children_as_readables():
|
|
41
45
|
# Positionable Parameters
|
|
42
|
-
self.bragg = Motor(prefix + "BRAGG")
|
|
43
|
-
self.offset = Motor(prefix + "OFFSET")
|
|
44
46
|
self.perp = Motor(prefix + "PERP")
|
|
45
|
-
self.energy = Motor(prefix + "ENERGY")
|
|
46
|
-
self.crystal_1_roll = Motor(prefix + "XTAL1:ROLL")
|
|
47
|
-
self.crystal_2_roll = Motor(prefix + "XTAL2:ROLL")
|
|
48
|
-
self.crystal_2_pitch = Motor(prefix + "XTAL2:PITCH")
|
|
49
47
|
|
|
50
48
|
# Temperatures
|
|
51
49
|
self.backplate_temp = epics_signal_r(float, temperature_prefix + "PT100-7")
|
|
@@ -93,12 +91,12 @@ class DoubleCrystalMonochromator(StandardReadable):
|
|
|
93
91
|
units=crystal_2_metadata.d_spacing[1],
|
|
94
92
|
)
|
|
95
93
|
|
|
96
|
-
super().__init__(name)
|
|
94
|
+
super().__init__(prefix, RollCrystal, PitchAndRollCrystal, name)
|
|
97
95
|
|
|
98
96
|
async def describe(self) -> dict[str, DataKey]:
|
|
99
97
|
default_describe = await super().describe()
|
|
100
98
|
return {
|
|
101
|
-
f"{self.name}-
|
|
99
|
+
f"{self.name}-wavelength_in_a": DataKey(
|
|
102
100
|
dtype="number",
|
|
103
101
|
shape=[],
|
|
104
102
|
source=self.name,
|
|
@@ -109,7 +107,7 @@ class DoubleCrystalMonochromator(StandardReadable):
|
|
|
109
107
|
|
|
110
108
|
async def read(self) -> dict[str, Reading]:
|
|
111
109
|
default_reading = await super().read()
|
|
112
|
-
energy: float = default_reading[f"{self.name}-
|
|
110
|
+
energy: float = default_reading[f"{self.name}-energy_in_kev"]["value"]
|
|
113
111
|
if energy > 0.0:
|
|
114
112
|
wavelength = _CONVERSION_CONSTANT / energy
|
|
115
113
|
else:
|
|
@@ -117,7 +115,7 @@ class DoubleCrystalMonochromator(StandardReadable):
|
|
|
117
115
|
|
|
118
116
|
return {
|
|
119
117
|
**default_reading,
|
|
120
|
-
f"{self.name}-
|
|
118
|
+
f"{self.name}-wavelength_in_a": Reading(
|
|
121
119
|
value=wavelength,
|
|
122
120
|
timestamp=time.time(),
|
|
123
121
|
),
|
|
@@ -1,28 +1,19 @@
|
|
|
1
|
-
from ophyd_async.core import StandardReadable
|
|
2
1
|
from ophyd_async.epics.core import epics_signal_r
|
|
3
|
-
from ophyd_async.epics.motor import Motor
|
|
4
2
|
|
|
3
|
+
from dodal.devices.common_dcm import (
|
|
4
|
+
BaseDCM,
|
|
5
|
+
PitchAndRollCrystal,
|
|
6
|
+
RollCrystal,
|
|
7
|
+
)
|
|
5
8
|
|
|
6
|
-
|
|
9
|
+
|
|
10
|
+
class DCM(BaseDCM[RollCrystal, PitchAndRollCrystal]):
|
|
7
11
|
"""
|
|
8
12
|
A double crystal monocromator device, used to select the beam energy.
|
|
9
13
|
"""
|
|
10
14
|
|
|
11
15
|
def __init__(self, prefix: str, name: str = "") -> None:
|
|
12
16
|
with self.add_children_as_readables():
|
|
13
|
-
# Motors
|
|
14
|
-
self.bragg_in_degrees = Motor(prefix + "-MO-DCM-01:BRAGG")
|
|
15
|
-
self.x_translation_in_mm = Motor(prefix + "-MO-DCM-01:X")
|
|
16
|
-
self.offset_in_mm = Motor(prefix + "-MO-DCM-01:OFFSET")
|
|
17
|
-
self.gap_in_mm = Motor(prefix + "-MO-DCM-01:GAP")
|
|
18
|
-
self.energy_in_kev = Motor(prefix + "-MO-DCM-01:ENERGY")
|
|
19
|
-
self.xtal1_roll = Motor(prefix + "-MO-DCM-01:XTAL1:ROLL")
|
|
20
|
-
self.xtal2_roll = Motor(prefix + "-MO-DCM-01:XTAL2:ROLL")
|
|
21
|
-
self.xtal2_pitch = Motor(prefix + "-MO-DCM-01:XTAL2:PITCH")
|
|
22
|
-
|
|
23
|
-
# Wavelength is calculated in epics from the energy
|
|
24
|
-
self.wavelength_in_a = epics_signal_r(float, prefix + "-MO-DCM-01:LAMBDA")
|
|
25
|
-
|
|
26
17
|
# Temperatures
|
|
27
18
|
self.xtal1_temp = epics_signal_r(float, prefix + "-DI-DCM-01:PT100-1")
|
|
28
19
|
self.xtal1_heater_temp = epics_signal_r(
|
|
@@ -39,4 +30,4 @@ class DCM(StandardReadable):
|
|
|
39
30
|
self.b1_plate_temp = epics_signal_r(float, prefix + "-DI-DCM-01:PT100-7")
|
|
40
31
|
self.gap_temp = epics_signal_r(float, prefix + "-DI-DCM-01:TC-1")
|
|
41
32
|
|
|
42
|
-
super().__init__(name)
|
|
33
|
+
super().__init__(prefix + "-MO-DCM-01:", RollCrystal, PitchAndRollCrystal, name)
|
|
@@ -244,10 +244,9 @@ class TetrammDetector(StandardDetector):
|
|
|
244
244
|
super().__init__(
|
|
245
245
|
controller,
|
|
246
246
|
ADHDFWriter(
|
|
247
|
-
self.hdf,
|
|
248
|
-
path_provider,
|
|
249
|
-
|
|
250
|
-
TetrammDatasetDescriber(controller),
|
|
247
|
+
fileio=self.hdf,
|
|
248
|
+
path_provider=path_provider,
|
|
249
|
+
dataset_describer=TetrammDatasetDescriber(controller),
|
|
251
250
|
plugins=plugins,
|
|
252
251
|
),
|
|
253
252
|
config_signals,
|
|
@@ -13,9 +13,9 @@ class TurboSlit(StandardReadable, Movable[float]):
|
|
|
13
13
|
The xfine motor can move the slit in x direction at high frequencies for different scans.
|
|
14
14
|
These slits can be scanned continously or in step mode.
|
|
15
15
|
The relationship between the three motors is as follows:
|
|
16
|
-
- arc - position of the middle of the gap (coarse/ macro) extension
|
|
16
|
+
- arc - position of the middle of the gap in degrees (coarse/ macro) extension
|
|
17
17
|
- gap - width in mm, provides energy resolution
|
|
18
|
-
- xfine selects the energy as part of the high frequency scan
|
|
18
|
+
- xfine - main scanning axis in mm, selects the energy as part of the high frequency scan
|
|
19
19
|
"""
|
|
20
20
|
|
|
21
21
|
def __init__(self, prefix: str, name: str = ""):
|