dls-dodal 1.29.4__py3-none-any.whl → 1.31.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dls_dodal-1.29.4.dist-info → dls_dodal-1.31.0.dist-info}/METADATA +29 -44
- dls_dodal-1.31.0.dist-info/RECORD +134 -0
- {dls_dodal-1.29.4.dist-info → dls_dodal-1.31.0.dist-info}/WHEEL +1 -1
- dls_dodal-1.31.0.dist-info/entry_points.txt +3 -0
- dodal/__init__.py +1 -4
- dodal/_version.py +2 -2
- dodal/beamline_specific_utils/i03.py +1 -4
- dodal/beamlines/__init__.py +7 -1
- dodal/beamlines/i03.py +34 -29
- dodal/beamlines/i04.py +39 -16
- dodal/beamlines/i13_1.py +66 -0
- dodal/beamlines/i22.py +22 -22
- dodal/beamlines/i24.py +1 -1
- dodal/beamlines/p38.py +21 -21
- dodal/beamlines/p45.py +18 -16
- dodal/beamlines/p99.py +61 -0
- dodal/beamlines/training_rig.py +64 -0
- dodal/cli.py +6 -3
- dodal/common/beamlines/beamline_parameters.py +7 -6
- dodal/common/beamlines/beamline_utils.py +15 -14
- dodal/common/maths.py +1 -3
- dodal/common/types.py +6 -5
- dodal/common/udc_directory_provider.py +39 -21
- dodal/common/visit.py +60 -62
- dodal/devices/CTAB.py +22 -17
- dodal/devices/aperture.py +1 -1
- dodal/devices/aperturescatterguard.py +139 -209
- dodal/devices/areadetector/adaravis.py +8 -6
- dodal/devices/areadetector/adsim.py +2 -3
- dodal/devices/areadetector/adutils.py +20 -12
- dodal/devices/areadetector/plugins/MJPG.py +2 -1
- dodal/devices/backlight.py +12 -1
- dodal/devices/cryostream.py +19 -7
- dodal/devices/dcm.py +1 -1
- dodal/devices/detector/__init__.py +13 -2
- dodal/devices/detector/det_dim_constants.py +2 -2
- dodal/devices/detector/det_dist_to_beam_converter.py +1 -1
- dodal/devices/detector/detector.py +33 -32
- dodal/devices/detector/detector_motion.py +38 -31
- dodal/devices/eiger.py +11 -15
- dodal/devices/eiger_odin.py +9 -10
- dodal/devices/fast_grid_scan.py +18 -27
- dodal/devices/fluorescence_detector_motion.py +13 -4
- dodal/devices/focusing_mirror.py +6 -6
- dodal/devices/hutch_shutter.py +4 -4
- dodal/devices/i22/dcm.py +5 -4
- dodal/devices/i22/fswitch.py +10 -6
- dodal/devices/i22/nxsas.py +55 -43
- dodal/devices/i24/aperture.py +1 -1
- dodal/devices/i24/beamstop.py +1 -1
- dodal/devices/i24/dcm.py +1 -1
- dodal/devices/i24/{I24_detector_motion.py → i24_detector_motion.py} +1 -1
- dodal/devices/i24/pmac.py +67 -12
- dodal/devices/ipin.py +7 -4
- dodal/devices/linkam3.py +12 -6
- dodal/devices/logging_ophyd_device.py +1 -1
- dodal/devices/motors.py +32 -6
- dodal/devices/oav/grid_overlay.py +1 -0
- dodal/devices/oav/microns_for_zoom_levels.json +1 -1
- dodal/devices/oav/oav_detector.py +2 -1
- dodal/devices/oav/oav_parameters.py +18 -10
- dodal/devices/oav/oav_to_redis_forwarder.py +129 -0
- dodal/devices/oav/pin_image_recognition/__init__.py +6 -6
- dodal/devices/oav/pin_image_recognition/utils.py +5 -6
- dodal/devices/oav/utils.py +2 -2
- dodal/devices/p99/__init__.py +0 -0
- dodal/devices/p99/sample_stage.py +43 -0
- dodal/devices/robot.py +31 -20
- dodal/devices/scatterguard.py +1 -1
- dodal/devices/scintillator.py +8 -5
- dodal/devices/slits.py +1 -1
- dodal/devices/smargon.py +4 -4
- dodal/devices/status.py +2 -31
- dodal/devices/tetramm.py +23 -19
- dodal/devices/thawer.py +5 -3
- dodal/devices/training_rig/__init__.py +0 -0
- dodal/devices/training_rig/sample_stage.py +10 -0
- dodal/devices/turbo_slit.py +1 -1
- dodal/devices/undulator.py +1 -1
- dodal/devices/undulator_dcm.py +6 -8
- dodal/devices/util/adjuster_plans.py +3 -3
- dodal/devices/util/epics_util.py +5 -7
- dodal/devices/util/lookup_tables.py +2 -3
- dodal/devices/util/save_panda.py +87 -0
- dodal/devices/util/test_utils.py +17 -0
- dodal/devices/webcam.py +3 -3
- dodal/devices/xbpm_feedback.py +1 -25
- dodal/devices/xspress3/xspress3.py +1 -1
- dodal/devices/zebra.py +15 -10
- dodal/devices/zebra_controlled_shutter.py +26 -11
- dodal/devices/zocalo/zocalo_interaction.py +10 -2
- dodal/devices/zocalo/zocalo_results.py +36 -19
- dodal/log.py +46 -15
- dodal/plans/check_topup.py +65 -10
- dodal/plans/data_session_metadata.py +8 -9
- dodal/plans/motor_util_plans.py +117 -0
- dodal/utils.py +65 -22
- dls_dodal-1.29.4.dist-info/RECORD +0 -125
- dls_dodal-1.29.4.dist-info/entry_points.txt +0 -2
- dodal/devices/beamstop.py +0 -8
- dodal/devices/qbpm1.py +0 -8
- {dls_dodal-1.29.4.dist-info → dls_dodal-1.31.0.dist-info}/LICENSE +0 -0
- {dls_dodal-1.29.4.dist-info → dls_dodal-1.31.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.31.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
|
|
@@ -210,38 +210,44 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
210
210
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
211
211
|
Classifier: Programming Language :: Python :: 3.10
|
|
212
212
|
Classifier: Programming Language :: Python :: 3.11
|
|
213
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
213
214
|
Requires-Python: >=3.10
|
|
214
|
-
Description-Content-Type: text/
|
|
215
|
+
Description-Content-Type: text/markdown
|
|
215
216
|
License-File: LICENSE
|
|
216
217
|
Requires-Dist: click
|
|
217
218
|
Requires-Dist: ophyd
|
|
218
|
-
Requires-Dist: ophyd-async
|
|
219
|
+
Requires-Dist: ophyd-async >=0.5.2
|
|
219
220
|
Requires-Dist: bluesky
|
|
220
221
|
Requires-Dist: pyepics
|
|
221
222
|
Requires-Dist: dataclasses-json
|
|
222
223
|
Requires-Dist: pillow
|
|
223
|
-
Requires-Dist: zocalo >=0.
|
|
224
|
+
Requires-Dist: zocalo >=1.0.0
|
|
224
225
|
Requires-Dist: requests
|
|
225
226
|
Requires-Dist: graypy
|
|
226
|
-
Requires-Dist: pydantic
|
|
227
|
+
Requires-Dist: pydantic >=2.0
|
|
227
228
|
Requires-Dist: opencv-python-headless
|
|
228
229
|
Requires-Dist: aioca
|
|
229
230
|
Requires-Dist: p4p
|
|
230
231
|
Requires-Dist: numpy <2.0
|
|
231
232
|
Requires-Dist: aiofiles
|
|
232
233
|
Requires-Dist: aiohttp
|
|
234
|
+
Requires-Dist: redis
|
|
233
235
|
Provides-Extra: dev
|
|
236
|
+
Requires-Dist: black ; extra == 'dev'
|
|
237
|
+
Requires-Dist: diff-cover ; extra == 'dev'
|
|
234
238
|
Requires-Dist: mypy ; extra == 'dev'
|
|
235
|
-
Requires-Dist:
|
|
239
|
+
Requires-Dist: myst-parser ; extra == 'dev'
|
|
236
240
|
Requires-Dist: pipdeptree ; extra == 'dev'
|
|
237
241
|
Requires-Dist: pre-commit ; extra == 'dev'
|
|
238
242
|
Requires-Dist: psutil ; extra == 'dev'
|
|
239
243
|
Requires-Dist: pydata-sphinx-theme >=0.12 ; extra == 'dev'
|
|
244
|
+
Requires-Dist: pyright ; extra == 'dev'
|
|
240
245
|
Requires-Dist: pytest ; extra == 'dev'
|
|
241
246
|
Requires-Dist: pytest-asyncio ; extra == 'dev'
|
|
242
247
|
Requires-Dist: pytest-cov ; extra == 'dev'
|
|
243
248
|
Requires-Dist: pytest-random-order ; extra == 'dev'
|
|
244
249
|
Requires-Dist: ruff ; extra == 'dev'
|
|
250
|
+
Requires-Dist: sphinx <7.4.6 ; extra == 'dev'
|
|
245
251
|
Requires-Dist: sphinx-autobuild ; extra == 'dev'
|
|
246
252
|
Requires-Dist: sphinx-copybutton ; extra == 'dev'
|
|
247
253
|
Requires-Dist: sphinxcontrib-mermaid ; extra == 'dev'
|
|
@@ -253,64 +259,43 @@ Requires-Dist: types-mock ; extra == 'dev'
|
|
|
253
259
|
Requires-Dist: types-PyYAML ; extra == 'dev'
|
|
254
260
|
Requires-Dist: types-aiofiles ; extra == 'dev'
|
|
255
261
|
|
|
256
|
-
dodal
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
262
|
+
[](https://github.com/DiamondLightSource/dodal/actions/workflows/ci.yml)
|
|
263
|
+
[](https://codecov.io/gh/DiamondLightSource/dodal)
|
|
264
|
+
[](https://pypi.org/project/dls-dodal)
|
|
265
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
260
266
|
|
|
267
|
+
# dodal
|
|
261
268
|
|
|
262
269
|
Ophyd devices and other utils that could be used across DLS beamlines
|
|
263
270
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
Documentation
|
|
268
|
-
Releases
|
|
269
|
-
============== ==============================================================
|
|
271
|
+
Source | <https://github.com/DiamondLightSource/dodal>
|
|
272
|
+
:---: | :---:
|
|
273
|
+
PyPI | `pip install dls-dodal`
|
|
274
|
+
Documentation | <https://diamondlightsource.github.io/dodal>
|
|
275
|
+
Releases | <https://github.com/DiamondLightSource/dodal/releases>
|
|
270
276
|
|
|
271
277
|
Testing Connectivity
|
|
272
278
|
--------------------
|
|
273
279
|
|
|
274
280
|
You can test your connection to a beamline if it's PVs are visible to your machine with:
|
|
275
281
|
|
|
276
|
-
.. code:: shell
|
|
277
282
|
|
|
283
|
+
```
|
|
278
284
|
# On any workstation:
|
|
279
285
|
dodal connect <BEAMLINE>
|
|
280
286
|
|
|
281
287
|
# On a beamline workstation, this should suffice:
|
|
282
288
|
dodal connect ${BEAMLINE}
|
|
289
|
+
```
|
|
283
290
|
|
|
284
291
|
|
|
285
|
-
For more options, including a list of valid beamlines, type
|
|
286
292
|
|
|
287
|
-
|
|
293
|
+
For more options, including a list of valid beamlines, type
|
|
288
294
|
|
|
295
|
+
```
|
|
289
296
|
dodal connect --help
|
|
297
|
+
```
|
|
290
298
|
|
|
299
|
+
<!-- README only content. Anything below this line won't be included in index.md -->
|
|
291
300
|
|
|
292
|
-
|
|
293
|
-
:target: https://github.com/DiamondLightSource/dodal/actions/workflows/code.yml
|
|
294
|
-
:alt: Code CI
|
|
295
|
-
|
|
296
|
-
.. |docs_ci| image:: https://github.com/DiamondLightSource/dodal/actions/workflows/docs.yml/badge.svg?branch=main
|
|
297
|
-
:target: https://github.com/DiamondLightSource/dodal/actions/workflows/docs.yml
|
|
298
|
-
:alt: Docs CI
|
|
299
|
-
|
|
300
|
-
.. |coverage| image:: https://codecov.io/gh/DiamondLightSource/dodal/branch/main/graph/badge.svg
|
|
301
|
-
:target: https://codecov.io/gh/DiamondLightSource/dodal
|
|
302
|
-
:alt: Test Coverage
|
|
303
|
-
|
|
304
|
-
.. |pypi_version| image:: https://img.shields.io/pypi/v/dls-dodal.svg
|
|
305
|
-
:target: https://pypi.org/project/dls-dodal
|
|
306
|
-
:alt: Latest PyPI version
|
|
307
|
-
|
|
308
|
-
.. |license| image:: https://img.shields.io/badge/License-Apache%202.0-blue.svg
|
|
309
|
-
:target: https://opensource.org/licenses/Apache-2.0
|
|
310
|
-
:alt: Apache License
|
|
311
|
-
|
|
312
|
-
..
|
|
313
|
-
Anything below this line is used when viewing README.rst and will be replaced
|
|
314
|
-
when included in index.rst
|
|
315
|
-
|
|
316
|
-
See https://DiamondLightSource.github.io/dodal for more detailed documentation.
|
|
301
|
+
See https://diamondlightsource.github.io/dodal for more detailed documentation.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
dodal/__init__.py,sha256=v-rRiDOgZ3sQSMQKq0vgUQZvpeOkoHFXissAx6Ktg84,61
|
|
2
|
+
dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
|
|
3
|
+
dodal/_version.py,sha256=dzZT_zSNuduMjHe-sn5PEo3LacKN_h-teTqnUR5SOGk,413
|
|
4
|
+
dodal/adsim.py,sha256=OW2dcS7ciD4Yq9WFw4PN_c5Bwccrmu7R-zr-u6ZCbQM,497
|
|
5
|
+
dodal/cli.py,sha256=_crmaHchxphSW8eEJB58_XZIeK82aiUv9bV7tpz-LpA,2122
|
|
6
|
+
dodal/log.py,sha256=0to7CRsbzbgVfAAfKRAMhsaUuKqF2-7CGdQc-z8Uhno,9499
|
|
7
|
+
dodal/utils.py,sha256=VV-IQHehAdE95wxq3C4kIl5Dt5MTtmgzVaqKm-k3Q4I,11769
|
|
8
|
+
dodal/beamline_specific_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
+
dodal/beamline_specific_utils/i03.py,sha256=eM6ZWZzpL0JYNBff8LhOnwFoZTJ5PDCY2XWI7ZKdtFY,276
|
|
10
|
+
dodal/beamlines/README.md,sha256=K9MkL_GomxlsoTB7Mz-_dJA5NNSbmCfMiutchGg3C8o,404
|
|
11
|
+
dodal/beamlines/__init__.py,sha256=CD0Dz2H1adLsqY4H3-_QxTdODPZD6mquMfsep5W5s0Q,3076
|
|
12
|
+
dodal/beamlines/i03.py,sha256=VHfGk4-Smz5KviL4OpPVlnYGO4rbDAtnGwKtN20hxK0,17004
|
|
13
|
+
dodal/beamlines/i04.py,sha256=JbpOssCBdpDd-TbElc0TfVOZ1tUnDjEFZkj5h1gR6Og,13767
|
|
14
|
+
dodal/beamlines/i04_1.py,sha256=KDxSUQNhIs_NFiRaLY-Jiory0DeN7Y0ErvGuoTrwCDU,4731
|
|
15
|
+
dodal/beamlines/i13_1.py,sha256=csXHrdwUh4sXTmb4X6ZiiSS_XxRkNShsVoBMxYI6rG0,1833
|
|
16
|
+
dodal/beamlines/i20_1.py,sha256=MaPgONHqpoZuBtkiKEzYtViJnKBM2_ekeP4OdbmuXHE,1158
|
|
17
|
+
dodal/beamlines/i22.py,sha256=ko3bo0WoZCFTSQkrNs9m_qDhvEpGWkSzEAZgpo0sRU0,9804
|
|
18
|
+
dodal/beamlines/i23.py,sha256=2j5qLoqE_hg9ETHqNkOVu7LLkVB8qalgXeORnVYKN_I,1075
|
|
19
|
+
dodal/beamlines/i24.py,sha256=1XVCNWbzowQB6CWpJGSLp9Ih0zypktIzHxb64h-Xj6Y,6583
|
|
20
|
+
dodal/beamlines/p38.py,sha256=mCDjRVpY6AIFIAAYCWe-jGABHadFwfJB7poa-dGMU6s,7940
|
|
21
|
+
dodal/beamlines/p45.py,sha256=N4SDTIFok3uMqb37higZHMr3xRjxItsT4ib_KacKKAE,2935
|
|
22
|
+
dodal/beamlines/p99.py,sha256=mHMYi1M_jgSB9SrOPadxvPuMrxG8LmJOYtU0Iw6fnIQ,1708
|
|
23
|
+
dodal/beamlines/training_rig.py,sha256=yagMEQruA1iTOeQCNpux-6xOtkBuB-hhGvAJwQ5c9bg,1846
|
|
24
|
+
dodal/common/__init__.py,sha256=ZC4ICKUDB0BDxRaVy8nmqclVmDBne-dPtk6UJsoFq6I,258
|
|
25
|
+
dodal/common/coordination.py,sha256=OxIjDiO1-9A9KESRPFtzwkvvQlavbgA5RHemlbubBPg,1168
|
|
26
|
+
dodal/common/maths.py,sha256=K9x7iL3xXLtWYTV-xlFHDNSTIL9a2UP3Ws7wr6Dm2rQ,1803
|
|
27
|
+
dodal/common/types.py,sha256=r7Oxcw4lIGi-mvBWc1TF4LDB45q7N4IawNgOMhPohK8,621
|
|
28
|
+
dodal/common/udc_directory_provider.py,sha256=H-9f6uSVGuA8jyiErPi8ikCw1JDrhRAJv-qPpN-HwJk,2379
|
|
29
|
+
dodal/common/visit.py,sha256=2UbbCmgOjZWSCxFzE9RYiTJhA_IoVOegma-Jv-PJqps,5787
|
|
30
|
+
dodal/common/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
+
dodal/common/beamlines/beamline_parameters.py,sha256=oIPHooqu5vTAwfqZutsKbzwdi9nvFF8568Mz7jrK5rI,3618
|
|
32
|
+
dodal/common/beamlines/beamline_utils.py,sha256=rL-XgqAbaZF2FJDFj8OHSbvzCxSwzCUGMfTUWT5qOXs,4422
|
|
33
|
+
dodal/common/beamlines/device_helpers.py,sha256=s79js7no9k8JMfG7NvdmFomSP5m5VDQ6th_Hsbx1znA,939
|
|
34
|
+
dodal/devices/CTAB.py,sha256=MoExneblYUHg9Va8vAVx_p_Vw_HnqbhkzxxrX7Ic_wo,2000
|
|
35
|
+
dodal/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
dodal/devices/adsim.py,sha256=dMU0TKIuiODHYFHQOH4_5UvB8iJtaJEtjqaEDGjcU-w,311
|
|
37
|
+
dodal/devices/aperture.py,sha256=BLaroQ3n8yd7uZyacJ3KvDWZH8yhA_sJc8b49QMKg9o,585
|
|
38
|
+
dodal/devices/aperturescatterguard.py,sha256=id2-h6VB9hMU2dmgkpFkTLOPKiqAktMHsLb7YY0LX-4,8428
|
|
39
|
+
dodal/devices/attenuator.py,sha256=viK1iccNekX6ZvR_ZmSwj5JdM1j2B8pcTg8qWDdmzhQ,2584
|
|
40
|
+
dodal/devices/backlight.py,sha256=mOnptopsVOsT8JUIX_siDRgJ73CQPz_bm0Eb7oA81wc,1607
|
|
41
|
+
dodal/devices/cryostream.py,sha256=CpNA2HGhN_PXkL9eqH_yAPsDxyOLIiehlUxEoNmXJVg,668
|
|
42
|
+
dodal/devices/dcm.py,sha256=eZNMGjLM56Ll0siU14XomB77W_grLIdxIrMOQNmYFG8,1609
|
|
43
|
+
dodal/devices/eiger.py,sha256=sR-Fr97Y0lzzq57fFOUTwUZw5E7asoj36A1JR1QUkLI,13985
|
|
44
|
+
dodal/devices/eiger_odin.py,sha256=tDpEhOUY02YManYAMRI3TwSDDa3uITBxI0JHevaK7Rk,7010
|
|
45
|
+
dodal/devices/fast_grid_scan.py,sha256=7u4YvaoR0CsKs9hgawi5p73v0dY_yJwC0_RlFz25R7Y,11922
|
|
46
|
+
dodal/devices/fluorescence_detector_motion.py,sha256=5IcyaVHXa9TXLFlLB0tfpQ1_ThgIRJNaFNw_uj6ahCA,501
|
|
47
|
+
dodal/devices/flux.py,sha256=RtPStHw7Mad0igVKntKWVZfuZn2clokVJqH14HLix6M,198
|
|
48
|
+
dodal/devices/focusing_mirror.py,sha256=Gx3diH-0VH457MR40HMCovXRjcAALSCO0q2np4l-dL4,5911
|
|
49
|
+
dodal/devices/hutch_shutter.py,sha256=_-hR3SJHM05YHV_fEtc0VYOLamYnpVGDE56AwJGJS48,3320
|
|
50
|
+
dodal/devices/ipin.py,sha256=qsf8E3xrJYNDwzsacNLCCp3gaqsadqmN1b-Fvou8y8k,420
|
|
51
|
+
dodal/devices/linkam3.py,sha256=3oYwPtaKSPvLKEat8m7tuhE4Wizz8mg8HMrEWPCYxn0,3820
|
|
52
|
+
dodal/devices/logging_ophyd_device.py,sha256=dUVE-XhWA56WUXez0mrc4sf322CXY3MVLreTycO5j_A,668
|
|
53
|
+
dodal/devices/motors.py,sha256=dYa9T6FDMTbr8GvTb-lXtk3v4QEqAWRuGmHIO20fazQ,1039
|
|
54
|
+
dodal/devices/p45.py,sha256=jzBW2fGRhIbGzSRs5Fgupxro6aqE611n1RTcrTTG-yY,1047
|
|
55
|
+
dodal/devices/robot.py,sha256=VaD2_ogt497myakfkCC1cGfBoz1I6QVdO8AXzFuGis4,4813
|
|
56
|
+
dodal/devices/s4_slit_gaps.py,sha256=j3kgF9WfGFaU9xdUuiAh-QqI5u_vhiAftaDVINt91SM,243
|
|
57
|
+
dodal/devices/scatterguard.py,sha256=jx03in9QgaThWxD4t1S8_Llent2kWrn_hThJ9KkUWTk,330
|
|
58
|
+
dodal/devices/scintillator.py,sha256=PlD6cnJ39PTB_e7QrRspPliLYE4kL_K7ziJURzuxgdA,365
|
|
59
|
+
dodal/devices/slits.py,sha256=uOyVmbgeygiP6e5Z9t5zMPXLuVEWFfYg9GB3ZU76Tug,600
|
|
60
|
+
dodal/devices/smargon.py,sha256=hX-tCftKumxk67eS5-_gQRmYOrjSyQ4s3mMJsTRuvCk,4706
|
|
61
|
+
dodal/devices/status.py,sha256=hVrJS1yooQo6PRumRACoIEh-SKBUKxvBlQl-MtLFUMQ,327
|
|
62
|
+
dodal/devices/synchrotron.py,sha256=QtTufJA_fCaBawHougSc7nxwu240oX46_y0P-4qIW8o,1960
|
|
63
|
+
dodal/devices/tetramm.py,sha256=ofWhLYFZHCRopDK_WRs1eo-B1ra4bUhwq1MLaVKl4ys,8572
|
|
64
|
+
dodal/devices/thawer.py,sha256=Gq-3f__KJUM6_Ds9OVxpZ5jC447HywJxQGXen6L33Lk,1616
|
|
65
|
+
dodal/devices/turbo_slit.py,sha256=B6SPXqviMnG-U4PnUF1BdTO0LBKmTuwAUKRbxMiNJXo,1125
|
|
66
|
+
dodal/devices/undulator.py,sha256=Uf7DpRjhtqkRcNWTqgtrRjoj6tLLgHEPgkxccWU6LE8,2073
|
|
67
|
+
dodal/devices/undulator_dcm.py,sha256=qUMGKnRluO2jsfz6TuXx6ddN59MlLg1lBqloeBgYZIg,5134
|
|
68
|
+
dodal/devices/webcam.py,sha256=znZHHmQjM0T0XSAYXJraCGlwPPGbt3PF6rWjTSbAikI,1394
|
|
69
|
+
dodal/devices/xbpm_feedback.py,sha256=-1wbnahJ_oSljQR0Sjiwn3mytVP-VwsAy0a_YPjPM0Y,1168
|
|
70
|
+
dodal/devices/zebra.py,sha256=iTHkKv8EP-gkr0Cl2gR9yxt2qTHT2Q4etS67Rshf83k,9327
|
|
71
|
+
dodal/devices/zebra_controlled_shutter.py,sha256=w2ISASJ_sb3dbQGi63Yuj3ymTkjX73aSl_ZTYs8TyaI,1860
|
|
72
|
+
dodal/devices/areadetector/__init__.py,sha256=8IwLxuZMW0MOJpJp_ZDdlaE20hrtsH_PXWGaKgMiYs4,240
|
|
73
|
+
dodal/devices/areadetector/adaravis.py,sha256=Cqw_Mzrp_zODFxQ2LZBJzHp_DsZ6_dAITkZz8gYz_0w,3797
|
|
74
|
+
dodal/devices/areadetector/adsim.py,sha256=cIc9PRbKnftBk7Ut8d8CU_TVrin8EwcKHObP2n9VxWM,1876
|
|
75
|
+
dodal/devices/areadetector/adutils.py,sha256=4axFR3wtn-K-sjMVJyfTcu-8g35odf2cY8mTKv1gS-o,3093
|
|
76
|
+
dodal/devices/areadetector/plugins/MJPG.py,sha256=MqxDbrgpTzM0ezjcEWuLlK80i4M_KLNfdknHCx7k_LM,4100
|
|
77
|
+
dodal/devices/detector/__init__.py,sha256=-RdACL3tzc3lLArWOoGNje48UUlv2fElOmGOz9yOuO0,317
|
|
78
|
+
dodal/devices/detector/det_dim_constants.py,sha256=LNrVMd0DbFEcnyNFmXosCP-VYaZ71Ajuv6inwo4Mg3U,2299
|
|
79
|
+
dodal/devices/detector/det_dist_to_beam_converter.py,sha256=7keoqZYfvgayePVx97lHYpcFRTJnQOfAk_PYP4EZTZQ,1951
|
|
80
|
+
dodal/devices/detector/det_resolution.py,sha256=aQkKp24LpRGiwzPAQM3wLVa4ANw32HdrKc2kftHfKQA,3253
|
|
81
|
+
dodal/devices/detector/detector.py,sha256=RT0cIytpTua1L4k0LrtsZYaXFpB0lkwlGN8q7sQhBrA,4767
|
|
82
|
+
dodal/devices/detector/detector_motion.py,sha256=LjHNi9FcDSZoriQYrFde8fEmwCGccFgSHPtcxivix4g,1628
|
|
83
|
+
dodal/devices/i03/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
+
dodal/devices/i04/transfocator.py,sha256=uieByXIj0JRbmvMB_om5NOAEbEJkzfkCD24bl2aEo1g,3154
|
|
85
|
+
dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
86
|
+
dodal/devices/i22/dcm.py,sha256=YXf4iH4-dNTfm0NPUgrbn1iLP24id4pR8xLsvLc_iWg,6290
|
|
87
|
+
dodal/devices/i22/fswitch.py,sha256=AlyZ_RdbXoMHrG2-sddNOUyLl3vkBdduXVnFL_rMgLo,3046
|
|
88
|
+
dodal/devices/i22/nxsas.py,sha256=a8oJXl5uhkh9zcb9rSZmVooU-SplzzO3EsAaHJZRfrQ,6086
|
|
89
|
+
dodal/devices/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
90
|
+
dodal/devices/i24/aperture.py,sha256=bbT4ts5jfrjrOxG199RGDxIYmzVyv1k0ZlZcmS6kEzU,849
|
|
91
|
+
dodal/devices/i24/beamstop.py,sha256=GpqSaHlyZfcUfaCgvQRjhDgNdGsrOwV_NqG9JLfcusY,1233
|
|
92
|
+
dodal/devices/i24/dcm.py,sha256=nP2qymTy5TrOu078XOY7h1TEwVfcgli5lTyxmwsG4O8,1990
|
|
93
|
+
dodal/devices/i24/dual_backlight.py,sha256=Th-RKr28aFxE8LCT_mdN9KkRIVw0BHLGKkI0ienfRZU,2049
|
|
94
|
+
dodal/devices/i24/i24_detector_motion.py,sha256=_HgdsZqFYY0tKqUgMzViHaPEUFXL3WlXXioGvDehRUw,364
|
|
95
|
+
dodal/devices/i24/i24_vgonio.py,sha256=Igqs7687z6lyhGVeJEDtDmPachYxU48MUH2BF0RpK9Q,461
|
|
96
|
+
dodal/devices/i24/pmac.py,sha256=suWoOIQKhCeQvgBJ8_htRAG6k0REN32viElwvs2nkEg,5224
|
|
97
|
+
dodal/devices/oav/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
+
dodal/devices/oav/grid_overlay.py,sha256=kYs4sCvmo7yG75HQtptuI8jPzM7dR4fSqnOGL0D5j6g,5338
|
|
99
|
+
dodal/devices/oav/microns_for_zoom_levels.json,sha256=kJTkbu2v6_Ccc_cDy7FRTX-gRhXxfYskjVqwBCZIqCQ,1209
|
|
100
|
+
dodal/devices/oav/oav_calculations.py,sha256=wt71vFcyQrr98FvX8oyUM2n5vmKi3K7PyOTuWp0gq5w,1665
|
|
101
|
+
dodal/devices/oav/oav_detector.py,sha256=NpIs6gcMrwe39M1y42M2ZtUhjrbl2LuMmNuUjjc13vg,3785
|
|
102
|
+
dodal/devices/oav/oav_errors.py,sha256=cc4mGnaTiAc5WIlOt_BIYOc7CRSkrCdnBaavfAJ0pXY,754
|
|
103
|
+
dodal/devices/oav/oav_parameters.py,sha256=rI0kRl8B-N2mw91yYf1lEQVn0hkBQCPU7jvljr5ZNpk,8235
|
|
104
|
+
dodal/devices/oav/oav_to_redis_forwarder.py,sha256=3I8Vk1Qx04aVftXb7VVkHUVHweGGUyuLFdmaasmb_Qk,4606
|
|
105
|
+
dodal/devices/oav/utils.py,sha256=OyE4h4eq_jg9bEq5DfcjCU-wfSJifO2-PIsrDbsa0NE,3020
|
|
106
|
+
dodal/devices/oav/pin_image_recognition/__init__.py,sha256=l5IsWMDZDw3-jk0DkGpiw_BzqyfVYRonlfX6Je1ZPR0,6446
|
|
107
|
+
dodal/devices/oav/pin_image_recognition/manual_test.py,sha256=h1Rto6ZDCB3jWhjSy9N8ECxRN583iYDJr9LxrTJ8kfE,903
|
|
108
|
+
dodal/devices/oav/pin_image_recognition/utils.py,sha256=L9ypluYqeOFoS7gQuws-vTNc8LqaKl2ZIDNeQ2JaNpg,8592
|
|
109
|
+
dodal/devices/p99/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
|
+
dodal/devices/p99/sample_stage.py,sha256=kvwKCDUmXqcoXfIbAENtqm3Hi2cHP7dZIPQgQT6hsXw,1140
|
|
111
|
+
dodal/devices/training_rig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
|
+
dodal/devices/training_rig/sample_stage.py,sha256=jktTp837ij8wor5LidE3AajCk95L7DebJotMlO7QwTE,355
|
|
113
|
+
dodal/devices/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
114
|
+
dodal/devices/util/adjuster_plans.py,sha256=g4HTpji3XhIhpWvyDLyCYYLGOSE7uNpDeQHfh8259hE,878
|
|
115
|
+
dodal/devices/util/epics_util.py,sha256=R0_I9HEZ2l19BZaTpevPqT3p3kp5GZCfmNNmnXGfdsc,4689
|
|
116
|
+
dodal/devices/util/lookup_tables.py,sha256=EkO4FlRluakobZzmTQnl1XYYuzezE5T4O760bDTtYRM,2137
|
|
117
|
+
dodal/devices/util/motor_utils.py,sha256=pNY-aUk9LxaIWeDr5rpMS6udiB9j19wcCXkNDLp1uA0,257
|
|
118
|
+
dodal/devices/util/save_panda.py,sha256=PHFlkerBhkkU0-o5dNEdi2P95_jD9Lk8yYgaqn9R97o,2538
|
|
119
|
+
dodal/devices/util/test_utils.py,sha256=VrSFFGLNKOcCAsWFMZOxwhng3wGR5kV8NqqnKfj8Vuw,562
|
|
120
|
+
dodal/devices/xspress3/xspress3.py,sha256=JTx3ppAc8GwV9K-Gfqo81iGYH_L-ONyFWiPRs9XUs-w,4661
|
|
121
|
+
dodal/devices/xspress3/xspress3_channel.py,sha256=yJRwseLmtkW2Vv6GB8sLdOFuBn3e4c9Q8fgPacMgl5w,1638
|
|
122
|
+
dodal/devices/zocalo/__init__.py,sha256=oPhjFB39yf2NWkGD-MMcPFnnOVZ_RtdyBt2OLYn-Xa4,505
|
|
123
|
+
dodal/devices/zocalo/zocalo_interaction.py,sha256=cc-OwjNsh9oMpMghceVWKW9gym_TFmP-mOYBd3H1H7Q,3379
|
|
124
|
+
dodal/devices/zocalo/zocalo_results.py,sha256=L4bUc8xkYCmn5KCx_vcMKFBiBO5F9nhYEffv8fGUS48,9891
|
|
125
|
+
dodal/parameters/experiment_parameter_base.py,sha256=O7JamfuJ5cYHkPf9tsHJPqn-OMHTAGouigvM1cDFehE,313
|
|
126
|
+
dodal/plans/check_topup.py,sha256=3gyLHfHNQBCgEWuAg4QE-ONx7y2Do1vVv5HP8ss0Z1I,5371
|
|
127
|
+
dodal/plans/data_session_metadata.py,sha256=urexZ3mA0K6VWxVW3MlrcsB1Tyi09tFvpKBlaVil7TQ,1567
|
|
128
|
+
dodal/plans/motor_util_plans.py,sha256=JT1K4DBB66MrzNqimxFgiL6mRsj11fF7xZXOz0udEeo,4522
|
|
129
|
+
dls_dodal-1.31.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
130
|
+
dls_dodal-1.31.0.dist-info/METADATA,sha256=uNvk8E5kYjd9SACW3TCTd32eTJtrTCHJSM_bn9sZhyc,16547
|
|
131
|
+
dls_dodal-1.31.0.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
|
132
|
+
dls_dodal-1.31.0.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
|
|
133
|
+
dls_dodal-1.31.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
|
|
134
|
+
dls_dodal-1.31.0.dist-info/RECORD,,
|
dodal/__init__.py
CHANGED
dodal/_version.py
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
from dataclasses import dataclass
|
|
2
2
|
|
|
3
|
-
from dodal.devices.aperturescatterguard import SingleAperturePosition
|
|
4
|
-
|
|
5
3
|
I03_BEAM_HEIGHT_UM = 20
|
|
6
4
|
|
|
7
5
|
|
|
@@ -11,6 +9,5 @@ class BeamSize:
|
|
|
11
9
|
y_um: float | None
|
|
12
10
|
|
|
13
11
|
|
|
14
|
-
def beam_size_from_aperture(
|
|
15
|
-
aperture_size = position.radius_microns
|
|
12
|
+
def beam_size_from_aperture(aperture_size: float | None):
|
|
16
13
|
return BeamSize(aperture_size, I03_BEAM_HEIGHT_UM if aperture_size else None)
|
dodal/beamlines/__init__.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import importlib.util
|
|
2
|
+
from collections.abc import Iterable, Mapping
|
|
2
3
|
from functools import lru_cache
|
|
3
4
|
from pathlib import Path
|
|
4
|
-
from typing import Iterable, Mapping
|
|
5
5
|
|
|
6
6
|
# Where beamline names (per the ${BEAMLINE} environment variable don't always
|
|
7
7
|
# match up, we have to map between them bidirectionally). The most common use case is
|
|
@@ -10,8 +10,13 @@ from typing import Iterable, Mapping
|
|
|
10
10
|
# dictionary, which maps ${BEAMLINE} to dodal.beamlines.<MODULE NAME>
|
|
11
11
|
_BEAMLINE_NAME_OVERRIDES = {
|
|
12
12
|
"i04-1": "i04_1",
|
|
13
|
+
"i13-1": "i13_1",
|
|
13
14
|
"i20-1": "i20_1",
|
|
14
15
|
"s03": "i03",
|
|
16
|
+
"p46": "training_rig",
|
|
17
|
+
"p47": "training_rig",
|
|
18
|
+
"p48": "training_rig",
|
|
19
|
+
"p49": "training_rig",
|
|
15
20
|
}
|
|
16
21
|
|
|
17
22
|
|
|
@@ -27,6 +32,7 @@ def all_beamline_modules() -> Iterable[str]:
|
|
|
27
32
|
# premature importing
|
|
28
33
|
spec = importlib.util.find_spec(__name__)
|
|
29
34
|
if spec is not None:
|
|
35
|
+
assert spec.submodule_search_locations
|
|
30
36
|
search_paths = [Path(path) for path in spec.submodule_search_locations]
|
|
31
37
|
for path in search_paths:
|
|
32
38
|
for subpath in path.glob("**/*"):
|
dodal/beamlines/i03.py
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
from ophyd_async.panda import HDFPanda
|
|
1
|
+
from ophyd_async.fastcs.panda import HDFPanda
|
|
2
2
|
|
|
3
|
+
from dodal.common.beamlines.beamline_parameters import get_beamline_parameters
|
|
3
4
|
from dodal.common.beamlines.beamline_utils import (
|
|
4
5
|
device_instantiation,
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
get_path_provider,
|
|
7
|
+
set_path_provider,
|
|
7
8
|
)
|
|
8
9
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
9
|
-
from dodal.common.udc_directory_provider import
|
|
10
|
-
from dodal.devices.aperturescatterguard import
|
|
10
|
+
from dodal.common.udc_directory_provider import PandASubpathProvider
|
|
11
|
+
from dodal.devices.aperturescatterguard import (
|
|
12
|
+
AperturePosition,
|
|
13
|
+
ApertureScatterguard,
|
|
14
|
+
load_positions_from_beamline_parameters,
|
|
15
|
+
)
|
|
11
16
|
from dodal.devices.attenuator import Attenuator
|
|
12
17
|
from dodal.devices.backlight import Backlight
|
|
18
|
+
from dodal.devices.cryostream import CryoStream
|
|
13
19
|
from dodal.devices.dcm import DCM
|
|
14
20
|
from dodal.devices.detector import DetectorParams
|
|
15
21
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
@@ -20,7 +26,6 @@ from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, VFMMirrorVo
|
|
|
20
26
|
from dodal.devices.motors import XYZPositioner
|
|
21
27
|
from dodal.devices.oav.oav_detector import OAV, OAVConfigParams
|
|
22
28
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
23
|
-
from dodal.devices.qbpm1 import QBPM1
|
|
24
29
|
from dodal.devices.robot import BartRobot
|
|
25
30
|
from dodal.devices.s4_slit_gaps import S4SlitGaps
|
|
26
31
|
from dodal.devices.smargon import Smargon
|
|
@@ -47,30 +52,26 @@ BL = get_beamline_name("s03")
|
|
|
47
52
|
set_log_beamline(BL)
|
|
48
53
|
set_utils_beamline(BL)
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
set_path_provider(PandASubpathProvider())
|
|
51
56
|
|
|
52
57
|
|
|
53
58
|
def aperture_scatterguard(
|
|
54
59
|
wait_for_connection: bool = True,
|
|
55
60
|
fake_with_ophyd_sim: bool = False,
|
|
56
|
-
aperture_positions: AperturePositions | None = None,
|
|
57
61
|
) -> ApertureScatterguard:
|
|
58
62
|
"""Get the i03 aperture and scatterguard device, instantiate it if it hasn't already
|
|
59
63
|
been. If this is called when already instantiated in i03, it will return the existing
|
|
60
|
-
object.
|
|
64
|
+
object.
|
|
61
65
|
"""
|
|
62
|
-
|
|
63
|
-
def load_positions(a_s: ApertureScatterguard):
|
|
64
|
-
if aperture_positions is not None:
|
|
65
|
-
a_s.load_aperture_positions(aperture_positions)
|
|
66
|
-
|
|
66
|
+
params = get_beamline_parameters()
|
|
67
67
|
return device_instantiation(
|
|
68
68
|
device_factory=ApertureScatterguard,
|
|
69
69
|
name="aperture_scatterguard",
|
|
70
70
|
prefix="",
|
|
71
71
|
wait=wait_for_connection,
|
|
72
72
|
fake=fake_with_ophyd_sim,
|
|
73
|
-
|
|
73
|
+
loaded_positions=load_positions_from_beamline_parameters(params),
|
|
74
|
+
tolerances=AperturePosition.tolerances_from_gda_params(params),
|
|
74
75
|
)
|
|
75
76
|
|
|
76
77
|
|
|
@@ -102,17 +103,6 @@ def dcm(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) ->
|
|
|
102
103
|
)
|
|
103
104
|
|
|
104
105
|
|
|
105
|
-
@skip_device(lambda: BL == "s03")
|
|
106
|
-
def qbpm1(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -> QBPM1:
|
|
107
|
-
return device_instantiation(
|
|
108
|
-
device_factory=QBPM1,
|
|
109
|
-
name="qbpm1",
|
|
110
|
-
prefix="",
|
|
111
|
-
wait=wait_for_connection,
|
|
112
|
-
fake=fake_with_ophyd_sim,
|
|
113
|
-
)
|
|
114
|
-
|
|
115
|
-
|
|
116
106
|
@skip_device(lambda: BL == "s03")
|
|
117
107
|
def vfm(
|
|
118
108
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
@@ -388,7 +378,7 @@ def panda(
|
|
|
388
378
|
"-EA-PANDA-01:",
|
|
389
379
|
wait_for_connection,
|
|
390
380
|
fake_with_ophyd_sim,
|
|
391
|
-
|
|
381
|
+
path_provider=get_path_provider(),
|
|
392
382
|
)
|
|
393
383
|
|
|
394
384
|
|
|
@@ -498,7 +488,7 @@ def thawer(
|
|
|
498
488
|
)
|
|
499
489
|
|
|
500
490
|
|
|
501
|
-
def
|
|
491
|
+
def lower_gonio(
|
|
502
492
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
503
493
|
) -> XYZPositioner:
|
|
504
494
|
"""Get the i03 lower gonio device, instantiate it if it hasn't already been.
|
|
@@ -506,8 +496,23 @@ def lower_gonio_positioner(
|
|
|
506
496
|
"""
|
|
507
497
|
return device_instantiation(
|
|
508
498
|
XYZPositioner,
|
|
509
|
-
"
|
|
499
|
+
"lower_gonio",
|
|
510
500
|
"-MO-GONP-01:",
|
|
511
501
|
wait_for_connection,
|
|
512
502
|
fake_with_ophyd_sim,
|
|
513
503
|
)
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
def cryo_stream(
|
|
507
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
508
|
+
) -> CryoStream:
|
|
509
|
+
"""Get the i03 cryostream device, instantiate it if it hasn't already been.
|
|
510
|
+
If this is called when already instantiated in i03, it will return the existing object.
|
|
511
|
+
"""
|
|
512
|
+
return device_instantiation(
|
|
513
|
+
CryoStream,
|
|
514
|
+
"cryo_stream",
|
|
515
|
+
"",
|
|
516
|
+
wait_for_connection,
|
|
517
|
+
fake_with_ophyd_sim,
|
|
518
|
+
)
|
dodal/beamlines/i04.py
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_parameters import get_beamline_parameters
|
|
1
2
|
from dodal.common.beamlines.beamline_utils import device_instantiation
|
|
2
3
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
|
-
from dodal.devices.aperturescatterguard import
|
|
4
|
+
from dodal.devices.aperturescatterguard import (
|
|
5
|
+
AperturePosition,
|
|
6
|
+
ApertureScatterguard,
|
|
7
|
+
load_positions_from_beamline_parameters,
|
|
8
|
+
)
|
|
4
9
|
from dodal.devices.attenuator import Attenuator
|
|
5
10
|
from dodal.devices.backlight import Backlight
|
|
6
|
-
from dodal.devices.beamstop import BeamStop
|
|
7
11
|
from dodal.devices.dcm import DCM
|
|
8
12
|
from dodal.devices.detector import DetectorParams
|
|
9
13
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
@@ -14,13 +18,14 @@ from dodal.devices.i04.transfocator import Transfocator
|
|
|
14
18
|
from dodal.devices.ipin import IPin
|
|
15
19
|
from dodal.devices.motors import XYZPositioner
|
|
16
20
|
from dodal.devices.oav.oav_detector import OAV, OAVConfigParams
|
|
21
|
+
from dodal.devices.oav.oav_to_redis_forwarder import OAVToRedisForwarder
|
|
17
22
|
from dodal.devices.robot import BartRobot
|
|
18
23
|
from dodal.devices.s4_slit_gaps import S4SlitGaps
|
|
19
24
|
from dodal.devices.smargon import Smargon
|
|
20
25
|
from dodal.devices.synchrotron import Synchrotron
|
|
21
26
|
from dodal.devices.thawer import Thawer
|
|
22
27
|
from dodal.devices.undulator import Undulator
|
|
23
|
-
from dodal.devices.xbpm_feedback import
|
|
28
|
+
from dodal.devices.xbpm_feedback import XBPMFeedback
|
|
24
29
|
from dodal.devices.zebra import Zebra
|
|
25
30
|
from dodal.devices.zebra_controlled_shutter import ZebraShutter
|
|
26
31
|
from dodal.log import set_beamline as set_log_beamline
|
|
@@ -32,6 +37,10 @@ ZOOM_PARAMS_FILE = (
|
|
|
32
37
|
DISPLAY_CONFIG = "/dls_sw/i04/software/gda_versions/var/display.configuration"
|
|
33
38
|
DAQ_CONFIGURATION_PATH = "/dls_sw/i04/software/daq_configuration"
|
|
34
39
|
|
|
40
|
+
REDIS_HOST = "i04-control.diamond.ac.uk"
|
|
41
|
+
REDIS_PASSWORD = "not_telling"
|
|
42
|
+
MURKO_REDIS_DB = 7
|
|
43
|
+
|
|
35
44
|
BL = get_beamline_name("s04")
|
|
36
45
|
set_log_beamline(BL)
|
|
37
46
|
set_utils_beamline(BL)
|
|
@@ -97,14 +106,14 @@ def ipin(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) ->
|
|
|
97
106
|
|
|
98
107
|
def beamstop(
|
|
99
108
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
100
|
-
) ->
|
|
109
|
+
) -> XYZPositioner:
|
|
101
110
|
"""Get the i04 beamstop device, instantiate it if it hasn't already been.
|
|
102
111
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
103
112
|
"""
|
|
104
113
|
return device_instantiation(
|
|
105
|
-
|
|
114
|
+
XYZPositioner,
|
|
106
115
|
"beamstop",
|
|
107
|
-
"",
|
|
116
|
+
"-MO-BS-01:",
|
|
108
117
|
wait_for_connection,
|
|
109
118
|
fake_with_ophyd_sim,
|
|
110
119
|
)
|
|
@@ -157,12 +166,12 @@ def transfocator(
|
|
|
157
166
|
|
|
158
167
|
def xbpm_feedback(
|
|
159
168
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
160
|
-
) ->
|
|
169
|
+
) -> XBPMFeedback:
|
|
161
170
|
"""Get the i04 xbpm_feedback device, instantiate it if it hasn't already been.
|
|
162
171
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
163
172
|
"""
|
|
164
173
|
return device_instantiation(
|
|
165
|
-
|
|
174
|
+
XBPMFeedback,
|
|
166
175
|
"xbpm_feedback",
|
|
167
176
|
"",
|
|
168
177
|
wait_for_connection,
|
|
@@ -214,24 +223,20 @@ def backlight(
|
|
|
214
223
|
def aperture_scatterguard(
|
|
215
224
|
wait_for_connection: bool = True,
|
|
216
225
|
fake_with_ophyd_sim: bool = False,
|
|
217
|
-
aperture_positions: AperturePositions | None = None,
|
|
218
226
|
) -> ApertureScatterguard:
|
|
219
227
|
"""Get the i04 aperture and scatterguard device, instantiate it if it hasn't already
|
|
220
228
|
been. If this is called when already instantiated in i04, it will return the existing
|
|
221
|
-
object.
|
|
229
|
+
object.
|
|
222
230
|
"""
|
|
223
|
-
|
|
224
|
-
def load_positions(a_s: ApertureScatterguard):
|
|
225
|
-
if aperture_positions is not None:
|
|
226
|
-
a_s.load_aperture_positions(aperture_positions)
|
|
227
|
-
|
|
231
|
+
params = get_beamline_parameters()
|
|
228
232
|
return device_instantiation(
|
|
229
233
|
device_factory=ApertureScatterguard,
|
|
230
234
|
name="aperture_scatterguard",
|
|
231
235
|
prefix="",
|
|
232
236
|
wait=wait_for_connection,
|
|
233
237
|
fake=fake_with_ophyd_sim,
|
|
234
|
-
|
|
238
|
+
loaded_positions=load_positions_from_beamline_parameters(params),
|
|
239
|
+
tolerances=AperturePosition.tolerances_from_gda_params(params),
|
|
235
240
|
)
|
|
236
241
|
|
|
237
242
|
|
|
@@ -395,3 +400,21 @@ def robot(
|
|
|
395
400
|
wait_for_connection,
|
|
396
401
|
fake_with_ophyd_sim,
|
|
397
402
|
)
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
def oav_to_redis_forwarder(
|
|
406
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
407
|
+
) -> OAVToRedisForwarder:
|
|
408
|
+
"""Get the i04 OAV to redis forwarder, instantiate it if it hasn't already been.
|
|
409
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
410
|
+
"""
|
|
411
|
+
return device_instantiation(
|
|
412
|
+
OAVToRedisForwarder,
|
|
413
|
+
"oav_to_redis_forwarder",
|
|
414
|
+
"-DI-OAV-01:",
|
|
415
|
+
wait_for_connection,
|
|
416
|
+
fake_with_ophyd_sim,
|
|
417
|
+
redis_host=REDIS_HOST,
|
|
418
|
+
redis_password=REDIS_PASSWORD,
|
|
419
|
+
redis_db=7,
|
|
420
|
+
)
|