dls-dodal 1.36.2__tar.gz → 1.36.3__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.36.2 → dls_dodal-1.36.3}/PKG-INFO +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/conftest.py +1 -28
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/pyproject.toml +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/PKG-INFO +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/SOURCES.txt +3 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/requires.txt +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/_version.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i10.py +74 -7
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i24.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/apple2_undulator.py +9 -9
- dls_dodal-1.36.3/src/dodal/devices/i10/i10_setting_data.py +7 -0
- dls_dodal-1.36.3/src/dodal/devices/i10/mirrors.py +24 -0
- dls_dodal-1.36.3/src/dodal/devices/i10/slits.py +37 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/dual_backlight.py +1 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/focus_mirrors.py +12 -12
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/linkam3.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/p99/sample_stage.py +15 -15
- dls_dodal-1.36.3/src/dodal/devices/slits.py +39 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/tetramm.py +16 -16
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/test_utils.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/xspress3/xspress3.py +3 -3
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zebra.py +13 -13
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_oav_to_redis_system.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_beamline_utils.py +2 -1
- dls_dodal-1.36.3/tests/conftest.py +34 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/test_i10Apple2.py +6 -6
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i22/test_dcm.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i22/test_fswitch.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/test_diamond_filter.py +2 -4
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_dual_backlight.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_focus_mirrors.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_pilatus_metadata.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_pmac.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/conftest.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav_to_redis_forwarder.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav_utils.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_snapshots.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/p99/test_p99_stage.py +4 -3
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_aperture_scatterguard.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_apple2_undulator.py +17 -17
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_attenuator.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_backlight.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_bart_robot.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_focusing_mirror.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_gridscan.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_hutch_shutter.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_linkam3.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_pressure_jump_cell.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_qbpm.py +2 -4
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_shutter.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_slits.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_smargon.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_synchrotron.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_tetramm.py +22 -27
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_thawer.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_undulator.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_undulator_dcm.py +3 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_utils.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_watsonmarlow323_pump.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_xbpm_feedback.py +2 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_xspress3.py +2 -2
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_zebra.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plan_stubs/test_motor_util_plans.py +3 -5
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plan_stubs/test_topup_plan.py +1 -1
- dls_dodal-1.36.2/src/dodal/devices/i10/i10_setting_data.py +0 -7
- dls_dodal-1.36.2/src/dodal/devices/slits.py +0 -17
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.copier-answers.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.devcontainer/devcontainer.json +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/CODEOWNERS +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/CONTRIBUTING.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/ISSUE_TEMPLATE/issue_template.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/actions/install_requirements/action.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/dependabot.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/pages/index.html +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/pages/make_switcher.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_check.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_dist.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_docs.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_pypi.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_release.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_test.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/_tox.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/ci.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.github/workflows/periodic.yml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.gitignore +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.pre-commit-config.yaml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/extensions.json +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/launch.json +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/settings.json +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/.vscode/tasks.json +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/Dockerfile +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/LICENSE +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/README.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/catalog-info.yaml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_api.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_templates/autosummary/class.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_templates/autosummary/module.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/_templates/custom-module-template.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/assets/zocalo.png +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/conf.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0001-record-architecture-decisions.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0002-switched-to-python-copier-template.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0003-codeowners.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/0003-make-devices-factory.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions/COPYME +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/decisions.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations/reviews.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/explanations.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/genindex.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/build-docs.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/contribute.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/coverage.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/create-beamline.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/dev-install.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/excalidraw.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/lint.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/lock-requirements.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/make-new-ophyd-async-device.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/make-release.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/move-code.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/pypi.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/run-tests.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/static-analysis.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/update-template.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/write-tests.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to/zocalo.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/how-to.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/images/dls-logo.svg +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/images/excalidraw-example.svg +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/index.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/reference/device-standards.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/reference/standards.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/reference.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/tutorials/get_started.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/tutorials/installation.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/docs/tutorials.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/pull_request_template.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/setup.cfg +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/dependency_links.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/entry_points.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dls_dodal.egg-info/top_level.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/__main__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamline_specific_utils/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamline_specific_utils/i03.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/README.md +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/adsim.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/b01_1.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i03.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i04.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i13_1.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i20_1.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i22.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/i23.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/p38.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/p45.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/p99.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/beamlines/training_rig.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/cli.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/beamline_parameters.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/beamline_utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/beamlines/device_helpers.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/coordination.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/crystal_metadata.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/maths.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/signal_utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/types.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/udc_directory_provider.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/common/visit.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/CTAB.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/adsim.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/aperture.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/aperturescatterguard.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/areadetector/plugins/CAM.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/areadetector/plugins/MJPG.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/attenuator.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/backlight.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/cryostream.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/dcm.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/det_dim_constants.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/det_dist_to_beam_converter.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/det_resolution.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/detector.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/detector/detector_motion.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/diamond_filter.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/eiger.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/eiger_odin.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/fast_grid_scan.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/fluorescence_detector_motion.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/flux.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/focusing_mirror.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/hutch_shutter.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i03/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i04/transfocator.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i10/i10_apple2.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i20_1/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i22/dcm.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i22/fswitch.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i22/nxsas.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/aperture.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/beam_center.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/beamstop.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/dcm.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/i24_detector_motion.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/pilatus_metadata.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/pmac.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/i24/vgonio.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/ipin.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/logging_ophyd_device.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/motors.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/microns_for_zoom_levels.json +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_calculations.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_detector.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_parameters.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/oav_to_redis_forwarder.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/pin_image_recognition/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/pin_image_recognition/manual_test.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/pin_image_recognition/utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/snapshots/grid_overlay.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/snapshots/snapshot_with_beam_centre.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/snapshots/snapshot_with_grid.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/oav/utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/p45.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/p99/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/pgm.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/pressure_jump_cell.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/qbpm.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/robot.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/s4_slit_gaps.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/scatterguard.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/scintillator.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/smargon.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/status.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/synchrotron.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/thawer.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/training_rig/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/training_rig/sample_stage.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/turbo_slit.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/undulator.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/undulator_dcm.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/adjuster_plans.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/epics_util.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/lookup_tables.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/motor_utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/util/save_panda.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/watsonmarlow323_pump.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/webcam.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/xbpm_feedback.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/xspress3/xspress3_channel.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zebra_controlled_shutter.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/zocalo_constants.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/zocalo_interaction.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/devices/zocalo/zocalo_results.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/log.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/parameters/experiment_parameter_base.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/check_topup.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/data_session.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/motor_utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plan_stubs/wrapped.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plans/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plans/scanspec.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/plans/wrapped.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/src/dodal/utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_adsim.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_aperturescatterguard_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_eiger_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_gridscan_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_oav_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_slit_gaps_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_smargon_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_synchrotron_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_undulator_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_zebra_system.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/system_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/test_i03.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/test_i24.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/beamlines/unit_tests/test_mapping.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_beamline_parameters.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_device_helpers.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/beamlines/test_device_instantiation.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_coordination.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_crystal_metadata.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_maths.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_udc_directory_provider.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/common/test_visit.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i04/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i04/test_transfocator.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/IDEnergy2GapCalibrations.csv +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/IDEnergy2PhaseCalibrations.csv +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdd.pkl +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2GapCalibrationsIdu.pkl +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidd.pkl +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i10/lookupTables/expectedIDEnergy2PhaseCalibrationsidu.pkl +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/i22/test_metadataholder.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/training_rig/test_sample_stage.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/conftest.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/detector/test_det_dim_constants.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/detector/test_det_resolution.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/detector/test_detector.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/i24/test_vgonio.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/image_recognition/test_pin_tip_detect_utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_grid_overlay.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/oav/test_oav_parameters.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_OAVCentring.json +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_aperture.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_beam_converter.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_beamline_undulator_to_gap_lookup_table.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_daq_configuration/domain/beamlineParameters +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Pitch_converter.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_daq_configuration/lookup/BeamLineEnergy_DCM_Roll_converter.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_dcm.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_display.configuration +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_eiger.py +1 -1
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_jCameraManZoomLevels.xml +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_lookup_table.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_lookup_table_2.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_odin.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_status.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_webcam.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_zocalo_interaction.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/test_zocalo_results.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_adjuster_plans.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_beamline_specific_utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_lookup_tables.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/devices/unit_tests/util/test_save_panda.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_all_devices_raise_exception.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_broken_dependency.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_dependencies.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_disordered_dependencies.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_misbehaving_builtins.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_beamline_some_devices_working.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_device_factory_beamline.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/README.rst +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/__main__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/fake_zocalo/dls_start_fake_zocalo.sh +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plan_stubs/test_wrapped_stubs.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/conftest.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/test_compliance.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/test_scanspec.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/plans/test_wrapped.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/preprocessors/test_filesystem_metadata.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_cli.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/bad_beamlineParameters +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/i04_beamlineParameters +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_dcm_roll_converter.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_dcm_roll_converter_non_monotonic.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_dcm_roll_converter_reversed.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_beamline_parameters.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_det_dist_converter.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_images/oav_snapshot_expected.png +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/test_images/oav_snapshot_test.png +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/topup_long_delay.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_data/topup_short_params.txt +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/test_utils.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/unit_tests/__init__.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/unit_tests/test_cli.py +0 -0
- {dls_dodal-1.36.2 → dls_dodal-1.36.3}/tests/unit_tests/test_log.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.36.
|
|
3
|
+
Version: 1.36.3
|
|
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.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.9.0a1
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import asyncio
|
|
2
|
-
import importlib
|
|
3
2
|
import logging
|
|
4
3
|
import os
|
|
5
4
|
import sys
|
|
@@ -18,14 +17,13 @@ from ophyd_async.core import (
|
|
|
18
17
|
PathProvider,
|
|
19
18
|
)
|
|
20
19
|
|
|
21
|
-
from dodal.common.beamlines import
|
|
20
|
+
from dodal.common.beamlines import beamline_utils
|
|
22
21
|
from dodal.common.visit import (
|
|
23
22
|
DirectoryServiceClient,
|
|
24
23
|
LocalDirectoryServiceClient,
|
|
25
24
|
StaticVisitPathProvider,
|
|
26
25
|
)
|
|
27
26
|
from dodal.log import LOGGER, GELFTCPHandler, set_up_all_logging_handlers
|
|
28
|
-
from dodal.utils import make_all_devices
|
|
29
27
|
|
|
30
28
|
MOCK_DAQ_CONFIG_PATH = "tests/devices/unit_tests/test_daq_configuration"
|
|
31
29
|
mock_paths = [
|
|
@@ -82,31 +80,6 @@ if os.getenv("PYTEST_RAISE", "0") == "1":
|
|
|
82
80
|
raise excinfo.value
|
|
83
81
|
|
|
84
82
|
|
|
85
|
-
def mock_beamline_module_filepaths(bl_name, bl_module):
|
|
86
|
-
if mock_attributes := mock_attributes_table.get(bl_name):
|
|
87
|
-
[bl_module.__setattr__(attr[0], attr[1]) for attr in mock_attributes]
|
|
88
|
-
beamline_parameters.BEAMLINE_PARAMETER_PATHS[bl_name] = (
|
|
89
|
-
"tests/test_data/i04_beamlineParameters"
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
@pytest.fixture(scope="function")
|
|
94
|
-
def module_and_devices_for_beamline(request):
|
|
95
|
-
beamline = request.param
|
|
96
|
-
with patch.dict(os.environ, {"BEAMLINE": beamline}, clear=True):
|
|
97
|
-
bl_mod = importlib.import_module("dodal.beamlines." + beamline)
|
|
98
|
-
importlib.reload(bl_mod)
|
|
99
|
-
mock_beamline_module_filepaths(beamline, bl_mod)
|
|
100
|
-
devices, exceptions = make_all_devices(
|
|
101
|
-
bl_mod,
|
|
102
|
-
include_skipped=True,
|
|
103
|
-
fake_with_ophyd_sim=True,
|
|
104
|
-
)
|
|
105
|
-
yield (bl_mod, devices, exceptions)
|
|
106
|
-
beamline_utils.clear_devices()
|
|
107
|
-
del bl_mod
|
|
108
|
-
|
|
109
|
-
|
|
110
83
|
def pytest_runtest_setup(item):
|
|
111
84
|
beamline_utils.clear_devices()
|
|
112
85
|
if LOGGER.handlers == []:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.36.
|
|
3
|
+
Version: 1.36.3
|
|
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.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.9.0a1
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -170,6 +170,8 @@ src/dodal/devices/i03/__init__.py
|
|
|
170
170
|
src/dodal/devices/i04/transfocator.py
|
|
171
171
|
src/dodal/devices/i10/i10_apple2.py
|
|
172
172
|
src/dodal/devices/i10/i10_setting_data.py
|
|
173
|
+
src/dodal/devices/i10/mirrors.py
|
|
174
|
+
src/dodal/devices/i10/slits.py
|
|
173
175
|
src/dodal/devices/i20_1/__init__.py
|
|
174
176
|
src/dodal/devices/i22/dcm.py
|
|
175
177
|
src/dodal/devices/i22/fswitch.py
|
|
@@ -238,6 +240,7 @@ system_tests/test_undulator_system.py
|
|
|
238
240
|
system_tests/test_zebra_system.py
|
|
239
241
|
system_tests/test_zocalo_results.py
|
|
240
242
|
tests/__init__.py
|
|
243
|
+
tests/conftest.py
|
|
241
244
|
tests/fake_beamline.py
|
|
242
245
|
tests/fake_beamline_all_devices_raise_exception.py
|
|
243
246
|
tests/fake_beamline_broken_dependency.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
|
|
3
|
-
from dodal.common.beamlines.beamline_utils import device_instantiation
|
|
3
|
+
from dodal.common.beamlines.beamline_utils import device_factory, device_instantiation
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
5
|
from dodal.devices.apple2_undulator import (
|
|
6
6
|
UndulatorGap,
|
|
@@ -14,13 +14,18 @@ from dodal.devices.i10.i10_apple2 import (
|
|
|
14
14
|
LinearArbitraryAngle,
|
|
15
15
|
)
|
|
16
16
|
from dodal.devices.i10.i10_setting_data import I10Grating
|
|
17
|
+
from dodal.devices.i10.mirrors import PiezoMirror
|
|
18
|
+
from dodal.devices.i10.slits import I10PrimarySlits, I10Slits
|
|
17
19
|
from dodal.devices.pgm import PGM
|
|
20
|
+
from dodal.devices.slits import MinimalSlits
|
|
18
21
|
from dodal.log import set_beamline as set_log_beamline
|
|
19
22
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
20
23
|
|
|
21
24
|
BL = get_beamline_name("i10")
|
|
22
25
|
set_log_beamline(BL)
|
|
23
26
|
set_utils_beamline(BL)
|
|
27
|
+
PREFIX = BeamlinePrefix(BL)
|
|
28
|
+
|
|
24
29
|
|
|
25
30
|
LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/"
|
|
26
31
|
"""
|
|
@@ -39,7 +44,7 @@ def idd_gap(
|
|
|
39
44
|
return device_instantiation(
|
|
40
45
|
device_factory=UndulatorGap,
|
|
41
46
|
name="idd_gap",
|
|
42
|
-
prefix=f"{
|
|
47
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
43
48
|
wait=wait_for_connection,
|
|
44
49
|
fake=fake_with_ophyd_sim,
|
|
45
50
|
bl_prefix=False,
|
|
@@ -52,7 +57,7 @@ def idd_phase_axes(
|
|
|
52
57
|
return device_instantiation(
|
|
53
58
|
device_factory=UndulatorPhaseAxes,
|
|
54
59
|
name="idd_phase_axes",
|
|
55
|
-
prefix=f"{
|
|
60
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
56
61
|
top_outer="RPQ1",
|
|
57
62
|
top_inner="RPQ2",
|
|
58
63
|
btm_inner="RPQ3",
|
|
@@ -69,7 +74,7 @@ def idd_jaw(
|
|
|
69
74
|
return device_instantiation(
|
|
70
75
|
device_factory=UndulatorJawPhase,
|
|
71
76
|
name="idd_jaw",
|
|
72
|
-
prefix=f"{
|
|
77
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
73
78
|
move_pv="RPQ1",
|
|
74
79
|
wait=wait_for_connection,
|
|
75
80
|
fake=fake_with_ophyd_sim,
|
|
@@ -83,7 +88,7 @@ def idu_gap(
|
|
|
83
88
|
return device_instantiation(
|
|
84
89
|
device_factory=UndulatorGap,
|
|
85
90
|
name="idu_gap",
|
|
86
|
-
prefix=f"{
|
|
91
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
87
92
|
wait=wait_for_connection,
|
|
88
93
|
fake=fake_with_ophyd_sim,
|
|
89
94
|
bl_prefix=False,
|
|
@@ -96,7 +101,7 @@ def idu_phase_axes(
|
|
|
96
101
|
return device_instantiation(
|
|
97
102
|
device_factory=UndulatorPhaseAxes,
|
|
98
103
|
name="idu_phase_axes",
|
|
99
|
-
prefix=f"{
|
|
104
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
100
105
|
top_outer="RPQ1",
|
|
101
106
|
top_inner="RPQ2",
|
|
102
107
|
btm_inner="RPQ3",
|
|
@@ -113,7 +118,7 @@ def idu_jaw(
|
|
|
113
118
|
return device_instantiation(
|
|
114
119
|
device_factory=UndulatorJawPhase,
|
|
115
120
|
name="idu_jaw",
|
|
116
|
-
prefix=f"{
|
|
121
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
117
122
|
move_pv="RPQ1",
|
|
118
123
|
wait=wait_for_connection,
|
|
119
124
|
fake=fake_with_ophyd_sim,
|
|
@@ -255,3 +260,65 @@ def idd_la_angle(
|
|
|
255
260
|
wait=wait_for_connection,
|
|
256
261
|
fake=fake_with_ophyd_sim,
|
|
257
262
|
)
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
@device_factory()
|
|
266
|
+
def first_mirror() -> PiezoMirror:
|
|
267
|
+
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
@device_factory()
|
|
271
|
+
def switching_mirror() -> PiezoMirror:
|
|
272
|
+
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:")
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
@device_factory()
|
|
276
|
+
def slit_1() -> I10PrimarySlits:
|
|
277
|
+
return I10PrimarySlits(
|
|
278
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-01:",
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
@device_factory()
|
|
283
|
+
def slit_2() -> I10Slits:
|
|
284
|
+
return I10Slits(
|
|
285
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-02:",
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
@device_factory()
|
|
290
|
+
def slit_3() -> I10Slits:
|
|
291
|
+
return I10Slits(
|
|
292
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:",
|
|
293
|
+
)
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
"""Rasor devices"""
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
@device_factory()
|
|
300
|
+
def focusing_mirror() -> PiezoMirror:
|
|
301
|
+
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
@device_factory()
|
|
305
|
+
def slit_4() -> MinimalSlits:
|
|
306
|
+
return MinimalSlits(
|
|
307
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-04:",
|
|
308
|
+
x_gap="XSIZE",
|
|
309
|
+
y_gap="YSIZE",
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
@device_factory()
|
|
314
|
+
def slit_5() -> I10Slits:
|
|
315
|
+
return I10Slits(
|
|
316
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-05:",
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
@device_factory()
|
|
321
|
+
def slit_6() -> I10Slits:
|
|
322
|
+
return I10Slits(
|
|
323
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:",
|
|
324
|
+
)
|
|
@@ -21,7 +21,7 @@ from dodal.log import set_beamline as set_log_beamline
|
|
|
21
21
|
from dodal.utils import get_beamline_name, skip_device
|
|
22
22
|
|
|
23
23
|
ZOOM_PARAMS_FILE = (
|
|
24
|
-
"/dls_sw/i24/software/gda_versions/
|
|
24
|
+
"/dls_sw/i24/software/gda_versions/gda/config/xml/jCameraManZoomLevels.xml"
|
|
25
25
|
)
|
|
26
26
|
DISPLAY_CONFIG = "/dls_sw/i24/software/gda_versions/var/display.configuration"
|
|
27
27
|
|
|
@@ -21,8 +21,8 @@ from dodal.log import LOGGER
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class UndulatorGateStatus(StrictEnum):
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
OPEN = "Open"
|
|
25
|
+
CLOSE = "Closed"
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
@dataclass
|
|
@@ -146,7 +146,7 @@ class UndulatorGap(StandardReadable, Movable):
|
|
|
146
146
|
timeout = await self._cal_timeout()
|
|
147
147
|
LOGGER.info(f"Moving {self.name} to {value} with timeout = {timeout}")
|
|
148
148
|
await self.set_move.set(value=1, timeout=timeout)
|
|
149
|
-
await wait_for_value(self.gate, UndulatorGateStatus.
|
|
149
|
+
await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
|
|
150
150
|
|
|
151
151
|
async def _cal_timeout(self) -> float:
|
|
152
152
|
vel = await self.velocity.get_value()
|
|
@@ -157,7 +157,7 @@ class UndulatorGap(StandardReadable, Movable):
|
|
|
157
157
|
async def check_id_status(self) -> None:
|
|
158
158
|
if await self.fault.get_value() != 0:
|
|
159
159
|
raise RuntimeError(f"{self.name} is in fault state")
|
|
160
|
-
if await self.gate.get_value() == UndulatorGateStatus.
|
|
160
|
+
if await self.gate.get_value() == UndulatorGateStatus.OPEN:
|
|
161
161
|
raise RuntimeError(f"{self.name} is already in motion.")
|
|
162
162
|
|
|
163
163
|
async def get_timeout(self) -> float:
|
|
@@ -251,7 +251,7 @@ class UndulatorPhaseAxes(StandardReadable, Movable):
|
|
|
251
251
|
)
|
|
252
252
|
timeout = await self._cal_timeout()
|
|
253
253
|
await self.set_move.set(value=1, timeout=timeout)
|
|
254
|
-
await wait_for_value(self.gate, UndulatorGateStatus.
|
|
254
|
+
await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
|
|
255
255
|
|
|
256
256
|
async def _cal_timeout(self) -> float:
|
|
257
257
|
"""
|
|
@@ -283,7 +283,7 @@ class UndulatorPhaseAxes(StandardReadable, Movable):
|
|
|
283
283
|
async def check_id_status(self) -> None:
|
|
284
284
|
if await self.fault.get_value() != 0:
|
|
285
285
|
raise RuntimeError(f"{self.name} is in fault state")
|
|
286
|
-
if await self.gate.get_value() == UndulatorGateStatus.
|
|
286
|
+
if await self.gate.get_value() == UndulatorGateStatus.OPEN:
|
|
287
287
|
raise RuntimeError(f"{self.name} is already in motion.")
|
|
288
288
|
|
|
289
289
|
async def get_timeout(self) -> float:
|
|
@@ -325,7 +325,7 @@ class UndulatorJawPhase(StandardReadable, Movable):
|
|
|
325
325
|
)
|
|
326
326
|
timeout = await self._cal_timeout()
|
|
327
327
|
await self.set_move.set(value=1, timeout=timeout)
|
|
328
|
-
await wait_for_value(self.gate, UndulatorGateStatus.
|
|
328
|
+
await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
|
|
329
329
|
|
|
330
330
|
async def _cal_timeout(self) -> float:
|
|
331
331
|
"""
|
|
@@ -345,7 +345,7 @@ class UndulatorJawPhase(StandardReadable, Movable):
|
|
|
345
345
|
async def check_id_status(self) -> None:
|
|
346
346
|
if await self.fault.get_value() != 0:
|
|
347
347
|
raise RuntimeError(f"{self.name} is in fault state")
|
|
348
|
-
if await self.gate.get_value() == UndulatorGateStatus.
|
|
348
|
+
if await self.gate.get_value() == UndulatorGateStatus.OPEN:
|
|
349
349
|
raise RuntimeError(f"{self.name} is already in motion.")
|
|
350
350
|
|
|
351
351
|
async def get_timeout(self) -> float:
|
|
@@ -458,7 +458,7 @@ class Apple2(StandardReadable, Movable):
|
|
|
458
458
|
self.phase().set_move.set(value=1, timeout=timeout),
|
|
459
459
|
)
|
|
460
460
|
await wait_for_value(
|
|
461
|
-
self.gap().gate, UndulatorGateStatus.
|
|
461
|
+
self.gap().gate, UndulatorGateStatus.CLOSE, timeout=timeout
|
|
462
462
|
)
|
|
463
463
|
self._energy_set(energy) # Update energy for after move for readback.
|
|
464
464
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from ophyd_async.core import StandardReadable
|
|
2
|
+
from ophyd_async.epics.core import epics_signal_rw
|
|
3
|
+
from ophyd_async.epics.motor import Motor
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class PiezoMirror(StandardReadable):
|
|
7
|
+
def __init__(
|
|
8
|
+
self,
|
|
9
|
+
prefix: str,
|
|
10
|
+
name: str = "",
|
|
11
|
+
):
|
|
12
|
+
with self.add_children_as_readables():
|
|
13
|
+
self.x = Motor(prefix + "X")
|
|
14
|
+
self.y = Motor(prefix + "Y")
|
|
15
|
+
self.z = Motor(prefix + "Z")
|
|
16
|
+
self.yaw = Motor(prefix + "YAW")
|
|
17
|
+
self.pitch = Motor(prefix + "PITCH")
|
|
18
|
+
self.roll = Motor(prefix + "ROLL")
|
|
19
|
+
self.fine_pitch = epics_signal_rw(
|
|
20
|
+
float,
|
|
21
|
+
read_pv=prefix + "FPITCH:RBV:AI",
|
|
22
|
+
write_pv=prefix + "FPITCH:DMD:AO",
|
|
23
|
+
)
|
|
24
|
+
super().__init__(name=name)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from ophyd_async.epics.motor import Motor
|
|
2
|
+
|
|
3
|
+
from dodal.devices.slits import Slits
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class I10Slits(Slits):
|
|
7
|
+
def __init__(self, prefix: str, name: str = "") -> None:
|
|
8
|
+
with self.add_children_as_readables():
|
|
9
|
+
self.x_ring_blade = Motor(prefix + "XRING")
|
|
10
|
+
self.x_hall_blade = Motor(prefix + "XHALL")
|
|
11
|
+
self.y_top_blade = Motor(prefix + "YPLUS")
|
|
12
|
+
self.y_bot_blade = Motor(prefix + "YMINUS")
|
|
13
|
+
super().__init__(
|
|
14
|
+
prefix=prefix,
|
|
15
|
+
x_gap="XSIZE",
|
|
16
|
+
x_centre="XCENTRE",
|
|
17
|
+
y_gap="YSIZE",
|
|
18
|
+
y_centre="YCENTRE",
|
|
19
|
+
name=name,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class I10PrimarySlits(Slits):
|
|
24
|
+
def __init__(self, prefix: str, name: str = "") -> None:
|
|
25
|
+
with self.add_children_as_readables():
|
|
26
|
+
self.x_aptr_1 = Motor(prefix + "APTR1:X")
|
|
27
|
+
self.x_aptr_2 = Motor(prefix + "APTR2:X")
|
|
28
|
+
self.y_aptr_1 = Motor(prefix + "APTR1:Y")
|
|
29
|
+
self.y_aptr_1 = Motor(prefix + "APTR2:Y")
|
|
30
|
+
super().__init__(
|
|
31
|
+
prefix=prefix,
|
|
32
|
+
x_gap="XSIZE",
|
|
33
|
+
x_centre="XCENTRE",
|
|
34
|
+
y_gap="YSIZE",
|
|
35
|
+
y_centre="YCENTRE",
|
|
36
|
+
name=name,
|
|
37
|
+
)
|
|
@@ -5,21 +5,21 @@ from dodal.common.signal_utils import create_hardware_backed_soft_signal
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class HFocusMode(StrictEnum):
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
FOCUS_10 = "HMFMfocus10"
|
|
9
|
+
FOCUS_20D = "HMFMfocus20d"
|
|
10
|
+
FOCUS_30D = "HMFMfocus30d"
|
|
11
|
+
FOCUS_50D = "HMFMfocus50d"
|
|
12
|
+
FOCUS_1050D = "HMFMfocus1030d"
|
|
13
|
+
FOCUS_3010D = "HMFMfocus3010d"
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class VFocusMode(StrictEnum):
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
FOCUS_10 = "VMFMfocus10"
|
|
18
|
+
FOCUS_20D = "VMFMfocus20d"
|
|
19
|
+
FOCUS_30D = "VMFMfocus30d"
|
|
20
|
+
FOCUS_50D = "VMFMfocus50d"
|
|
21
|
+
FOCUS_1030D = "VMFMfocus1030d"
|
|
22
|
+
FOCUS_3010D = "VMFMfocus3010d"
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
BEAM_SIZES = {
|
|
@@ -12,22 +12,22 @@ class SampleAngleStage(StandardReadable):
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class p99StageSelections(SubsetEnum):
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
EMPTY = "Empty"
|
|
16
|
+
MN5UM = "Mn 5um"
|
|
17
|
+
FE = "Fe (empty)"
|
|
18
|
+
CO5UM = "Co 5um"
|
|
19
|
+
NI5UM = "Ni 5um"
|
|
20
|
+
CU5UM = "Cu 5um"
|
|
21
|
+
ZN5UM = "Zn 5um"
|
|
22
|
+
ZR = "Zr (empty)"
|
|
23
|
+
MO = "Mo (empty)"
|
|
24
|
+
RH = "Rh (empty)"
|
|
25
|
+
PD = "Pd (empty)"
|
|
26
|
+
AG = "Ag (empty)"
|
|
27
|
+
CD25UM = "Cd 25um"
|
|
28
28
|
W = "W (empty)"
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
PT = "Pt (empty)"
|
|
30
|
+
USER = "User"
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
class FilterMotor(StandardReadable):
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from ophyd_async.core import StandardReadable
|
|
2
|
+
from ophyd_async.epics.motor import Motor
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class MinimalSlits(StandardReadable):
|
|
6
|
+
"""Gap only X Y slits."""
|
|
7
|
+
|
|
8
|
+
def __init__(
|
|
9
|
+
self,
|
|
10
|
+
prefix: str,
|
|
11
|
+
x_gap: str = "X:SIZE",
|
|
12
|
+
y_gap: str = "Y:SIZE",
|
|
13
|
+
name: str = "",
|
|
14
|
+
) -> None:
|
|
15
|
+
with self.add_children_as_readables():
|
|
16
|
+
self.x_gap = Motor(prefix + x_gap)
|
|
17
|
+
self.y_gap = Motor(prefix + y_gap)
|
|
18
|
+
super().__init__(name=name)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Slits(MinimalSlits):
|
|
22
|
+
"""
|
|
23
|
+
Representation of a 4-blade set of slits. Allows control/readout of the gap
|
|
24
|
+
between each pair of blades.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(
|
|
28
|
+
self,
|
|
29
|
+
prefix: str,
|
|
30
|
+
x_gap: str = "X:SIZE",
|
|
31
|
+
y_gap: str = "Y:SIZE",
|
|
32
|
+
x_centre: str = "X:CENTRE",
|
|
33
|
+
y_centre: str = "Y:CENTRE",
|
|
34
|
+
name: str = "",
|
|
35
|
+
) -> None:
|
|
36
|
+
with self.add_children_as_readables():
|
|
37
|
+
self.x_centre = Motor(prefix + x_centre)
|
|
38
|
+
self.y_centre = Motor(prefix + y_centre)
|
|
39
|
+
super().__init__(prefix=prefix, x_gap=x_gap, y_gap=y_gap, name=name)
|
|
@@ -22,31 +22,31 @@ from ophyd_async.epics.core import (
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class TetrammRange(StrictEnum):
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
UA = "+- 120 uA"
|
|
26
|
+
NA = "+- 120 nA"
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class TetrammTrigger(StrictEnum):
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
FREE_RUN = "Free run"
|
|
31
|
+
EXT_TRIGGER = "Ext. trig."
|
|
32
|
+
EXT_BULB = "Ext. bulb"
|
|
33
|
+
EXT_GATE = "Ext. gate"
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class TetrammChannels(StrictEnum):
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
ONE = "1"
|
|
38
|
+
TWO = "2"
|
|
39
|
+
FOUR = "4"
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class TetrammResolution(StrictEnum):
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
SIXTEEN_BITS = "16 bits"
|
|
44
|
+
TWENTY_FOUR_BITS = "24 bits"
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
class TetrammGeometry(StrictEnum):
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
DIAMOND = "Diamond"
|
|
49
|
+
SQUARE = "Square"
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
class TetrammDriver(Device):
|
|
@@ -118,7 +118,7 @@ class TetrammController(DetectorController):
|
|
|
118
118
|
assert trigger_info.livetime is not None
|
|
119
119
|
|
|
120
120
|
# trigger mode must be set first and on its own!
|
|
121
|
-
await self._drv.trigger_mode.set(TetrammTrigger.
|
|
121
|
+
await self._drv.trigger_mode.set(TetrammTrigger.EXT_TRIGGER)
|
|
122
122
|
|
|
123
123
|
await asyncio.gather(
|
|
124
124
|
self._drv.averaging_time.set(trigger_info.livetime),
|
|
@@ -134,8 +134,8 @@ class TetrammController(DetectorController):
|
|
|
134
134
|
|
|
135
135
|
def _validate_trigger(self, trigger: DetectorTrigger) -> None:
|
|
136
136
|
supported_trigger_types = {
|
|
137
|
-
DetectorTrigger.
|
|
138
|
-
DetectorTrigger.
|
|
137
|
+
DetectorTrigger.EDGE_TRIGGER,
|
|
138
|
+
DetectorTrigger.CONSTANT_GATE,
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
if trigger not in supported_trigger_types:
|
|
@@ -26,12 +26,12 @@ class TriggerMode(StrictEnum):
|
|
|
26
26
|
SOFTWARE = "Software"
|
|
27
27
|
HARDWARE = "Hardware"
|
|
28
28
|
BURST = "Burst"
|
|
29
|
-
|
|
29
|
+
TTL_VETO_ONLY = "TTL Veto Only"
|
|
30
30
|
IDC = "IDC"
|
|
31
31
|
SOTWARE_START_STOP = "Software Start/Stop"
|
|
32
32
|
TTL_BOTH = "TTL Both"
|
|
33
33
|
LVDS_VETO_ONLY = "LVDS Veto Only"
|
|
34
|
-
|
|
34
|
+
LVDS_BOTH = "LVDS Both"
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
class UpdateRBV(StrictEnum):
|
|
@@ -49,7 +49,7 @@ class DetectorState(StrictEnum):
|
|
|
49
49
|
ACQUIRE = "Acquire"
|
|
50
50
|
READOUT = "Readout"
|
|
51
51
|
CORRECT = "Correct"
|
|
52
|
-
|
|
52
|
+
SAVING = "Saving"
|
|
53
53
|
ABORTING = "Aborting"
|
|
54
54
|
ERROR = "Error"
|
|
55
55
|
WAITING = "Waiting"
|