dls-dodal 1.25.0__py3-none-any.whl → 1.27.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.25.0.dist-info → dls_dodal-1.27.0.dist-info}/METADATA +22 -1
- {dls_dodal-1.25.0.dist-info → dls_dodal-1.27.0.dist-info}/RECORD +43 -37
- dls_dodal-1.27.0.dist-info/entry_points.txt +2 -0
- dodal/__main__.py +1 -9
- dodal/_version.py +2 -2
- dodal/beamlines/README.md +3 -0
- dodal/beamlines/__init__.py +85 -0
- dodal/beamlines/i03.py +29 -14
- dodal/beamlines/i04.py +43 -11
- dodal/beamlines/i04_1.py +2 -2
- dodal/beamlines/i20_1.py +2 -2
- dodal/beamlines/i22.py +46 -12
- dodal/beamlines/i23.py +2 -2
- dodal/beamlines/i24.py +5 -3
- dodal/beamlines/p38.py +55 -10
- dodal/beamlines/p45.py +2 -2
- dodal/cli.py +68 -0
- dodal/common/beamlines/__init__.py +0 -0
- dodal/{beamlines → common/beamlines}/beamline_utils.py +2 -2
- dodal/{beamlines/_device_helpers.py → common/beamlines/device_helpers.py} +1 -2
- dodal/common/coordination.py +11 -9
- dodal/common/visit.py +1 -43
- dodal/devices/aperturescatterguard.py +41 -6
- dodal/devices/attenuator.py +61 -105
- dodal/devices/backlight.py +30 -14
- dodal/devices/detector/detector.py +3 -0
- dodal/devices/eiger.py +8 -0
- dodal/devices/eiger_odin.py +1 -0
- dodal/devices/fast_grid_scan.py +185 -192
- dodal/devices/focusing_mirror.py +1 -1
- dodal/devices/i22/fswitch.py +43 -4
- dodal/devices/linkam3.py +108 -0
- dodal/devices/robot.py +2 -0
- dodal/devices/thawer.py +15 -0
- dodal/devices/undulator.py +33 -2
- dodal/devices/undulator_dcm.py +3 -5
- dodal/devices/zebra_controlled_shutter.py +38 -0
- dodal/plans/data_session_metadata.py +46 -0
- dodal/utils.py +64 -10
- dodal/devices/panda_fast_grid_scan.py +0 -162
- dodal/devices/sample_shutter.py +0 -24
- {dls_dodal-1.25.0.dist-info → dls_dodal-1.27.0.dist-info}/LICENSE +0 -0
- {dls_dodal-1.25.0.dist-info → dls_dodal-1.27.0.dist-info}/WHEEL +0 -0
- {dls_dodal-1.25.0.dist-info → dls_dodal-1.27.0.dist-info}/top_level.txt +0 -0
- /dodal/{beamlines → common/beamlines}/beamline_parameters.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.27.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
|
|
@@ -213,6 +213,7 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
213
213
|
Requires-Python: >=3.10
|
|
214
214
|
Description-Content-Type: text/x-rst
|
|
215
215
|
License-File: LICENSE
|
|
216
|
+
Requires-Dist: click
|
|
216
217
|
Requires-Dist: ophyd
|
|
217
218
|
Requires-Dist: ophyd-async >=0.3a5
|
|
218
219
|
Requires-Dist: bluesky
|
|
@@ -265,6 +266,26 @@ Documentation https://DiamondLightSource.github.io/dodal
|
|
|
265
266
|
Releases https://github.com/DiamondLightSource/dodal/releases
|
|
266
267
|
============== ==============================================================
|
|
267
268
|
|
|
269
|
+
Testing Connectivity
|
|
270
|
+
--------------------
|
|
271
|
+
|
|
272
|
+
You can test your connection to a beamline if it's PVs are visible to your machine with:
|
|
273
|
+
|
|
274
|
+
.. code:: shell
|
|
275
|
+
|
|
276
|
+
# On any workstation:
|
|
277
|
+
dodal connect <BEAMLINE>
|
|
278
|
+
|
|
279
|
+
# On a beamline workstation, this should suffice:
|
|
280
|
+
dodal connect ${BEAMLINE}
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
For more options, including a list of valid beamlines, type
|
|
284
|
+
|
|
285
|
+
.. code:: shell
|
|
286
|
+
|
|
287
|
+
dodal connect --help
|
|
288
|
+
|
|
268
289
|
|
|
269
290
|
.. |code_ci| image:: https://github.com/DiamondLightSource/dodal/actions/workflows/code.yml/badge.svg?branch=main
|
|
270
291
|
:target: https://github.com/DiamondLightSource/dodal/actions/workflows/code.yml
|
|
@@ -1,56 +1,58 @@
|
|
|
1
1
|
dodal/__init__.py,sha256=y-VRpfiX-Lm5nchB9N0VfMy_6dwFqVxpSn5SiAQql9I,114
|
|
2
|
-
dodal/__main__.py,sha256=
|
|
3
|
-
dodal/_version.py,sha256=
|
|
2
|
+
dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
|
|
3
|
+
dodal/_version.py,sha256=XlqTK6aXcDzaFgsrMUHCuU_TY8zt9cjwfCWklVgy2Hg,413
|
|
4
4
|
dodal/adsim.py,sha256=OW2dcS7ciD4Yq9WFw4PN_c5Bwccrmu7R-zr-u6ZCbQM,497
|
|
5
|
+
dodal/cli.py,sha256=z0UBESrNrq6Kq4rttp4uHcwS1fnOnRkKBRDHSriPpGY,2058
|
|
5
6
|
dodal/log.py,sha256=grK5-c-V6UjMERwDqYPdKbc_BpycrNb8hP0uteLOVCY,8296
|
|
6
|
-
dodal/utils.py,sha256=
|
|
7
|
+
dodal/utils.py,sha256=aH-W94t6NFOoGHZ7awbUKY8_k7qIYDourCFs3MKIjjA,10024
|
|
7
8
|
dodal/beamline_specific_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
9
|
dodal/beamline_specific_utils/i03.py,sha256=Ixe1anFQl-kwRJubmQx28TIW4Zw8qDxpElNNNapWQHI,396
|
|
9
|
-
dodal/beamlines/
|
|
10
|
-
dodal/beamlines/
|
|
11
|
-
dodal/beamlines/
|
|
12
|
-
dodal/beamlines/
|
|
13
|
-
dodal/beamlines/
|
|
14
|
-
dodal/beamlines/
|
|
15
|
-
dodal/beamlines/
|
|
16
|
-
dodal/beamlines/
|
|
17
|
-
dodal/beamlines/
|
|
18
|
-
dodal/beamlines/
|
|
19
|
-
dodal/beamlines/
|
|
20
|
-
dodal/beamlines/p38.py,sha256=OrlfIYO__EqBhZWWSg3mCwGb5zyoTMGrjI2L6gr-SEE,6071
|
|
21
|
-
dodal/beamlines/p45.py,sha256=T7EXD4LAvucoIr5MeLrDL1vsho4ELtzKDu2KLmFXziA,2943
|
|
10
|
+
dodal/beamlines/README.md,sha256=K9MkL_GomxlsoTB7Mz-_dJA5NNSbmCfMiutchGg3C8o,404
|
|
11
|
+
dodal/beamlines/__init__.py,sha256=U0dQYFEUloCdQOs24zyfpPTncJXOO4cDcfHSevVOAw4,2890
|
|
12
|
+
dodal/beamlines/i03.py,sha256=nOWm9iUYOwqUDAkBXC4UkYmN2GGD1MbTgyCCMO_YXBw,16394
|
|
13
|
+
dodal/beamlines/i04.py,sha256=JOyNcUnC3wva4no2MHKp6b8gOKAcQXL_c4cBo7oneVs,13034
|
|
14
|
+
dodal/beamlines/i04_1.py,sha256=KDxSUQNhIs_NFiRaLY-Jiory0DeN7Y0ErvGuoTrwCDU,4731
|
|
15
|
+
dodal/beamlines/i20_1.py,sha256=XJpey1-XZnCVpjK6-tODRYeBofqV44BL8lK5OSdQgiI,746
|
|
16
|
+
dodal/beamlines/i22.py,sha256=TlXgAuRYM4JS733tyZyLMYDyC7ajwg85_XzYI5qh46U,7574
|
|
17
|
+
dodal/beamlines/i23.py,sha256=iEFkrA4sPQsRLGAmeD263jPMX4u2SF1NK4_KYqnVwow,1402
|
|
18
|
+
dodal/beamlines/i24.py,sha256=LIe8tu_ZJsoeQH7tYRZHSvqQ9C9zBGOXO6rb1DPCYjQ,4595
|
|
19
|
+
dodal/beamlines/p38.py,sha256=0uRL4GVs1sGobr0BZpDDbtStNJcipT6o4FvoA_OWLaE,7120
|
|
20
|
+
dodal/beamlines/p45.py,sha256=TNIkC-SBfj0ayZtlLLXW9xCSi5CzJkO8XpAMIo8fjao,2957
|
|
22
21
|
dodal/common/__init__.py,sha256=ZC4ICKUDB0BDxRaVy8nmqclVmDBne-dPtk6UJsoFq6I,258
|
|
23
|
-
dodal/common/coordination.py,sha256=
|
|
22
|
+
dodal/common/coordination.py,sha256=OxIjDiO1-9A9KESRPFtzwkvvQlavbgA5RHemlbubBPg,1168
|
|
24
23
|
dodal/common/maths.py,sha256=JRSBhbMzwlicKp1_Bsfu9gA79JJA_Dgq9EpbExFH65M,1829
|
|
25
24
|
dodal/common/types.py,sha256=M0gZs9F7--gREF8VYJn-Y1Mt9mIEgp1aLY3oUpUkSno,546
|
|
26
25
|
dodal/common/udc_directory_provider.py,sha256=zNlt_VgdAlyBtVN7neTHk_0tWBbI4pPUL7q9WQOzXvo,1260
|
|
27
|
-
dodal/common/visit.py,sha256=
|
|
26
|
+
dodal/common/visit.py,sha256=MhrFbLptMG0Wvd2nHubBwQ44qAzoP4Bf4_z_-wO8rh0,6063
|
|
27
|
+
dodal/common/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
+
dodal/common/beamlines/beamline_parameters.py,sha256=N22dtDLw3Hlo7EUmGxe4qFGcu7OnldwCz_mU7yK2rd0,3577
|
|
29
|
+
dodal/common/beamlines/beamline_utils.py,sha256=AgmH9wpnFQ4DHAA7_Yo0COa2piX2ksFxukFt2_600kA,4488
|
|
30
|
+
dodal/common/beamlines/device_helpers.py,sha256=s79js7no9k8JMfG7NvdmFomSP5m5VDQ6th_Hsbx1znA,939
|
|
28
31
|
dodal/devices/CTAB.py,sha256=_MfL_KH4uDPxq_RuHFEZ9HVXOpUnQb5be3csoz9DdAs,1630
|
|
29
32
|
dodal/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
33
|
dodal/devices/adsim.py,sha256=dMU0TKIuiODHYFHQOH4_5UvB8iJtaJEtjqaEDGjcU-w,311
|
|
31
34
|
dodal/devices/aperture.py,sha256=0MtTzKMDZ5DVAz0DE0kXI0M76VCp0y9vFsrMggEMpxk,586
|
|
32
|
-
dodal/devices/aperturescatterguard.py,sha256=
|
|
33
|
-
dodal/devices/attenuator.py,sha256=
|
|
34
|
-
dodal/devices/backlight.py,sha256=
|
|
35
|
+
dodal/devices/aperturescatterguard.py,sha256=2JJsEPJGJHrI0ztv1cSaP7H5T6qdzDfUcN-VEQ39B8o,11012
|
|
36
|
+
dodal/devices/attenuator.py,sha256=OD7fElTIMHWk7ZopPqEu29lionm7WwgC0-Kvl8vBIb0,2599
|
|
37
|
+
dodal/devices/backlight.py,sha256=vsNGZB4C_mVMafllvJlOTghsfv6UqALMKUMLXu3WZ5k,1115
|
|
35
38
|
dodal/devices/beamstop.py,sha256=8L3qhlk-3ZBOp10xK1i8qZqYTGOXX1mVF1MgXoN0dfg,215
|
|
36
39
|
dodal/devices/cryostream.py,sha256=6MU4rXIOL33C-8F3DVfAtv0ZnwiysTtawjkeePd5IrQ,332
|
|
37
40
|
dodal/devices/dcm.py,sha256=vfyGYDzfSwTiNqlzkfNjkrL-Q1hNVSgJddvJ5Un_lvg,1610
|
|
38
|
-
dodal/devices/eiger.py,sha256=
|
|
39
|
-
dodal/devices/eiger_odin.py,sha256=
|
|
40
|
-
dodal/devices/fast_grid_scan.py,sha256=
|
|
41
|
+
dodal/devices/eiger.py,sha256=NE4tHdqgUZpUxJLQbd5lLUIHZcpeotppexJGlDNByzM,13868
|
|
42
|
+
dodal/devices/eiger_odin.py,sha256=U5Byb7uNwDdNscBRp7yBYQrsjKrKXl2l5WdSpL09lAw,6980
|
|
43
|
+
dodal/devices/fast_grid_scan.py,sha256=_jsiUxpMO2rAGDhTFPN8J35e6E0oreLpKYi6W8wQGzs,12798
|
|
41
44
|
dodal/devices/fluorescence_detector_motion.py,sha256=RrXfPmJzWnAjcjp9u0AnJEfjvWPMKburVTySB2hxYbw,181
|
|
42
45
|
dodal/devices/flux.py,sha256=RtPStHw7Mad0igVKntKWVZfuZn2clokVJqH14HLix6M,198
|
|
43
|
-
dodal/devices/focusing_mirror.py,sha256=
|
|
46
|
+
dodal/devices/focusing_mirror.py,sha256=aRqBkE3OgaXpH6lP3v1VbSYgHsMMbSsPPXzeyAGf_Pg,6435
|
|
44
47
|
dodal/devices/ipin.py,sha256=OGMXwAE4KDDonZRPFkUmR9Vsk6X4Ox-hEvPT5drP-mQ,208
|
|
48
|
+
dodal/devices/linkam3.py,sha256=TPhiQ1D9i_HIlKHAlfnVfX7H6aPOAeXPEJLdmvwdKWQ,3776
|
|
45
49
|
dodal/devices/logging_ophyd_device.py,sha256=xw4lbyqq5_ehESGterVEfubJsBiJTWvBp5b9k62gSkg,666
|
|
46
50
|
dodal/devices/lower_gonio_stages.py,sha256=oJ_Xeuqs5E8AWAoZX52jD1qV6pCSjCOjdwnXFKz_xjw,229
|
|
47
51
|
dodal/devices/motors.py,sha256=aKtMv5q_4b1eFhzyuk2-D6zDsY_6cqAmG59y5LWUz1s,1328
|
|
48
52
|
dodal/devices/p45.py,sha256=jzBW2fGRhIbGzSRs5Fgupxro6aqE611n1RTcrTTG-yY,1047
|
|
49
|
-
dodal/devices/panda_fast_grid_scan.py,sha256=cQmrs3pQ3P_J1e5C1IOdjDZibRthIHjqY98eaH5kLCE,5424
|
|
50
53
|
dodal/devices/qbpm1.py,sha256=OY7-WbdxMiLGUK8Z57ezwqSXbHxoPP-y3GvBgj9kgMA,220
|
|
51
|
-
dodal/devices/robot.py,sha256=
|
|
54
|
+
dodal/devices/robot.py,sha256=V5Gk-e1ZczU7y8SqU4_1YXYQJ6knoVFtXLZmIDY9MI4,2530
|
|
52
55
|
dodal/devices/s4_slit_gaps.py,sha256=j3kgF9WfGFaU9xdUuiAh-QqI5u_vhiAftaDVINt91SM,243
|
|
53
|
-
dodal/devices/sample_shutter.py,sha256=XsaEgmJBRPdB9YwgIda_T3trdLI_u0Ogw0Mn-LsCMI8,628
|
|
54
56
|
dodal/devices/scatterguard.py,sha256=0qnvhoo3RjLsrxVgIoDJpryqunlgMVgaTsoyKRC2g4Y,331
|
|
55
57
|
dodal/devices/scintillator.py,sha256=4Dej1a6HRom9GRwTDsaTKGfvloP20POUqIeHqsI8-R8,184
|
|
56
58
|
dodal/devices/slits.py,sha256=URru9VN2N19KqeUPDZaBmyKYn0_JJiE0Vko4sZpfsl8,601
|
|
@@ -58,12 +60,14 @@ dodal/devices/smargon.py,sha256=ml96h7E1C31qPo8jocAepSouIVXgpIR0vuMF99nZjqM,2964
|
|
|
58
60
|
dodal/devices/status.py,sha256=TuUGidZ4Ar-WCRc_sX0wn58DmL6brj1pMr8rNF5Z6VU,1198
|
|
59
61
|
dodal/devices/synchrotron.py,sha256=E5vcSum-zoD5vIZxa2Xcl0gAkeRqY6a-AfZQICCwLHg,1947
|
|
60
62
|
dodal/devices/tetramm.py,sha256=dHA15KkJhBHwtmbivDua_aVqFbvK47TVQG7KXmn8jQ8,8041
|
|
63
|
+
dodal/devices/thawer.py,sha256=L5OYSdzGvx6dIkGgcTbITAbFAm0OKEVVqYBb4MPstOg,382
|
|
61
64
|
dodal/devices/turbo_slit.py,sha256=W3ZRIqDhq4iMhr5GcIiWvl2U1GaPtGanqkL7upQOZTY,1132
|
|
62
|
-
dodal/devices/undulator.py,sha256=
|
|
63
|
-
dodal/devices/undulator_dcm.py,sha256=
|
|
65
|
+
dodal/devices/undulator.py,sha256=kn84MQpuBHtQj7H7HeBoAYKXu5buGKvTgs3tf2gdEdw,2074
|
|
66
|
+
dodal/devices/undulator_dcm.py,sha256=TC9fO55r1YIG_88PPbGGtzfjcRJcaoC2ny51JiDOEX4,5199
|
|
64
67
|
dodal/devices/webcam.py,sha256=dvNWJ6hHQR7BUsMRC9TH4XiCCofVhlgZ8HYfVCvd2og,1367
|
|
65
68
|
dodal/devices/xbpm_feedback.py,sha256=a4evzdoMANbwoboQCbdMkcrxRogXLnHs966SZJsywYQ,1521
|
|
66
69
|
dodal/devices/zebra.py,sha256=XE2oEm6kLkXd86ev4dYP8bh3tI9Fesb1SmU61RSMHBA,9082
|
|
70
|
+
dodal/devices/zebra_controlled_shutter.py,sha256=MqX4KE6w0FliZRDBltswcLCNSsp6vQrD_iBY640IljI,1094
|
|
67
71
|
dodal/devices/areadetector/__init__.py,sha256=8IwLxuZMW0MOJpJp_ZDdlaE20hrtsH_PXWGaKgMiYs4,240
|
|
68
72
|
dodal/devices/areadetector/adaravis.py,sha256=pwbmmnakarjhD59XoyAIXJdakS-nqDG09Xmwq17AVw4,3787
|
|
69
73
|
dodal/devices/areadetector/adsim.py,sha256=3U7kS93RM3Xeh-XWKjeuw5jXbIGWAbrs59LfxtvB7OU,1907
|
|
@@ -73,12 +77,12 @@ dodal/devices/detector/__init__.py,sha256=XEwjopgTtBq93RRuFthVVVI9DT1jUvpOJzWOHa
|
|
|
73
77
|
dodal/devices/detector/det_dim_constants.py,sha256=MZ4w2nsTKzj4eN7yGsSs1pqKWIuU4vc6UzcSll02uWg,2305
|
|
74
78
|
dodal/devices/detector/det_dist_to_beam_converter.py,sha256=f6JFp-eEB2v8NzZg27UrN0VDP5CMjRnaPU6BTA7_n_s,1937
|
|
75
79
|
dodal/devices/detector/det_resolution.py,sha256=aQkKp24LpRGiwzPAQM3wLVa4ANw32HdrKc2kftHfKQA,3253
|
|
76
|
-
dodal/devices/detector/detector.py,sha256=
|
|
80
|
+
dodal/devices/detector/detector.py,sha256=UDw_hLbhfUo_ECasGQ_Ud8bVQzE9D8uaAMagVAa_R4g,4647
|
|
77
81
|
dodal/devices/detector/detector_motion.py,sha256=REREva2kyPcIzOZmahN9rT0jDSuUbV0qUDl4IcBnutA,1221
|
|
78
82
|
dodal/devices/i03/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
83
|
dodal/devices/i04/transfocator.py,sha256=uieByXIj0JRbmvMB_om5NOAEbEJkzfkCD24bl2aEo1g,3154
|
|
80
84
|
dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
81
|
-
dodal/devices/i22/fswitch.py,sha256=
|
|
85
|
+
dodal/devices/i22/fswitch.py,sha256=AdYtnkCBuhivyJGZqelg_7sjB2pHN7vl1JTtlO4vHo4,3061
|
|
82
86
|
dodal/devices/i23/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
87
|
dodal/devices/i23/gonio.py,sha256=cxqD2Kd578c4-K4h2sHdJjoap2gPGC46Qr4SPudHLTs,864
|
|
84
88
|
dodal/devices/i24/I24_detector_motion.py,sha256=bKbb44Qs24oguwJ780N4e5XGNtka_3ZZCGGq6BQu99Y,229
|
|
@@ -109,8 +113,10 @@ dodal/devices/zocalo/zocalo_interaction.py,sha256=B6TBTDwUlluksLTwC4TiEEgfFzWLOm
|
|
|
109
113
|
dodal/devices/zocalo/zocalo_results.py,sha256=U4Vk4OF-eL8w0BR-fbw3k4jyRo6G3Ywaf8NMAkjr4Hs,9658
|
|
110
114
|
dodal/parameters/experiment_parameter_base.py,sha256=O7JamfuJ5cYHkPf9tsHJPqn-OMHTAGouigvM1cDFehE,313
|
|
111
115
|
dodal/plans/check_topup.py,sha256=VOkHak88_r-pdTsSnwAJnbvlK2_UhKnO5I36pJmWKvQ,2985
|
|
112
|
-
|
|
113
|
-
dls_dodal-1.
|
|
114
|
-
dls_dodal-1.
|
|
115
|
-
dls_dodal-1.
|
|
116
|
-
dls_dodal-1.
|
|
116
|
+
dodal/plans/data_session_metadata.py,sha256=QNx9rb1EfGBHb21eFekIi7KjNhC0PL-SVKBCggDuNeg,1650
|
|
117
|
+
dls_dodal-1.27.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
118
|
+
dls_dodal-1.27.0.dist-info/METADATA,sha256=mkrOjI4F9mwAZOTOLTSPRfNZu5W1wqlqDo3FOOWn6qs,16837
|
|
119
|
+
dls_dodal-1.27.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
120
|
+
dls_dodal-1.27.0.dist-info/entry_points.txt,sha256=wpzz9FsTiYxI8OBwLKX9V9ResLwThBSmtRMcPwII0FA,46
|
|
121
|
+
dls_dodal-1.27.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
|
|
122
|
+
dls_dodal-1.27.0.dist-info/RECORD,,
|
dodal/__main__.py
CHANGED
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
from
|
|
2
|
-
|
|
3
|
-
from . import __version__
|
|
1
|
+
from .cli import main
|
|
4
2
|
|
|
5
3
|
__all__ = ["main"]
|
|
6
4
|
|
|
7
5
|
|
|
8
|
-
def main(args=None):
|
|
9
|
-
parser = ArgumentParser()
|
|
10
|
-
parser.add_argument("-v", "--version", action="version", version=__version__)
|
|
11
|
-
args = parser.parse_args(args)
|
|
12
|
-
|
|
13
|
-
|
|
14
6
|
# test with: python -m dodal
|
|
15
7
|
if __name__ == "__main__":
|
|
16
8
|
main()
|
dodal/_version.py
CHANGED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
# Beamlines
|
|
2
|
+
|
|
3
|
+
Beamline modules are code-as-configuration. They define the set of devices and common device settings needed for a particular beamline or group of similar beamlines (e.g. a beamline and its digital twin). Some of our tooling depends on the convention of _only_ beamline modules going in this package. Common utilities should go somewhere else e.g. `dodal.utils` or `dodal.beamlines.common`.
|
dodal/beamlines/__init__.py
CHANGED
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import importlib.util
|
|
2
|
+
from functools import lru_cache
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
from typing import Iterable, Mapping
|
|
5
|
+
|
|
6
|
+
# Where beamline names (per the ${BEAMLINE} environment variable don't always
|
|
7
|
+
# match up, we have to map between them bidirectionally). The most common use case is
|
|
8
|
+
# beamlines with a "-"" in the name such as "i04-1", which is not valid in a Python
|
|
9
|
+
# module name. Add any new beamlines whose name differs from their module name to this
|
|
10
|
+
# dictionary, which maps ${BEAMLINE} to dodal.beamlines.<MODULE NAME>
|
|
11
|
+
_BEAMLINE_NAME_OVERRIDES = {
|
|
12
|
+
"i04-1": "i04_1",
|
|
13
|
+
"i20-1": "i20_1",
|
|
14
|
+
"s03": "i03",
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def all_beamline_modules() -> Iterable[str]:
|
|
19
|
+
"""
|
|
20
|
+
Get the names of all importable modules in beamlines
|
|
21
|
+
|
|
22
|
+
Returns:
|
|
23
|
+
Iterable[str]: Generator of beamline module names
|
|
24
|
+
"""
|
|
25
|
+
|
|
26
|
+
# This is done by inspecting file names rather than modules to avoid
|
|
27
|
+
# premature importing
|
|
28
|
+
spec = importlib.util.find_spec(__name__)
|
|
29
|
+
if spec is not None:
|
|
30
|
+
search_paths = [Path(path) for path in spec.submodule_search_locations]
|
|
31
|
+
for path in search_paths:
|
|
32
|
+
for subpath in path.glob("**/*"):
|
|
33
|
+
if (
|
|
34
|
+
subpath.name.endswith(".py")
|
|
35
|
+
and subpath.name != "__init__.py"
|
|
36
|
+
and ("__pycache__" not in str(subpath))
|
|
37
|
+
):
|
|
38
|
+
yield subpath.with_suffix("").name
|
|
39
|
+
else:
|
|
40
|
+
raise KeyError(f"Unable to find {__name__} module")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def all_beamline_names() -> Iterable[str]:
|
|
44
|
+
"""
|
|
45
|
+
Get the names of all beamlines as per the ${BEAMLINE} environment variable
|
|
46
|
+
|
|
47
|
+
Returns:
|
|
48
|
+
Iterable[str]: Generator of beamline names that dodal supports
|
|
49
|
+
"""
|
|
50
|
+
inverse_mapping = _module_name_overrides()
|
|
51
|
+
for module_name in all_beamline_modules():
|
|
52
|
+
yield from inverse_mapping.get(module_name, set()).union({module_name})
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
@lru_cache
|
|
56
|
+
def _module_name_overrides() -> Mapping[str, set[str]]:
|
|
57
|
+
"""
|
|
58
|
+
Get the inverse of _BEAMLINE_NAME_OVERRIDES so that modules can be mapped back to
|
|
59
|
+
beamlines. _BEAMLINE_NAME_OVERRIDES is expected to be a constant so the return
|
|
60
|
+
value is cached.
|
|
61
|
+
|
|
62
|
+
Returns:
|
|
63
|
+
Mapping[str, set[str]]: A dictionary mapping the name of a dodal module to the
|
|
64
|
+
set of beamlines it supports.
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
inverse_mapping: dict[str, set[str]] = {}
|
|
68
|
+
for beamline, module in _BEAMLINE_NAME_OVERRIDES.items():
|
|
69
|
+
inverse_mapping[module] = inverse_mapping.get(module, set()).union({beamline})
|
|
70
|
+
return inverse_mapping
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def module_name_for_beamline(beamline: str) -> str:
|
|
74
|
+
"""
|
|
75
|
+
Get the module name for a particular beamline, it may differ from the beamline
|
|
76
|
+
name e.g. i04-1 -> i04_1
|
|
77
|
+
|
|
78
|
+
Args:
|
|
79
|
+
beamline: The beamline name as per the ${BEAMLINE} environment variable
|
|
80
|
+
|
|
81
|
+
Returns:
|
|
82
|
+
str: The importable module name
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
return _BEAMLINE_NAME_OVERRIDES.get(beamline, beamline)
|
dodal/beamlines/i03.py
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
from ophyd_async.panda import HDFPanda
|
|
2
2
|
|
|
3
|
-
from dodal.beamlines.beamline_utils import (
|
|
3
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
4
4
|
device_instantiation,
|
|
5
5
|
get_directory_provider,
|
|
6
6
|
set_directory_provider,
|
|
7
7
|
)
|
|
8
|
-
from dodal.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
8
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
9
9
|
from dodal.common.udc_directory_provider import PandASubdirectoryProvider
|
|
10
10
|
from dodal.devices.aperturescatterguard import AperturePositions, ApertureScatterguard
|
|
11
11
|
from dodal.devices.attenuator import Attenuator
|
|
@@ -14,24 +14,24 @@ from dodal.devices.dcm import DCM
|
|
|
14
14
|
from dodal.devices.detector import DetectorParams
|
|
15
15
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
16
16
|
from dodal.devices.eiger import EigerDetector
|
|
17
|
-
from dodal.devices.fast_grid_scan import
|
|
17
|
+
from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
|
|
18
18
|
from dodal.devices.flux import Flux
|
|
19
19
|
from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, VFMMirrorVoltages
|
|
20
20
|
from dodal.devices.oav.oav_detector import OAV, OAVConfigParams
|
|
21
21
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
22
|
-
from dodal.devices.panda_fast_grid_scan import PandAFastGridScan
|
|
23
22
|
from dodal.devices.qbpm1 import QBPM1
|
|
24
23
|
from dodal.devices.robot import BartRobot
|
|
25
24
|
from dodal.devices.s4_slit_gaps import S4SlitGaps
|
|
26
|
-
from dodal.devices.sample_shutter import SampleShutter
|
|
27
25
|
from dodal.devices.smargon import Smargon
|
|
28
26
|
from dodal.devices.synchrotron import Synchrotron
|
|
27
|
+
from dodal.devices.thawer import Thawer
|
|
29
28
|
from dodal.devices.undulator import Undulator
|
|
30
29
|
from dodal.devices.undulator_dcm import UndulatorDCM
|
|
31
30
|
from dodal.devices.webcam import Webcam
|
|
32
31
|
from dodal.devices.xbpm_feedback import XBPMFeedback
|
|
33
32
|
from dodal.devices.xspress3_mini.xspress3_mini import Xspress3Mini
|
|
34
33
|
from dodal.devices.zebra import Zebra
|
|
34
|
+
from dodal.devices.zebra_controlled_shutter import ZebraShutter
|
|
35
35
|
from dodal.devices.zocalo import ZocaloResults
|
|
36
36
|
from dodal.log import set_beamline as set_log_beamline
|
|
37
37
|
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device
|
|
@@ -199,16 +199,16 @@ def eiger(
|
|
|
199
199
|
)
|
|
200
200
|
|
|
201
201
|
|
|
202
|
-
def
|
|
202
|
+
def zebra_fast_grid_scan(
|
|
203
203
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
204
|
-
) ->
|
|
205
|
-
"""Get the i03
|
|
204
|
+
) -> ZebraFastGridScan:
|
|
205
|
+
"""Get the i03 zebra_fast_grid_scan device, instantiate it if it hasn't already been.
|
|
206
206
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
207
207
|
"""
|
|
208
208
|
return device_instantiation(
|
|
209
|
-
device_factory=
|
|
210
|
-
name="
|
|
211
|
-
prefix="-MO-SGON-01:",
|
|
209
|
+
device_factory=ZebraFastGridScan,
|
|
210
|
+
name="zebra_fast_grid_scan",
|
|
211
|
+
prefix="-MO-SGON-01:FGS:",
|
|
212
212
|
wait=wait_for_connection,
|
|
213
213
|
fake=fake_with_ophyd_sim,
|
|
214
214
|
)
|
|
@@ -219,7 +219,7 @@ def panda_fast_grid_scan(
|
|
|
219
219
|
) -> PandAFastGridScan:
|
|
220
220
|
"""Get the i03 panda_fast_grid_scan device, instantiate it if it hasn't already been.
|
|
221
221
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
222
|
-
This is used instead of the
|
|
222
|
+
This is used instead of the zebra_fast_grid_scan device when using the PandA.
|
|
223
223
|
"""
|
|
224
224
|
return device_instantiation(
|
|
225
225
|
device_factory=PandAFastGridScan,
|
|
@@ -394,12 +394,12 @@ def panda(
|
|
|
394
394
|
@skip_device(lambda: BL == "s03")
|
|
395
395
|
def sample_shutter(
|
|
396
396
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
397
|
-
) ->
|
|
397
|
+
) -> ZebraShutter:
|
|
398
398
|
"""Get the i03 sample shutter device, instantiate it if it hasn't already been.
|
|
399
399
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
400
400
|
"""
|
|
401
401
|
return device_instantiation(
|
|
402
|
-
|
|
402
|
+
ZebraShutter,
|
|
403
403
|
"sample_shutter",
|
|
404
404
|
"-EA-SHTR-01:",
|
|
405
405
|
wait_for_connection,
|
|
@@ -480,3 +480,18 @@ def webcam(
|
|
|
480
480
|
fake_with_ophyd_sim,
|
|
481
481
|
url="http://i03-webcam1/axis-cgi/jpg/image.cgi",
|
|
482
482
|
)
|
|
483
|
+
|
|
484
|
+
|
|
485
|
+
def thawer(
|
|
486
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
487
|
+
) -> Thawer:
|
|
488
|
+
"""Get the i03 thawer, instantiate it if it hasn't already been.
|
|
489
|
+
If this is called when already instantiated in i03, it will return the existing object.
|
|
490
|
+
"""
|
|
491
|
+
return device_instantiation(
|
|
492
|
+
Thawer,
|
|
493
|
+
"thawer",
|
|
494
|
+
"-EA-THAW-01",
|
|
495
|
+
wait_for_connection,
|
|
496
|
+
fake_with_ophyd_sim,
|
|
497
|
+
)
|
dodal/beamlines/i04.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
from dodal.beamlines.beamline_utils import device_instantiation
|
|
2
|
-
from dodal.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_instantiation
|
|
2
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
3
|
from dodal.devices.aperturescatterguard import AperturePositions, ApertureScatterguard
|
|
4
4
|
from dodal.devices.attenuator import Attenuator
|
|
5
5
|
from dodal.devices.backlight import Backlight
|
|
@@ -8,19 +8,21 @@ from dodal.devices.dcm import DCM
|
|
|
8
8
|
from dodal.devices.detector import DetectorParams
|
|
9
9
|
from dodal.devices.detector.detector_motion import DetectorMotion
|
|
10
10
|
from dodal.devices.eiger import EigerDetector
|
|
11
|
-
from dodal.devices.fast_grid_scan import
|
|
11
|
+
from dodal.devices.fast_grid_scan import ZebraFastGridScan
|
|
12
12
|
from dodal.devices.flux import Flux
|
|
13
13
|
from dodal.devices.i04.transfocator import Transfocator
|
|
14
14
|
from dodal.devices.ipin import IPin
|
|
15
15
|
from dodal.devices.motors import XYZPositioner
|
|
16
16
|
from dodal.devices.oav.oav_detector import OAV, OAVConfigParams
|
|
17
|
+
from dodal.devices.robot import BartRobot
|
|
17
18
|
from dodal.devices.s4_slit_gaps import S4SlitGaps
|
|
18
|
-
from dodal.devices.sample_shutter import SampleShutter
|
|
19
19
|
from dodal.devices.smargon import Smargon
|
|
20
20
|
from dodal.devices.synchrotron import Synchrotron
|
|
21
|
+
from dodal.devices.thawer import Thawer
|
|
21
22
|
from dodal.devices.undulator import Undulator
|
|
22
23
|
from dodal.devices.xbpm_feedback import XBPMFeedbackI04
|
|
23
24
|
from dodal.devices.zebra import Zebra
|
|
25
|
+
from dodal.devices.zebra_controlled_shutter import ZebraShutter
|
|
24
26
|
from dodal.log import set_beamline as set_log_beamline
|
|
25
27
|
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device
|
|
26
28
|
|
|
@@ -110,12 +112,12 @@ def beamstop(
|
|
|
110
112
|
|
|
111
113
|
def sample_shutter(
|
|
112
114
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
113
|
-
) ->
|
|
115
|
+
) -> ZebraShutter:
|
|
114
116
|
"""Get the i04 sample shutter device, instantiate it if it hasn't already been.
|
|
115
117
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
116
118
|
"""
|
|
117
119
|
return device_instantiation(
|
|
118
|
-
|
|
120
|
+
ZebraShutter,
|
|
119
121
|
"sample_shutter",
|
|
120
122
|
"-EA-SHTR-01:",
|
|
121
123
|
wait_for_connection,
|
|
@@ -258,15 +260,15 @@ def eiger(
|
|
|
258
260
|
)
|
|
259
261
|
|
|
260
262
|
|
|
261
|
-
def
|
|
263
|
+
def zebra_fast_grid_scan(
|
|
262
264
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
263
|
-
) ->
|
|
264
|
-
"""Get the i04
|
|
265
|
+
) -> ZebraFastGridScan:
|
|
266
|
+
"""Get the i04 zebra_fast_grid_scan device, instantiate it if it hasn't already been.
|
|
265
267
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
266
268
|
"""
|
|
267
269
|
return device_instantiation(
|
|
268
|
-
device_factory=
|
|
269
|
-
name="
|
|
270
|
+
device_factory=ZebraFastGridScan,
|
|
271
|
+
name="zebra_fast_grid_scan",
|
|
270
272
|
prefix="-MO-SGON-01:",
|
|
271
273
|
wait=wait_for_connection,
|
|
272
274
|
fake=fake_with_ophyd_sim,
|
|
@@ -363,3 +365,33 @@ def detector_motion(
|
|
|
363
365
|
wait=wait_for_connection,
|
|
364
366
|
fake=fake_with_ophyd_sim,
|
|
365
367
|
)
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
def thawer(
|
|
371
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
372
|
+
) -> Thawer:
|
|
373
|
+
"""Get the i04 thawer, instantiate it if it hasn't already been.
|
|
374
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
375
|
+
"""
|
|
376
|
+
return device_instantiation(
|
|
377
|
+
Thawer,
|
|
378
|
+
"thawer",
|
|
379
|
+
"-EA-THAW-01",
|
|
380
|
+
wait_for_connection,
|
|
381
|
+
fake_with_ophyd_sim,
|
|
382
|
+
)
|
|
383
|
+
|
|
384
|
+
|
|
385
|
+
def robot(
|
|
386
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
387
|
+
) -> BartRobot:
|
|
388
|
+
"""Get the i04 robot device, instantiate it if it hasn't already been.
|
|
389
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
390
|
+
"""
|
|
391
|
+
return device_instantiation(
|
|
392
|
+
BartRobot,
|
|
393
|
+
"robot",
|
|
394
|
+
"-MO-ROBOT-01:",
|
|
395
|
+
wait_for_connection,
|
|
396
|
+
fake_with_ophyd_sim,
|
|
397
|
+
)
|
dodal/beamlines/i04_1.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
from dodal.beamlines.beamline_utils import device_instantiation
|
|
2
|
-
from dodal.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_instantiation
|
|
2
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
3
|
from dodal.devices.backlight import Backlight
|
|
4
4
|
from dodal.devices.detector import DetectorParams
|
|
5
5
|
from dodal.devices.eiger import EigerDetector
|
dodal/beamlines/i20_1.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
from dodal.beamlines.beamline_utils import device_instantiation
|
|
2
|
-
from dodal.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import device_instantiation
|
|
2
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
3
|
from dodal.devices.turbo_slit import TurboSlit
|
|
4
4
|
from dodal.log import set_beamline as set_log_beamline
|
|
5
5
|
from dodal.utils import get_beamline_name
|
dodal/beamlines/i22.py
CHANGED
|
@@ -3,23 +3,22 @@ from pathlib import Path
|
|
|
3
3
|
from ophyd_async.epics.areadetector import AravisDetector, PilatusDetector
|
|
4
4
|
from ophyd_async.panda import HDFPanda
|
|
5
5
|
|
|
6
|
-
from dodal.beamlines.beamline_utils import (
|
|
6
|
+
from dodal.common.beamlines.beamline_utils import (
|
|
7
7
|
device_instantiation,
|
|
8
8
|
get_directory_provider,
|
|
9
9
|
set_directory_provider,
|
|
10
10
|
)
|
|
11
|
-
from dodal.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
11
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
12
|
+
from dodal.common.beamlines.device_helpers import numbered_slits
|
|
12
13
|
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitDirectoryProvider
|
|
13
14
|
from dodal.devices.focusing_mirror import FocusingMirror
|
|
14
15
|
from dodal.devices.i22.fswitch import FSwitch
|
|
16
|
+
from dodal.devices.linkam3 import Linkam3
|
|
15
17
|
from dodal.devices.slits import Slits
|
|
16
18
|
from dodal.devices.tetramm import TetrammDetector
|
|
19
|
+
from dodal.devices.undulator import Undulator
|
|
17
20
|
from dodal.log import set_beamline as set_log_beamline
|
|
18
|
-
from dodal.utils import get_beamline_name, skip_device
|
|
19
|
-
|
|
20
|
-
from ._device_helpers import numbered_slits
|
|
21
|
-
from .beamline_utils import device_instantiation, get_directory_provider
|
|
22
|
-
from .beamline_utils import set_beamline as set_utils_beamline
|
|
21
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device
|
|
23
22
|
|
|
24
23
|
BL = get_beamline_name("i22")
|
|
25
24
|
set_log_beamline(BL)
|
|
@@ -123,6 +122,22 @@ def hfm(
|
|
|
123
122
|
)
|
|
124
123
|
|
|
125
124
|
|
|
125
|
+
def undulator(
|
|
126
|
+
wait_for_connection: bool = True,
|
|
127
|
+
fake_with_ophyd_sim: bool = False,
|
|
128
|
+
) -> Undulator:
|
|
129
|
+
return device_instantiation(
|
|
130
|
+
Undulator,
|
|
131
|
+
"undulator",
|
|
132
|
+
f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
|
|
133
|
+
wait_for_connection,
|
|
134
|
+
fake_with_ophyd_sim,
|
|
135
|
+
bl_prefix=False,
|
|
136
|
+
poles=80,
|
|
137
|
+
length=2.0,
|
|
138
|
+
)
|
|
139
|
+
|
|
140
|
+
|
|
126
141
|
def slits_1(
|
|
127
142
|
wait_for_connection: bool = True,
|
|
128
143
|
fake_with_ophyd_sim: bool = False,
|
|
@@ -200,13 +215,15 @@ def fswitch(
|
|
|
200
215
|
"-MO-FSWT-01:",
|
|
201
216
|
wait_for_connection,
|
|
202
217
|
fake_with_ophyd_sim,
|
|
218
|
+
lens_geometry="paraboloid",
|
|
219
|
+
cylindrical=True,
|
|
220
|
+
lens_material="Beryllium",
|
|
203
221
|
)
|
|
204
222
|
|
|
205
223
|
|
|
206
224
|
# Must find which PandA IOC(s) are compatible
|
|
207
225
|
# Must document what PandAs are physically connected to
|
|
208
226
|
# See: https://github.com/bluesky/ophyd-async/issues/284
|
|
209
|
-
@skip_device
|
|
210
227
|
def panda1(
|
|
211
228
|
wait_for_connection: bool = True,
|
|
212
229
|
fake_with_ophyd_sim: bool = False,
|
|
@@ -214,9 +231,10 @@ def panda1(
|
|
|
214
231
|
return device_instantiation(
|
|
215
232
|
HDFPanda,
|
|
216
233
|
"panda1",
|
|
217
|
-
"-
|
|
234
|
+
"-EA-PANDA-01:",
|
|
218
235
|
wait_for_connection,
|
|
219
236
|
fake_with_ophyd_sim,
|
|
237
|
+
directory_provider=get_directory_provider(),
|
|
220
238
|
)
|
|
221
239
|
|
|
222
240
|
|
|
@@ -228,9 +246,10 @@ def panda2(
|
|
|
228
246
|
return device_instantiation(
|
|
229
247
|
HDFPanda,
|
|
230
248
|
"panda2",
|
|
231
|
-
"-
|
|
249
|
+
"-EA-PANDA-02:",
|
|
232
250
|
wait_for_connection,
|
|
233
251
|
fake_with_ophyd_sim,
|
|
252
|
+
directory_provider=get_directory_provider(),
|
|
234
253
|
)
|
|
235
254
|
|
|
236
255
|
|
|
@@ -242,9 +261,10 @@ def panda3(
|
|
|
242
261
|
return device_instantiation(
|
|
243
262
|
HDFPanda,
|
|
244
263
|
"panda3",
|
|
245
|
-
"-
|
|
264
|
+
"-EA-PANDA-03:",
|
|
246
265
|
wait_for_connection,
|
|
247
266
|
fake_with_ophyd_sim,
|
|
267
|
+
directory_provider=get_directory_provider(),
|
|
248
268
|
)
|
|
249
269
|
|
|
250
270
|
|
|
@@ -256,9 +276,10 @@ def panda4(
|
|
|
256
276
|
return device_instantiation(
|
|
257
277
|
HDFPanda,
|
|
258
278
|
"panda4",
|
|
259
|
-
"-
|
|
279
|
+
"-EA-PANDA-04:",
|
|
260
280
|
wait_for_connection,
|
|
261
281
|
fake_with_ophyd_sim,
|
|
282
|
+
directory_provider=get_directory_provider(),
|
|
262
283
|
)
|
|
263
284
|
|
|
264
285
|
|
|
@@ -275,3 +296,16 @@ def oav(
|
|
|
275
296
|
hdf_suffix="HDF5:",
|
|
276
297
|
directory_provider=get_directory_provider(),
|
|
277
298
|
)
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
@skip_device
|
|
302
|
+
def linkam(
|
|
303
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
304
|
+
) -> Linkam3:
|
|
305
|
+
return device_instantiation(
|
|
306
|
+
Linkam3,
|
|
307
|
+
"linkam",
|
|
308
|
+
"-EA-TEMPC-05",
|
|
309
|
+
wait_for_connection,
|
|
310
|
+
fake_with_ophyd_sim,
|
|
311
|
+
)
|