dls-dodal 1.27.0__py3-none-any.whl → 1.29.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.27.0.dist-info → dls_dodal-1.29.0.dist-info}/METADATA +3 -3
- {dls_dodal-1.27.0.dist-info → dls_dodal-1.29.0.dist-info}/RECORD +27 -26
- {dls_dodal-1.27.0.dist-info → dls_dodal-1.29.0.dist-info}/WHEEL +1 -1
- dodal/_version.py +2 -2
- dodal/beamlines/i03.py +21 -5
- dodal/beamlines/i20_1.py +18 -0
- dodal/beamlines/i22.py +73 -6
- dodal/beamlines/p38.py +29 -0
- dodal/devices/areadetector/plugins/MJPG.py +4 -0
- dodal/devices/detector/detector.py +5 -1
- dodal/devices/fast_grid_scan.py +53 -34
- dodal/devices/i22/dcm.py +156 -0
- dodal/devices/i22/nxsas.py +173 -0
- dodal/devices/i24/pmac.py +118 -13
- dodal/devices/motors.py +8 -4
- dodal/devices/oav/utils.py +74 -0
- dodal/devices/robot.py +58 -8
- dodal/devices/synchrotron.py +14 -19
- dodal/devices/tetramm.py +38 -24
- dodal/devices/webcam.py +6 -1
- dodal/devices/xbpm_feedback.py +27 -16
- dodal/devices/xspress3/xspress3.py +150 -0
- dodal/devices/xspress3/xspress3_channel.py +42 -0
- dodal/plans/check_topup.py +4 -4
- dodal/devices/lower_gonio_stages.py +0 -8
- dodal/devices/xspress3_mini/xspress3_mini.py +0 -103
- dodal/devices/xspress3_mini/xspress3_mini_channel.py +0 -24
- {dls_dodal-1.27.0.dist-info → dls_dodal-1.29.0.dist-info}/LICENSE +0 -0
- {dls_dodal-1.27.0.dist-info → dls_dodal-1.29.0.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.27.0.dist-info → dls_dodal-1.29.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.29.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
|
|
@@ -215,7 +215,7 @@ Description-Content-Type: text/x-rst
|
|
|
215
215
|
License-File: LICENSE
|
|
216
216
|
Requires-Dist: click
|
|
217
217
|
Requires-Dist: ophyd
|
|
218
|
-
Requires-Dist: ophyd-async >=0.
|
|
218
|
+
Requires-Dist: ophyd-async >=0.3.1
|
|
219
219
|
Requires-Dist: bluesky
|
|
220
220
|
Requires-Dist: pyepics
|
|
221
221
|
Requires-Dist: dataclasses-json
|
|
@@ -227,7 +227,7 @@ Requires-Dist: pydantic
|
|
|
227
227
|
Requires-Dist: opencv-python-headless
|
|
228
228
|
Requires-Dist: aioca
|
|
229
229
|
Requires-Dist: p4p
|
|
230
|
-
Requires-Dist: numpy
|
|
230
|
+
Requires-Dist: numpy <2.0
|
|
231
231
|
Requires-Dist: aiofiles
|
|
232
232
|
Requires-Dist: aiohttp
|
|
233
233
|
Provides-Extra: dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
dodal/__init__.py,sha256=y-VRpfiX-Lm5nchB9N0VfMy_6dwFqVxpSn5SiAQql9I,114
|
|
2
2
|
dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
|
|
3
|
-
dodal/_version.py,sha256=
|
|
3
|
+
dodal/_version.py,sha256=IpRR4M6LqazbEQMvyYdrRT7AijfNAsCfLKuNjjsDX4s,413
|
|
4
4
|
dodal/adsim.py,sha256=OW2dcS7ciD4Yq9WFw4PN_c5Bwccrmu7R-zr-u6ZCbQM,497
|
|
5
5
|
dodal/cli.py,sha256=z0UBESrNrq6Kq4rttp4uHcwS1fnOnRkKBRDHSriPpGY,2058
|
|
6
6
|
dodal/log.py,sha256=grK5-c-V6UjMERwDqYPdKbc_BpycrNb8hP0uteLOVCY,8296
|
|
@@ -9,14 +9,14 @@ dodal/beamline_specific_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5N
|
|
|
9
9
|
dodal/beamline_specific_utils/i03.py,sha256=Ixe1anFQl-kwRJubmQx28TIW4Zw8qDxpElNNNapWQHI,396
|
|
10
10
|
dodal/beamlines/README.md,sha256=K9MkL_GomxlsoTB7Mz-_dJA5NNSbmCfMiutchGg3C8o,404
|
|
11
11
|
dodal/beamlines/__init__.py,sha256=U0dQYFEUloCdQOs24zyfpPTncJXOO4cDcfHSevVOAw4,2890
|
|
12
|
-
dodal/beamlines/i03.py,sha256=
|
|
12
|
+
dodal/beamlines/i03.py,sha256=J-4GawTxAhrYDQZh87n11L9ehTgObEQ1Lz2PueXCWbc,16892
|
|
13
13
|
dodal/beamlines/i04.py,sha256=JOyNcUnC3wva4no2MHKp6b8gOKAcQXL_c4cBo7oneVs,13034
|
|
14
14
|
dodal/beamlines/i04_1.py,sha256=KDxSUQNhIs_NFiRaLY-Jiory0DeN7Y0ErvGuoTrwCDU,4731
|
|
15
|
-
dodal/beamlines/i20_1.py,sha256=
|
|
16
|
-
dodal/beamlines/i22.py,sha256=
|
|
15
|
+
dodal/beamlines/i20_1.py,sha256=MaPgONHqpoZuBtkiKEzYtViJnKBM2_ekeP4OdbmuXHE,1158
|
|
16
|
+
dodal/beamlines/i22.py,sha256=toBwXJiAFbie_puNJzrV1gSUD1FRO2KT9RastqhPNMw,9836
|
|
17
17
|
dodal/beamlines/i23.py,sha256=iEFkrA4sPQsRLGAmeD263jPMX4u2SF1NK4_KYqnVwow,1402
|
|
18
18
|
dodal/beamlines/i24.py,sha256=LIe8tu_ZJsoeQH7tYRZHSvqQ9C9zBGOXO6rb1DPCYjQ,4595
|
|
19
|
-
dodal/beamlines/p38.py,sha256=
|
|
19
|
+
dodal/beamlines/p38.py,sha256=TC78u4GwEnj6X0r5cnHhqNdBbbDRnh8lY8pEucBZjEU,8006
|
|
20
20
|
dodal/beamlines/p45.py,sha256=TNIkC-SBfj0ayZtlLLXW9xCSi5CzJkO8XpAMIo8fjao,2957
|
|
21
21
|
dodal/common/__init__.py,sha256=ZC4ICKUDB0BDxRaVy8nmqclVmDBne-dPtk6UJsoFq6I,258
|
|
22
22
|
dodal/common/coordination.py,sha256=OxIjDiO1-9A9KESRPFtzwkvvQlavbgA5RHemlbubBPg,1168
|
|
@@ -40,56 +40,57 @@ dodal/devices/cryostream.py,sha256=6MU4rXIOL33C-8F3DVfAtv0ZnwiysTtawjkeePd5IrQ,3
|
|
|
40
40
|
dodal/devices/dcm.py,sha256=vfyGYDzfSwTiNqlzkfNjkrL-Q1hNVSgJddvJ5Un_lvg,1610
|
|
41
41
|
dodal/devices/eiger.py,sha256=NE4tHdqgUZpUxJLQbd5lLUIHZcpeotppexJGlDNByzM,13868
|
|
42
42
|
dodal/devices/eiger_odin.py,sha256=U5Byb7uNwDdNscBRp7yBYQrsjKrKXl2l5WdSpL09lAw,6980
|
|
43
|
-
dodal/devices/fast_grid_scan.py,sha256=
|
|
43
|
+
dodal/devices/fast_grid_scan.py,sha256=qp0jdzhTjkDtaf7ngdPcegcFLlp1EmWUDbU_knCBDpc,13438
|
|
44
44
|
dodal/devices/fluorescence_detector_motion.py,sha256=RrXfPmJzWnAjcjp9u0AnJEfjvWPMKburVTySB2hxYbw,181
|
|
45
45
|
dodal/devices/flux.py,sha256=RtPStHw7Mad0igVKntKWVZfuZn2clokVJqH14HLix6M,198
|
|
46
46
|
dodal/devices/focusing_mirror.py,sha256=aRqBkE3OgaXpH6lP3v1VbSYgHsMMbSsPPXzeyAGf_Pg,6435
|
|
47
47
|
dodal/devices/ipin.py,sha256=OGMXwAE4KDDonZRPFkUmR9Vsk6X4Ox-hEvPT5drP-mQ,208
|
|
48
48
|
dodal/devices/linkam3.py,sha256=TPhiQ1D9i_HIlKHAlfnVfX7H6aPOAeXPEJLdmvwdKWQ,3776
|
|
49
49
|
dodal/devices/logging_ophyd_device.py,sha256=xw4lbyqq5_ehESGterVEfubJsBiJTWvBp5b9k62gSkg,666
|
|
50
|
-
dodal/devices/
|
|
51
|
-
dodal/devices/motors.py,sha256=aKtMv5q_4b1eFhzyuk2-D6zDsY_6cqAmG59y5LWUz1s,1328
|
|
50
|
+
dodal/devices/motors.py,sha256=T0wKGpRKhgduAQj3jE8CGmxy3cWMAFl9_glyjVZwjnA,1473
|
|
52
51
|
dodal/devices/p45.py,sha256=jzBW2fGRhIbGzSRs5Fgupxro6aqE611n1RTcrTTG-yY,1047
|
|
53
52
|
dodal/devices/qbpm1.py,sha256=OY7-WbdxMiLGUK8Z57ezwqSXbHxoPP-y3GvBgj9kgMA,220
|
|
54
|
-
dodal/devices/robot.py,sha256=
|
|
53
|
+
dodal/devices/robot.py,sha256=RcSqBPMMUpWyP7LoyifatII5GWup-vFYZutniM60m_k,4231
|
|
55
54
|
dodal/devices/s4_slit_gaps.py,sha256=j3kgF9WfGFaU9xdUuiAh-QqI5u_vhiAftaDVINt91SM,243
|
|
56
55
|
dodal/devices/scatterguard.py,sha256=0qnvhoo3RjLsrxVgIoDJpryqunlgMVgaTsoyKRC2g4Y,331
|
|
57
56
|
dodal/devices/scintillator.py,sha256=4Dej1a6HRom9GRwTDsaTKGfvloP20POUqIeHqsI8-R8,184
|
|
58
57
|
dodal/devices/slits.py,sha256=URru9VN2N19KqeUPDZaBmyKYn0_JJiE0Vko4sZpfsl8,601
|
|
59
58
|
dodal/devices/smargon.py,sha256=ml96h7E1C31qPo8jocAepSouIVXgpIR0vuMF99nZjqM,2964
|
|
60
59
|
dodal/devices/status.py,sha256=TuUGidZ4Ar-WCRc_sX0wn58DmL6brj1pMr8rNF5Z6VU,1198
|
|
61
|
-
dodal/devices/synchrotron.py,sha256=
|
|
62
|
-
dodal/devices/tetramm.py,sha256=
|
|
60
|
+
dodal/devices/synchrotron.py,sha256=QtTufJA_fCaBawHougSc7nxwu240oX46_y0P-4qIW8o,1960
|
|
61
|
+
dodal/devices/tetramm.py,sha256=XriN-zBFVnHxhnTbphSPIZcxEbdWBTbw2g_ulUBl4bw,8538
|
|
63
62
|
dodal/devices/thawer.py,sha256=L5OYSdzGvx6dIkGgcTbITAbFAm0OKEVVqYBb4MPstOg,382
|
|
64
63
|
dodal/devices/turbo_slit.py,sha256=W3ZRIqDhq4iMhr5GcIiWvl2U1GaPtGanqkL7upQOZTY,1132
|
|
65
64
|
dodal/devices/undulator.py,sha256=kn84MQpuBHtQj7H7HeBoAYKXu5buGKvTgs3tf2gdEdw,2074
|
|
66
65
|
dodal/devices/undulator_dcm.py,sha256=TC9fO55r1YIG_88PPbGGtzfjcRJcaoC2ny51JiDOEX4,5199
|
|
67
|
-
dodal/devices/webcam.py,sha256=
|
|
68
|
-
dodal/devices/xbpm_feedback.py,sha256=
|
|
66
|
+
dodal/devices/webcam.py,sha256=FXYcxQdOOCRIMAf8jMWlDVAhSEs4ycGCnoODvHb-apM,1554
|
|
67
|
+
dodal/devices/xbpm_feedback.py,sha256=8QHYKHo9ksZo30olbFM-tHpCHcJRFozgHKVJijv3Gck,1986
|
|
69
68
|
dodal/devices/zebra.py,sha256=XE2oEm6kLkXd86ev4dYP8bh3tI9Fesb1SmU61RSMHBA,9082
|
|
70
69
|
dodal/devices/zebra_controlled_shutter.py,sha256=MqX4KE6w0FliZRDBltswcLCNSsp6vQrD_iBY640IljI,1094
|
|
71
70
|
dodal/devices/areadetector/__init__.py,sha256=8IwLxuZMW0MOJpJp_ZDdlaE20hrtsH_PXWGaKgMiYs4,240
|
|
72
71
|
dodal/devices/areadetector/adaravis.py,sha256=pwbmmnakarjhD59XoyAIXJdakS-nqDG09Xmwq17AVw4,3787
|
|
73
72
|
dodal/devices/areadetector/adsim.py,sha256=3U7kS93RM3Xeh-XWKjeuw5jXbIGWAbrs59LfxtvB7OU,1907
|
|
74
73
|
dodal/devices/areadetector/adutils.py,sha256=JIx1_sYlehpLtEXcwOEuzVoMplsLdKVW7OWv5eiJqgE,2576
|
|
75
|
-
dodal/devices/areadetector/plugins/MJPG.py,sha256=
|
|
74
|
+
dodal/devices/areadetector/plugins/MJPG.py,sha256=pLuEZiRGgCwJM1ONA5jdetGLo6O0OVhvmcVkkYtPeR8,4159
|
|
76
75
|
dodal/devices/detector/__init__.py,sha256=XEwjopgTtBq93RRuFthVVVI9DT1jUvpOJzWOHantJpU,104
|
|
77
76
|
dodal/devices/detector/det_dim_constants.py,sha256=MZ4w2nsTKzj4eN7yGsSs1pqKWIuU4vc6UzcSll02uWg,2305
|
|
78
77
|
dodal/devices/detector/det_dist_to_beam_converter.py,sha256=f6JFp-eEB2v8NzZg27UrN0VDP5CMjRnaPU6BTA7_n_s,1937
|
|
79
78
|
dodal/devices/detector/det_resolution.py,sha256=aQkKp24LpRGiwzPAQM3wLVa4ANw32HdrKc2kftHfKQA,3253
|
|
80
|
-
dodal/devices/detector/detector.py,sha256=
|
|
79
|
+
dodal/devices/detector/detector.py,sha256=arP27DbrgOjYZhE6Ibp9kDBglfmqZpPBk53S5ItsrvE,4756
|
|
81
80
|
dodal/devices/detector/detector_motion.py,sha256=REREva2kyPcIzOZmahN9rT0jDSuUbV0qUDl4IcBnutA,1221
|
|
82
81
|
dodal/devices/i03/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
82
|
dodal/devices/i04/transfocator.py,sha256=uieByXIj0JRbmvMB_om5NOAEbEJkzfkCD24bl2aEo1g,3154
|
|
84
83
|
dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
+
dodal/devices/i22/dcm.py,sha256=Kzyd_qFg8KVhRsgfTQVOpghESE8yIOgACKa0Fv9NaZI,6270
|
|
85
85
|
dodal/devices/i22/fswitch.py,sha256=AdYtnkCBuhivyJGZqelg_7sjB2pHN7vl1JTtlO4vHo4,3061
|
|
86
|
+
dodal/devices/i22/nxsas.py,sha256=ky7v9UZ1UQFsm5hI0wD9OXG-fTKFLj2wJjB7wADxKpw,5655
|
|
86
87
|
dodal/devices/i23/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
87
88
|
dodal/devices/i23/gonio.py,sha256=cxqD2Kd578c4-K4h2sHdJjoap2gPGC46Qr4SPudHLTs,864
|
|
88
89
|
dodal/devices/i24/I24_detector_motion.py,sha256=bKbb44Qs24oguwJ780N4e5XGNtka_3ZZCGGq6BQu99Y,229
|
|
89
90
|
dodal/devices/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
90
91
|
dodal/devices/i24/dual_backlight.py,sha256=5Xkkt4VqS-G1QLDmBJNHs-LNVYJ_aTso_ev8QNDJiis,1367
|
|
91
92
|
dodal/devices/i24/i24_vgonio.py,sha256=Igqs7687z6lyhGVeJEDtDmPachYxU48MUH2BF0RpK9Q,461
|
|
92
|
-
dodal/devices/i24/pmac.py,sha256=
|
|
93
|
+
dodal/devices/i24/pmac.py,sha256=CdNLzRiOz2jFoZ80WQTdlHiYoDJeQWdqdKDkSKkCEkI,3872
|
|
93
94
|
dodal/devices/oav/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
95
|
dodal/devices/oav/grid_overlay.py,sha256=FRtjcFd420XY8MEQ9sWedL0i4pK-KUJOSxh2C5zM3PA,5232
|
|
95
96
|
dodal/devices/oav/microns_for_zoom_levels.json,sha256=5PA71RzldFTp0eTUGPmov0MjxHe583mzvfor5f3thXI,1208
|
|
@@ -97,7 +98,7 @@ dodal/devices/oav/oav_calculations.py,sha256=wt71vFcyQrr98FvX8oyUM2n5vmKi3K7PyOT
|
|
|
97
98
|
dodal/devices/oav/oav_detector.py,sha256=JtzRdFQVXUdVK4Qyd9knDhsfkK6tsXoD_rIWDpLdpD4,3654
|
|
98
99
|
dodal/devices/oav/oav_errors.py,sha256=cc4mGnaTiAc5WIlOt_BIYOc7CRSkrCdnBaavfAJ0pXY,754
|
|
99
100
|
dodal/devices/oav/oav_parameters.py,sha256=4XybkhKeG7IEjPRfx0PVM9KNenuyN0rAGWBZG7H3zvQ,7941
|
|
100
|
-
dodal/devices/oav/utils.py,sha256=
|
|
101
|
+
dodal/devices/oav/utils.py,sha256=zbUDvNETDoCtclj5jNzxz1XBt5mQlWBbxUrhRP7pZrU,3663
|
|
101
102
|
dodal/devices/oav/pin_image_recognition/__init__.py,sha256=qEX3BRnrcP1BLZD-f_smHiMMPLJPkWQZQbIWTbW25JA,6499
|
|
102
103
|
dodal/devices/oav/pin_image_recognition/manual_test.py,sha256=h1Rto6ZDCB3jWhjSy9N8ECxRN583iYDJr9LxrTJ8kfE,903
|
|
103
104
|
dodal/devices/oav/pin_image_recognition/utils.py,sha256=-7-Zs-331UVTq_AZrfdF-zwZdmMn7eitTkBSqnBrxnk,8620
|
|
@@ -106,17 +107,17 @@ dodal/devices/util/adjuster_plans.py,sha256=2AYaywQP_LbA2KJ6Op3cok8GoRtj696utrSS
|
|
|
106
107
|
dodal/devices/util/epics_util.py,sha256=FSiTgBhm4id1nILM3UUD7V3eDjJM4DEMIG_wEwzM8Tk,4441
|
|
107
108
|
dodal/devices/util/lookup_tables.py,sha256=Up-0BlARt79TIEM76SkDyn9LtTFLxPUcaEPZv6D6bws,2141
|
|
108
109
|
dodal/devices/util/motor_utils.py,sha256=pNY-aUk9LxaIWeDr5rpMS6udiB9j19wcCXkNDLp1uA0,257
|
|
109
|
-
dodal/devices/
|
|
110
|
-
dodal/devices/
|
|
110
|
+
dodal/devices/xspress3/xspress3.py,sha256=29elzI3JtceryKeMWXhcP9nWl0tlSdnTZhltCitet6A,4668
|
|
111
|
+
dodal/devices/xspress3/xspress3_channel.py,sha256=yJRwseLmtkW2Vv6GB8sLdOFuBn3e4c9Q8fgPacMgl5w,1638
|
|
111
112
|
dodal/devices/zocalo/__init__.py,sha256=oPhjFB39yf2NWkGD-MMcPFnnOVZ_RtdyBt2OLYn-Xa4,505
|
|
112
113
|
dodal/devices/zocalo/zocalo_interaction.py,sha256=B6TBTDwUlluksLTwC4TiEEgfFzWLOmwgG8xM5Xd4Wik,3132
|
|
113
114
|
dodal/devices/zocalo/zocalo_results.py,sha256=U4Vk4OF-eL8w0BR-fbw3k4jyRo6G3Ywaf8NMAkjr4Hs,9658
|
|
114
115
|
dodal/parameters/experiment_parameter_base.py,sha256=O7JamfuJ5cYHkPf9tsHJPqn-OMHTAGouigvM1cDFehE,313
|
|
115
|
-
dodal/plans/check_topup.py,sha256=
|
|
116
|
+
dodal/plans/check_topup.py,sha256=Pj6Eu8fa6nvoW4awrMxvzE_ftpLfYz8bN0QDLRw0Yuk,2989
|
|
116
117
|
dodal/plans/data_session_metadata.py,sha256=QNx9rb1EfGBHb21eFekIi7KjNhC0PL-SVKBCggDuNeg,1650
|
|
117
|
-
dls_dodal-1.
|
|
118
|
-
dls_dodal-1.
|
|
119
|
-
dls_dodal-1.
|
|
120
|
-
dls_dodal-1.
|
|
121
|
-
dls_dodal-1.
|
|
122
|
-
dls_dodal-1.
|
|
118
|
+
dls_dodal-1.29.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
119
|
+
dls_dodal-1.29.0.dist-info/METADATA,sha256=ydEXpqy3OYgQ-oGOFOzOFk_D4Xhr9N7zUQfvWp51Evo,16842
|
|
120
|
+
dls_dodal-1.29.0.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
|
|
121
|
+
dls_dodal-1.29.0.dist-info/entry_points.txt,sha256=wpzz9FsTiYxI8OBwLKX9V9ResLwThBSmtRMcPwII0FA,46
|
|
122
|
+
dls_dodal-1.29.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
|
|
123
|
+
dls_dodal-1.29.0.dist-info/RECORD,,
|
dodal/_version.py
CHANGED
dodal/beamlines/i03.py
CHANGED
|
@@ -17,6 +17,7 @@ from dodal.devices.eiger import EigerDetector
|
|
|
17
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
|
+
from dodal.devices.motors import XYZPositioner
|
|
20
21
|
from dodal.devices.oav.oav_detector import OAV, OAVConfigParams
|
|
21
22
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
22
23
|
from dodal.devices.qbpm1 import QBPM1
|
|
@@ -29,7 +30,7 @@ from dodal.devices.undulator import Undulator
|
|
|
29
30
|
from dodal.devices.undulator_dcm import UndulatorDCM
|
|
30
31
|
from dodal.devices.webcam import Webcam
|
|
31
32
|
from dodal.devices.xbpm_feedback import XBPMFeedback
|
|
32
|
-
from dodal.devices.
|
|
33
|
+
from dodal.devices.xspress3.xspress3 import Xspress3
|
|
33
34
|
from dodal.devices.zebra import Zebra
|
|
34
35
|
from dodal.devices.zebra_controlled_shutter import ZebraShutter
|
|
35
36
|
from dodal.devices.zocalo import ZocaloResults
|
|
@@ -208,7 +209,7 @@ def zebra_fast_grid_scan(
|
|
|
208
209
|
return device_instantiation(
|
|
209
210
|
device_factory=ZebraFastGridScan,
|
|
210
211
|
name="zebra_fast_grid_scan",
|
|
211
|
-
prefix="-MO-SGON-01:
|
|
212
|
+
prefix="-MO-SGON-01:",
|
|
212
213
|
wait=wait_for_connection,
|
|
213
214
|
fake=fake_with_ophyd_sim,
|
|
214
215
|
)
|
|
@@ -224,7 +225,7 @@ def panda_fast_grid_scan(
|
|
|
224
225
|
return device_instantiation(
|
|
225
226
|
device_factory=PandAFastGridScan,
|
|
226
227
|
name="panda_fast_grid_scan",
|
|
227
|
-
prefix="-MO-SGON-01:
|
|
228
|
+
prefix="-MO-SGON-01:",
|
|
228
229
|
wait=wait_for_connection,
|
|
229
230
|
fake=fake_with_ophyd_sim,
|
|
230
231
|
)
|
|
@@ -362,12 +363,12 @@ def zebra(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -
|
|
|
362
363
|
|
|
363
364
|
def xspress3mini(
|
|
364
365
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
365
|
-
) ->
|
|
366
|
+
) -> Xspress3:
|
|
366
367
|
"""Get the i03 Xspress3Mini device, instantiate it if it hasn't already been.
|
|
367
368
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
368
369
|
"""
|
|
369
370
|
return device_instantiation(
|
|
370
|
-
|
|
371
|
+
Xspress3,
|
|
371
372
|
"xspress3mini",
|
|
372
373
|
"-EA-XSP3-01:",
|
|
373
374
|
wait_for_connection,
|
|
@@ -495,3 +496,18 @@ def thawer(
|
|
|
495
496
|
wait_for_connection,
|
|
496
497
|
fake_with_ophyd_sim,
|
|
497
498
|
)
|
|
499
|
+
|
|
500
|
+
|
|
501
|
+
def lower_gonio_positioner(
|
|
502
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
503
|
+
) -> XYZPositioner:
|
|
504
|
+
"""Get the i03 lower gonio device, instantiate it if it hasn't already been.
|
|
505
|
+
If this is called when already instantiated in i03, it will return the existing object.
|
|
506
|
+
"""
|
|
507
|
+
return device_instantiation(
|
|
508
|
+
XYZPositioner,
|
|
509
|
+
"lower_gonio_positioner",
|
|
510
|
+
"-MO-GONP-01:",
|
|
511
|
+
wait_for_connection,
|
|
512
|
+
fake_with_ophyd_sim,
|
|
513
|
+
)
|
dodal/beamlines/i20_1.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from dodal.common.beamlines.beamline_utils import device_instantiation
|
|
2
2
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
3
3
|
from dodal.devices.turbo_slit import TurboSlit
|
|
4
|
+
from dodal.devices.xspress3.xspress3 import Xspress3
|
|
4
5
|
from dodal.log import set_beamline as set_log_beamline
|
|
5
6
|
from dodal.utils import get_beamline_name
|
|
6
7
|
|
|
@@ -23,3 +24,20 @@ def turbo_slit(
|
|
|
23
24
|
wait=wait_for_connection,
|
|
24
25
|
fake=fake_with_ophyd_sim,
|
|
25
26
|
)
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def xspress3(
|
|
30
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
31
|
+
) -> Xspress3:
|
|
32
|
+
"""
|
|
33
|
+
16 channels Xspress3 detector
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
return device_instantiation(
|
|
37
|
+
Xspress3,
|
|
38
|
+
prefix="-EA-DET-03:",
|
|
39
|
+
name="Xspress3",
|
|
40
|
+
num_channels=16,
|
|
41
|
+
wait=wait_for_connection,
|
|
42
|
+
fake=fake_with_ophyd_sim,
|
|
43
|
+
)
|
dodal/beamlines/i22.py
CHANGED
|
@@ -10,11 +10,14 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
10
10
|
)
|
|
11
11
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
12
12
|
from dodal.common.beamlines.device_helpers import numbered_slits
|
|
13
|
-
from dodal.common.visit import
|
|
13
|
+
from dodal.common.visit import DirectoryServiceClient, StaticVisitDirectoryProvider
|
|
14
14
|
from dodal.devices.focusing_mirror import FocusingMirror
|
|
15
|
+
from dodal.devices.i22.dcm import CrystalMetadata, DoubleCrystalMonochromator
|
|
15
16
|
from dodal.devices.i22.fswitch import FSwitch
|
|
17
|
+
from dodal.devices.i22.nxsas import NXSasMetadataHolder, NXSasOAV, NXSasPilatus
|
|
16
18
|
from dodal.devices.linkam3 import Linkam3
|
|
17
19
|
from dodal.devices.slits import Slits
|
|
20
|
+
from dodal.devices.synchrotron import Synchrotron
|
|
18
21
|
from dodal.devices.tetramm import TetrammDetector
|
|
19
22
|
from dodal.devices.undulator import Undulator
|
|
20
23
|
from dodal.log import set_beamline as set_log_beamline
|
|
@@ -33,7 +36,7 @@ set_directory_provider(
|
|
|
33
36
|
StaticVisitDirectoryProvider(
|
|
34
37
|
BL,
|
|
35
38
|
Path("/dls/i22/data/2024/cm37271-2/bluesky"),
|
|
36
|
-
client=
|
|
39
|
+
client=DirectoryServiceClient("http://i22-control:8088/api"),
|
|
37
40
|
)
|
|
38
41
|
)
|
|
39
42
|
|
|
@@ -42,28 +45,58 @@ def saxs(
|
|
|
42
45
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
43
46
|
) -> PilatusDetector:
|
|
44
47
|
return device_instantiation(
|
|
45
|
-
|
|
48
|
+
NXSasPilatus,
|
|
46
49
|
"saxs",
|
|
47
50
|
"-EA-PILAT-01:",
|
|
48
51
|
wait_for_connection,
|
|
49
52
|
fake_with_ophyd_sim,
|
|
50
53
|
drv_suffix="CAM:",
|
|
51
54
|
hdf_suffix="HDF5:",
|
|
55
|
+
metadata_holder=NXSasMetadataHolder(
|
|
56
|
+
x_pixel_size=(1.72e-1, "mm"),
|
|
57
|
+
y_pixel_size=(1.72e-1, "mm"),
|
|
58
|
+
description="Dectris Pilatus3 2M",
|
|
59
|
+
type="Photon Counting Hybrid Pixel",
|
|
60
|
+
sensor_material="silicon",
|
|
61
|
+
sensor_thickness=(0.45, "mm"),
|
|
62
|
+
distance=(4711.833684146172, "mm"),
|
|
63
|
+
),
|
|
52
64
|
directory_provider=get_directory_provider(),
|
|
53
65
|
)
|
|
54
66
|
|
|
55
67
|
|
|
68
|
+
def synchrotron(
|
|
69
|
+
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
70
|
+
) -> Synchrotron:
|
|
71
|
+
return device_instantiation(
|
|
72
|
+
Synchrotron,
|
|
73
|
+
"synchrotron",
|
|
74
|
+
"",
|
|
75
|
+
wait_for_connection,
|
|
76
|
+
fake_with_ophyd_sim,
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
|
|
56
80
|
def waxs(
|
|
57
81
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
58
82
|
) -> PilatusDetector:
|
|
59
83
|
return device_instantiation(
|
|
60
|
-
|
|
84
|
+
NXSasPilatus,
|
|
61
85
|
"waxs",
|
|
62
86
|
"-EA-PILAT-03:",
|
|
63
87
|
wait_for_connection,
|
|
64
88
|
fake_with_ophyd_sim,
|
|
65
89
|
drv_suffix="CAM:",
|
|
66
90
|
hdf_suffix="HDF5:",
|
|
91
|
+
metadata_holder=NXSasMetadataHolder(
|
|
92
|
+
x_pixel_size=(1.72e-1, "mm"),
|
|
93
|
+
y_pixel_size=(1.72e-1, "mm"),
|
|
94
|
+
description="Dectris Pilatus3 2M",
|
|
95
|
+
type="Photon Counting Hybrid Pixel",
|
|
96
|
+
sensor_material="silicon",
|
|
97
|
+
sensor_thickness=(0.45, "mm"),
|
|
98
|
+
distance=(175.4199417092314, "mm"),
|
|
99
|
+
),
|
|
67
100
|
directory_provider=get_directory_provider(),
|
|
68
101
|
)
|
|
69
102
|
|
|
@@ -78,6 +111,7 @@ def i0(
|
|
|
78
111
|
"-EA-XBPM-02:",
|
|
79
112
|
wait_for_connection,
|
|
80
113
|
fake_with_ophyd_sim,
|
|
114
|
+
type="Cividec Diamond XBPM",
|
|
81
115
|
directory_provider=get_directory_provider(),
|
|
82
116
|
)
|
|
83
117
|
|
|
@@ -92,6 +126,7 @@ def it(
|
|
|
92
126
|
"-EA-TTRM-02:",
|
|
93
127
|
wait_for_connection,
|
|
94
128
|
fake_with_ophyd_sim,
|
|
129
|
+
type="PIN Diode",
|
|
95
130
|
directory_provider=get_directory_provider(),
|
|
96
131
|
)
|
|
97
132
|
|
|
@@ -122,6 +157,34 @@ def hfm(
|
|
|
122
157
|
)
|
|
123
158
|
|
|
124
159
|
|
|
160
|
+
def dcm(
|
|
161
|
+
wait_for_connection: bool = True,
|
|
162
|
+
fake_with_ophyd_sim: bool = False,
|
|
163
|
+
) -> DoubleCrystalMonochromator:
|
|
164
|
+
return device_instantiation(
|
|
165
|
+
DoubleCrystalMonochromator,
|
|
166
|
+
"dcm",
|
|
167
|
+
"",
|
|
168
|
+
wait_for_connection,
|
|
169
|
+
fake_with_ophyd_sim,
|
|
170
|
+
bl_prefix=False,
|
|
171
|
+
motion_prefix=f"{BeamlinePrefix(BL).beamline_prefix}-MO-DCM-01:",
|
|
172
|
+
temperature_prefix=f"{BeamlinePrefix(BL).beamline_prefix}-DI-DCM-01:",
|
|
173
|
+
crystal_1_metadata=CrystalMetadata(
|
|
174
|
+
usage="Bragg",
|
|
175
|
+
type="silicon",
|
|
176
|
+
reflection=(1, 1, 1),
|
|
177
|
+
d_spacing=(3.13475, "nm"),
|
|
178
|
+
),
|
|
179
|
+
crystal_2_metadata=CrystalMetadata(
|
|
180
|
+
usage="Bragg",
|
|
181
|
+
type="silicon",
|
|
182
|
+
reflection=(1, 1, 1),
|
|
183
|
+
d_spacing=(3.13475, "nm"),
|
|
184
|
+
),
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
|
|
125
188
|
def undulator(
|
|
126
189
|
wait_for_connection: bool = True,
|
|
127
190
|
fake_with_ophyd_sim: bool = False,
|
|
@@ -221,7 +284,6 @@ def fswitch(
|
|
|
221
284
|
)
|
|
222
285
|
|
|
223
286
|
|
|
224
|
-
# Must find which PandA IOC(s) are compatible
|
|
225
287
|
# Must document what PandAs are physically connected to
|
|
226
288
|
# See: https://github.com/bluesky/ophyd-async/issues/284
|
|
227
289
|
def panda1(
|
|
@@ -287,13 +349,18 @@ def oav(
|
|
|
287
349
|
wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
|
|
288
350
|
) -> AravisDetector:
|
|
289
351
|
return device_instantiation(
|
|
290
|
-
|
|
352
|
+
NXSasOAV,
|
|
291
353
|
"oav",
|
|
292
354
|
"-DI-OAV-01:",
|
|
293
355
|
wait_for_connection,
|
|
294
356
|
fake_with_ophyd_sim,
|
|
295
357
|
drv_suffix="DET:",
|
|
296
358
|
hdf_suffix="HDF5:",
|
|
359
|
+
metadata_holder=NXSasMetadataHolder(
|
|
360
|
+
x_pixel_size=(3.45e-3, "mm"), # Double check this figure
|
|
361
|
+
y_pixel_size=(3.45e-3, "mm"),
|
|
362
|
+
description="AVT Mako G-507B",
|
|
363
|
+
),
|
|
297
364
|
directory_provider=get_directory_provider(),
|
|
298
365
|
)
|
|
299
366
|
|
dodal/beamlines/p38.py
CHANGED
|
@@ -12,6 +12,7 @@ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beam
|
|
|
12
12
|
from dodal.common.beamlines.device_helpers import numbered_slits
|
|
13
13
|
from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitDirectoryProvider
|
|
14
14
|
from dodal.devices.focusing_mirror import FocusingMirror
|
|
15
|
+
from dodal.devices.i22.dcm import CrystalMetadata, DoubleCrystalMonochromator
|
|
15
16
|
from dodal.devices.i22.fswitch import FSwitch
|
|
16
17
|
from dodal.devices.linkam3 import Linkam3
|
|
17
18
|
from dodal.devices.slits import Slits
|
|
@@ -214,6 +215,34 @@ def hfm(
|
|
|
214
215
|
)
|
|
215
216
|
|
|
216
217
|
|
|
218
|
+
def dcm(
|
|
219
|
+
wait_for_connection: bool = True,
|
|
220
|
+
fake_with_ophyd_sim: bool = True,
|
|
221
|
+
) -> DoubleCrystalMonochromator:
|
|
222
|
+
return device_instantiation(
|
|
223
|
+
DoubleCrystalMonochromator,
|
|
224
|
+
"dcm",
|
|
225
|
+
"",
|
|
226
|
+
wait_for_connection,
|
|
227
|
+
fake_with_ophyd_sim,
|
|
228
|
+
bl_prefix=False,
|
|
229
|
+
motion_prefix=f"{BeamlinePrefix(BL).beamline_prefix}-MO-DCM-01:",
|
|
230
|
+
temperature_prefix=f"{BeamlinePrefix(BL).beamline_prefix}-DI-DCM-01:",
|
|
231
|
+
crystal_1_metadata=CrystalMetadata(
|
|
232
|
+
usage="Bragg",
|
|
233
|
+
type="silicon",
|
|
234
|
+
reflection=(1, 1, 1),
|
|
235
|
+
d_spacing=3.13475,
|
|
236
|
+
),
|
|
237
|
+
crystal_2_metadata=CrystalMetadata(
|
|
238
|
+
usage="Bragg",
|
|
239
|
+
type="silicon",
|
|
240
|
+
reflection=(1, 1, 1),
|
|
241
|
+
d_spacing=3.13475,
|
|
242
|
+
),
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
|
|
217
246
|
def undulator(
|
|
218
247
|
wait_for_connection: bool = True,
|
|
219
248
|
fake_with_ophyd_sim: bool = True,
|
|
@@ -8,6 +8,7 @@ from ophyd import Component, Device, DeviceStatus, EpicsSignal, EpicsSignalRO, S
|
|
|
8
8
|
from PIL import Image, ImageDraw
|
|
9
9
|
|
|
10
10
|
from dodal.devices.oav.oav_parameters import OAVConfigParams
|
|
11
|
+
from dodal.devices.oav.utils import save_thumbnail
|
|
11
12
|
from dodal.log import LOGGER
|
|
12
13
|
|
|
13
14
|
|
|
@@ -49,6 +50,9 @@ class MJPG(Device, ABC):
|
|
|
49
50
|
|
|
50
51
|
LOGGER.info(f"Saving image to {path}")
|
|
51
52
|
image.save(path)
|
|
53
|
+
|
|
54
|
+
save_thumbnail(Path(path), image)
|
|
55
|
+
|
|
52
56
|
self.last_saved_path.put(path)
|
|
53
57
|
|
|
54
58
|
def trigger(self):
|
|
@@ -67,7 +67,11 @@ class DetectorParams(BaseModel):
|
|
|
67
67
|
def _parse_detector_size_constants(
|
|
68
68
|
cls, det_type: str, values: dict[str, Any]
|
|
69
69
|
) -> DetectorSizeConstants:
|
|
70
|
-
return
|
|
70
|
+
return (
|
|
71
|
+
det_type
|
|
72
|
+
if isinstance(det_type, DetectorSizeConstants)
|
|
73
|
+
else constants_from_type(det_type)
|
|
74
|
+
)
|
|
71
75
|
|
|
72
76
|
@validator("directory", pre=True)
|
|
73
77
|
def _parse_directory(cls, directory: str, values: dict[str, Any]) -> str:
|