dls-dodal 1.47.0__py3-none-any.whl → 1.48.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.47.0.dist-info → dls_dodal-1.48.0.dist-info}/METADATA +2 -2
- {dls_dodal-1.47.0.dist-info → dls_dodal-1.48.0.dist-info}/RECORD +40 -40
- {dls_dodal-1.47.0.dist-info → dls_dodal-1.48.0.dist-info}/WHEEL +1 -1
- dodal/_version.py +2 -2
- dodal/beamlines/aithre.py +6 -0
- dodal/beamlines/b01_1.py +1 -1
- dodal/beamlines/i03.py +21 -6
- dodal/beamlines/i04.py +17 -10
- dodal/beamlines/i18.py +1 -1
- dodal/beamlines/i19_1.py +9 -6
- dodal/beamlines/i24.py +5 -5
- dodal/common/beamlines/beamline_parameters.py +2 -28
- dodal/devices/aithre_lasershaping/goniometer.py +36 -2
- dodal/devices/aithre_lasershaping/laser_robot.py +27 -0
- dodal/devices/electron_analyser/__init__.py +10 -0
- dodal/devices/electron_analyser/abstract/__init__.py +0 -6
- dodal/devices/electron_analyser/abstract/base_detector.py +69 -56
- dodal/devices/electron_analyser/abstract/base_driver_io.py +114 -5
- dodal/devices/electron_analyser/abstract/base_region.py +1 -0
- dodal/devices/electron_analyser/specs/__init__.py +1 -2
- dodal/devices/electron_analyser/specs/detector.py +5 -21
- dodal/devices/electron_analyser/specs/driver_io.py +27 -2
- dodal/devices/electron_analyser/vgscienta/__init__.py +1 -2
- dodal/devices/electron_analyser/vgscienta/detector.py +8 -22
- dodal/devices/electron_analyser/vgscienta/driver_io.py +31 -3
- dodal/devices/electron_analyser/vgscienta/region.py +0 -1
- dodal/devices/fast_grid_scan.py +1 -1
- dodal/devices/i04/murko_results.py +93 -96
- dodal/devices/i18/diode.py +37 -4
- dodal/devices/mx_phase1/beamstop.py +23 -6
- dodal/devices/oav/oav_detector.py +61 -23
- dodal/devices/oav/oav_parameters.py +46 -16
- dodal/devices/oav/oav_to_redis_forwarder.py +2 -2
- dodal/devices/robot.py +20 -1
- dodal/devices/smargon.py +43 -4
- dodal/devices/zebra/zebra.py +8 -0
- dodal/plans/configure_arm_trigger_and_disarm_detector.py +167 -0
- dodal/plan_stubs/electron_analyser/__init__.py +0 -3
- dodal/plan_stubs/electron_analyser/configure_driver.py +0 -92
- {dls_dodal-1.47.0.dist-info → dls_dodal-1.48.0.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.47.0.dist-info → dls_dodal-1.48.0.dist-info}/licenses/LICENSE +0 -0
- {dls_dodal-1.47.0.dist-info → dls_dodal-1.48.0.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.48.0
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async>=0.10.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.10.0a4
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
dls_dodal-1.
|
|
1
|
+
dls_dodal-1.48.0.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
2
2
|
dodal/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
|
|
3
3
|
dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
|
|
4
|
-
dodal/_version.py,sha256=
|
|
4
|
+
dodal/_version.py,sha256=24VKZlawQ9AuOnPMmQ73o0O0fvXG6A-_3ZeLR40kRI0,513
|
|
5
5
|
dodal/cli.py,sha256=NieWNUgLUxyck1rHoFAPJjX1xXLzHNdQ-s4wvxYFfps,3757
|
|
6
6
|
dodal/log.py,sha256=Rt5O3hFZfMnJvQueZvgagQuXnPqHrFxhponOvVkpfrk,9871
|
|
7
7
|
dodal/utils.py,sha256=rqQNalufZPxUPSD2SYuUgWSCpefb8FnqvR6N0t-YcEY,19675
|
|
@@ -10,25 +10,25 @@ dodal/beamline_specific_utils/i03.py,sha256=P6Ls4FoVtcacH0RJM3v6ZwwGx27oMppcBdW0
|
|
|
10
10
|
dodal/beamlines/README.md,sha256=K9MkL_GomxlsoTB7Mz-_dJA5NNSbmCfMiutchGg3C8o,404
|
|
11
11
|
dodal/beamlines/__init__.py,sha256=lueGFb7cW1kDB_LfFavhrgYdjqGErCwAOk5XoU3BY00,3176
|
|
12
12
|
dodal/beamlines/adsim.py,sha256=uOmFYZIGyput93XHk9R5ydZdxnTrS_wA2zSEm62UCVU,1930
|
|
13
|
-
dodal/beamlines/aithre.py,sha256=
|
|
14
|
-
dodal/beamlines/b01_1.py,sha256=
|
|
13
|
+
dodal/beamlines/aithre.py,sha256=gEIyCwvIewNgSxrEmvPsCDuyXVmHjYHt-Go69HITIrE,436
|
|
14
|
+
dodal/beamlines/b01_1.py,sha256=SdjnpssxlpdTwE1D2fuXUsf9WmvUsyg-MSp3DONXyQU,2008
|
|
15
15
|
dodal/beamlines/b07.py,sha256=Fxsn9YDKySnE3zZgtpD8-LSb4IzWlb5xd6sLTCRrvFU,740
|
|
16
16
|
dodal/beamlines/b07_1.py,sha256=nY5fMUDoxn91OG2miVh5cXNQDH8o881yMW9RfZMRlnQ,742
|
|
17
17
|
dodal/beamlines/i02_1.py,sha256=d2IyqFMgeaSEyZYm7GMSjTKr7_02SakyC_oARx-XwnY,1204
|
|
18
|
-
dodal/beamlines/i03.py,sha256=
|
|
19
|
-
dodal/beamlines/i04.py,sha256=
|
|
18
|
+
dodal/beamlines/i03.py,sha256=jLiqH3R_TK2sHsI1zCZ91cYcATEtG28-5lMUcsQTXhU,15594
|
|
19
|
+
dodal/beamlines/i04.py,sha256=_ogXHZZbJVNoMIOKLZe_8TbLP3vC4wss5lqqmzctR40,13723
|
|
20
20
|
dodal/beamlines/i09.py,sha256=cr75vG65pgyWkEYdpcdpuuqAhN_tkmBiBqJn76lQN3k,744
|
|
21
21
|
dodal/beamlines/i09_1.py,sha256=UbBn1q4L8BZXjZ1rUZQImwO0zkIYqGd5T8FptlFFMyw,742
|
|
22
22
|
dodal/beamlines/i10.py,sha256=k8tnUwAb6jX2xY8hgST3ZP4jX3s4I4ispL5M6HF-M5k,11221
|
|
23
23
|
dodal/beamlines/i13_1.py,sha256=RF8AXBqVKPY7rVf4j1gOxcURAToYVk-Yo9t4FWyaphU,1650
|
|
24
|
-
dodal/beamlines/i18.py,sha256=
|
|
25
|
-
dodal/beamlines/i19_1.py,sha256=
|
|
24
|
+
dodal/beamlines/i18.py,sha256=CbzdLHXcIhLl1T-GmXmnNOhwHojl8V3d3ikxVoCqXII,3657
|
|
25
|
+
dodal/beamlines/i19_1.py,sha256=RsHXje1S2OLwuPnaqkRva02aAIq5Ya1FvPbHEQKo0Uc,2925
|
|
26
26
|
dodal/beamlines/i19_2.py,sha256=zairZIPj1mrs9-dG19CjdMEFeqztGmlyeBmIxj7Kl5I,2329
|
|
27
27
|
dodal/beamlines/i19_optics.py,sha256=RztOdru0lvPXpaIXSUfzSsPVIuwAMKZsEA8vJFU4_Mk,1184
|
|
28
28
|
dodal/beamlines/i20_1.py,sha256=Xp6XXofjXh3Yibrg5wSHet-pXikprJ9oprEhJg19OkI,1825
|
|
29
29
|
dodal/beamlines/i22.py,sha256=GAS1KgRrtpdXhYb7tIO3yHHMRcffxOqcSIaCZyexnDk,7595
|
|
30
30
|
dodal/beamlines/i23.py,sha256=pf3KmzLZYDVqUB4LkLcNJk6z9H4qkFpTdVB8_0MYehs,3066
|
|
31
|
-
dodal/beamlines/i24.py,sha256=
|
|
31
|
+
dodal/beamlines/i24.py,sha256=D83MIeoyC-tzd5QcR0yiLUyzraAyBTObx7VnP5-okSk,7158
|
|
32
32
|
dodal/beamlines/p38.py,sha256=bka6zsZfFiBAD-rrLSmIIVAOAw0FvupSkhOHGEG77xo,5708
|
|
33
33
|
dodal/beamlines/p45.py,sha256=2snO895TGwf4LbNIvg4BkvAGSfvZcevdpv_82MRpXKo,2129
|
|
34
34
|
dodal/beamlines/p60.py,sha256=IJQdemlEkvVMYcyqp2WkyEwPAQrjor33b52wrfEVDIs,615
|
|
@@ -43,7 +43,7 @@ dodal/common/types.py,sha256=fkL7UOwDbe3v2_VJ5f1W5RxR98Wx-Ra-LxUZWkNDtls,486
|
|
|
43
43
|
dodal/common/udc_directory_provider.py,sha256=v5OBaCUwjtQZAsRQUw6LlVL58UvwwDO1l2MKlilXjdk,2403
|
|
44
44
|
dodal/common/visit.py,sha256=BLpr3GrP7Ij95V135hRJLgg7gWtBKXVxyOibWtcO8RE,5782
|
|
45
45
|
dodal/common/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
-
dodal/common/beamlines/beamline_parameters.py,sha256=
|
|
46
|
+
dodal/common/beamlines/beamline_parameters.py,sha256=H9d4fLwVist7G-KdKYcv9D28E0tkhPtGPfiJ4V_5iHI,2721
|
|
47
47
|
dodal/common/beamlines/beamline_utils.py,sha256=uy-HWchyUwoIqYYUWAd4BOPPoDzqvvtgkWQGzuKStTg,5061
|
|
48
48
|
dodal/common/beamlines/device_helpers.py,sha256=lh7eih7KoFiqxo8PLQIDjbpBbhHuAXSeApt7K3KF9to,1002
|
|
49
49
|
dodal/devices/CTAB.py,sha256=5_261Ox6NG2cJIzzwnjWz289BG0nZoE0wKOaI5V5jqM,1998
|
|
@@ -60,7 +60,7 @@ dodal/devices/cryostream.py,sha256=K-ldpredpeDTzNt4qtQMg99nKJNjBYoXBbK0WJGexzw,6
|
|
|
60
60
|
dodal/devices/diamond_filter.py,sha256=hySd7HnLdplpPNvBrLddLjO_3LqgD8-99Zr__Sy_GbI,689
|
|
61
61
|
dodal/devices/eiger.py,sha256=pQmklNX9kVCT5DE0WhRd5bAsNNKEo_vfPZG-ZunW67Q,15836
|
|
62
62
|
dodal/devices/eiger_odin.py,sha256=ytUH_18YuM1nJDhplS6OTdtADloYvHpO6ppENjVd4jU,7411
|
|
63
|
-
dodal/devices/fast_grid_scan.py,sha256=
|
|
63
|
+
dodal/devices/fast_grid_scan.py,sha256=NfP746FfuHW-SWs7c7-O9oocWyVjBpu89WW7kaanlLM,11914
|
|
64
64
|
dodal/devices/fluorescence_detector_motion.py,sha256=-1qCSvW0PdT0m6BcoLxrtc0OJ5UDIBsEe11EOLr-gFw,501
|
|
65
65
|
dodal/devices/flux.py,sha256=1CDsq9yU2-ho8MfYBl50Tl9ABZwpUBHnV486PQXKNoQ,462
|
|
66
66
|
dodal/devices/focusing_mirror.py,sha256=vdUPkwyCAZBSR3LQ-EojDOoxVy1ZmOaD_nevETbj7BA,6592
|
|
@@ -73,12 +73,12 @@ dodal/devices/pgm.py,sha256=am-AST9iTqma1PkGOKLozqAokZWbJUbM3TNcqXzB-6A,1132
|
|
|
73
73
|
dodal/devices/positioner.py,sha256=qf_1uYOI1whS0U5sPA3O3mlZYKrPuW3i0gEKI_q-up0,1289
|
|
74
74
|
dodal/devices/pressure_jump_cell.py,sha256=h5nMNtr2PMG_AKM6nOB7qNTYT70GRuiGBwC-Ol2Yby0,10548
|
|
75
75
|
dodal/devices/qbpm.py,sha256=FfrWWAHHtYv3fGRT1qljyPpAwoHJYfbooT9CfKg-oXI,465
|
|
76
|
-
dodal/devices/robot.py,sha256=
|
|
76
|
+
dodal/devices/robot.py,sha256=BoaWRqPeO1Q9EhJ1fnq4od0GaiBconBunzg3u5kK5n0,6859
|
|
77
77
|
dodal/devices/s4_slit_gaps.py,sha256=4KdarIQoRqX4ry3LUS1Km7fkjUFahA0VuTd2DvYEqQ8,446
|
|
78
78
|
dodal/devices/scatterguard.py,sha256=jx03in9QgaThWxD4t1S8_Llent2kWrn_hThJ9KkUWTk,330
|
|
79
79
|
dodal/devices/scintillator.py,sha256=PlD6cnJ39PTB_e7QrRspPliLYE4kL_K7ziJURzuxgdA,365
|
|
80
80
|
dodal/devices/slits.py,sha256=b_7ku2sHlzhMHTvWrwiRwee6ufrbxNX9JB_Z0lvk15o,1105
|
|
81
|
-
dodal/devices/smargon.py,sha256=
|
|
81
|
+
dodal/devices/smargon.py,sha256=hLalJ32VDSjWQCCjFMXq4PhO17dven9RD5-9hqy8zNM,5734
|
|
82
82
|
dodal/devices/status.py,sha256=hVrJS1yooQo6PRumRACoIEh-SKBUKxvBlQl-MtLFUMQ,327
|
|
83
83
|
dodal/devices/synchrotron.py,sha256=wLfClZ1lYQWA_D--UsM3NnKLG8bY8mvVsRYER6ob-Ew,2026
|
|
84
84
|
dodal/devices/tetramm.py,sha256=cvlXiKwrvVgYNb3Kt2b_YyRMT5-fqMoKJrOGFNNR150,8643
|
|
@@ -88,7 +88,8 @@ dodal/devices/undulator.py,sha256=ZCdMQ8PKnW7mFV1BmrprOt0aSBCZMSKAH-2yyVH5Ihk,53
|
|
|
88
88
|
dodal/devices/watsonmarlow323_pump.py,sha256=rwU94YE6esgGLYdh-pe8nBo_3tvgp6brrrbPDrqp5_M,1406
|
|
89
89
|
dodal/devices/webcam.py,sha256=mef075ynDbzZ4pNAjfxR_9tdTTqF_rM7hAOVEEOV-Do,2408
|
|
90
90
|
dodal/devices/xbpm_feedback.py,sha256=j8MHhhE0feoe6R54zPKqS5EbQ0bEDR-nOpLHzHhnHHQ,1156
|
|
91
|
-
dodal/devices/aithre_lasershaping/goniometer.py,sha256=
|
|
91
|
+
dodal/devices/aithre_lasershaping/goniometer.py,sha256=rZXnifj4-D0Nx3vStK0s-fBijvdepL1SXlHKocV7uKI,1840
|
|
92
|
+
dodal/devices/aithre_lasershaping/laser_robot.py,sha256=BPAHHRa9cYYSR4iv05CQEqRBjt1VKp0INSoVDg0ImRQ,763
|
|
92
93
|
dodal/devices/areadetector/plugins/CAM.py,sha256=sZzJm5Ez3eWfXZi_EB67wluhZmMQm1UyOc2bJFfzd1U,964
|
|
93
94
|
dodal/devices/areadetector/plugins/MJPG.py,sha256=QTsxCoWbofNpLMGPoOR2hWoM33KyntuLepbF0YmX0KE,3031
|
|
94
95
|
dodal/devices/attenuator/attenuator.py,sha256=Vq9Zsyf56S5fePHGeluImTUtxdwEqttBa2YBIdU5tJU,3993
|
|
@@ -106,27 +107,27 @@ dodal/devices/detector/det_dist_to_beam_converter.py,sha256=nSkhiEESyuzdrWoPu6h3
|
|
|
106
107
|
dodal/devices/detector/det_resolution.py,sha256=aQkKp24LpRGiwzPAQM3wLVa4ANw32HdrKc2kftHfKQA,3253
|
|
107
108
|
dodal/devices/detector/detector.py,sha256=DqQvlgdjIdKErrZqgM9IH7drc-r6N8nhkFk7KwlgYAk,4815
|
|
108
109
|
dodal/devices/detector/detector_motion.py,sha256=UGDQriDWRluDZOZh1mDX9w_fPjMD-_BGe11kA36Kezs,1616
|
|
109
|
-
dodal/devices/electron_analyser/__init__.py,sha256=
|
|
110
|
+
dodal/devices/electron_analyser/__init__.py,sha256=zeTwdPFK8Su5kviLu-gertJRRth4jCED9d0NoZl11vg,484
|
|
110
111
|
dodal/devices/electron_analyser/types.py,sha256=2QObyZln7pvWyLgixabGGWvfs3aIF98gVSz2B4NS1OM,120
|
|
111
112
|
dodal/devices/electron_analyser/util.py,sha256=prZXwwxw3F3JD7S00WLuYTKQx04xvZqzpIC8xESdxJw,437
|
|
112
|
-
dodal/devices/electron_analyser/abstract/__init__.py,sha256=
|
|
113
|
-
dodal/devices/electron_analyser/abstract/base_detector.py,sha256=
|
|
114
|
-
dodal/devices/electron_analyser/abstract/base_driver_io.py,sha256=
|
|
115
|
-
dodal/devices/electron_analyser/abstract/base_region.py,sha256=
|
|
116
|
-
dodal/devices/electron_analyser/specs/__init__.py,sha256=
|
|
117
|
-
dodal/devices/electron_analyser/specs/detector.py,sha256=
|
|
118
|
-
dodal/devices/electron_analyser/specs/driver_io.py,sha256=
|
|
113
|
+
dodal/devices/electron_analyser/abstract/__init__.py,sha256=OJ8rm_23azSe-MHmiyQZEUztqDnew4bRTdC2eVaiHT4,572
|
|
114
|
+
dodal/devices/electron_analyser/abstract/base_detector.py,sha256=FKMpd2Igg_ZaHeqgLMfD6eKgZTpfovEMnW2FspXtKkw,7146
|
|
115
|
+
dodal/devices/electron_analyser/abstract/base_driver_io.py,sha256=ms3BwmDA6X9efBNihvq_RZWiWQc89eFAKPBCQ6IVDp8,8705
|
|
116
|
+
dodal/devices/electron_analyser/abstract/base_region.py,sha256=BE4NGNvSm9Gg7c9Vjq1W51dWpuhwEW5EIQWNR9rGf5M,3522
|
|
117
|
+
dodal/devices/electron_analyser/specs/__init__.py,sha256=zzVEeFczfxVsVlBnt6spWhht4ScjKaah_pHC3R4Zy5g,233
|
|
118
|
+
dodal/devices/electron_analyser/specs/detector.py,sha256=HgVuGkEI8Xx2WAYplXNycGE9zut__esv91i9-4ee73M,542
|
|
119
|
+
dodal/devices/electron_analyser/specs/driver_io.py,sha256=qNFMnUJdrR3dAcgJySm92lN73H816B8uG6m1nk0miyQ,3339
|
|
119
120
|
dodal/devices/electron_analyser/specs/region.py,sha256=Z39jr_d28fQ13KQq7Z3NCeHVSM73rbCkDyZNXzDzPzI,862
|
|
120
|
-
dodal/devices/electron_analyser/vgscienta/__init__.py,sha256=
|
|
121
|
-
dodal/devices/electron_analyser/vgscienta/detector.py,sha256=
|
|
122
|
-
dodal/devices/electron_analyser/vgscienta/driver_io.py,sha256=
|
|
123
|
-
dodal/devices/electron_analyser/vgscienta/region.py,sha256=
|
|
121
|
+
dodal/devices/electron_analyser/vgscienta/__init__.py,sha256=LL_rvNUZcOFNUvWmuuqAapQ_YbjzNQn7ootJEhZFttI,337
|
|
122
|
+
dodal/devices/electron_analyser/vgscienta/detector.py,sha256=zMFV0YPI9h0WjU9QDsM1JfOOCXKLV8Umy3iuu6nVyb8,632
|
|
123
|
+
dodal/devices/electron_analyser/vgscienta/driver_io.py,sha256=L0dv7bPTD0ZH9RCEUULePtNwa_joHxhdc0ec5MfUTFo,2707
|
|
124
|
+
dodal/devices/electron_analyser/vgscienta/region.py,sha256=h3uQqjWNyZDqDkhDYeJkGBNgZAETn7lr3AfhWynK3Po,2502
|
|
124
125
|
dodal/devices/i03/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
|
|
125
126
|
dodal/devices/i03/dcm.py,sha256=zDcgxOdMRVOQZBGDsLaIlr7o4UJIK2vehPWHxAxt6VA,2268
|
|
126
127
|
dodal/devices/i03/undulator_dcm.py,sha256=c5H-17Dpt3pIMAlU9fHCnU59lYDnmgKk3qE2qR9gg44,2594
|
|
127
128
|
dodal/devices/i04/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
|
|
128
129
|
dodal/devices/i04/constants.py,sha256=jHZe5Aeph0_hCDJotMx7Yi8v_a_6jyoI6p60AQ8GvGM,271
|
|
129
|
-
dodal/devices/i04/murko_results.py,sha256=
|
|
130
|
+
dodal/devices/i04/murko_results.py,sha256=1vVQKQdBGYAwcX22oQzWYheelIppoTQk5_git563y10,7055
|
|
130
131
|
dodal/devices/i04/transfocator.py,sha256=sVI4Bgv-2-DH4-F1nIXMp5Aktevrm3agZnCA-WgjmW8,3780
|
|
131
132
|
dodal/devices/i10/diagnostics.py,sha256=5nnf1oFKtUJZa9Pewh1VxXpFecLscqTR2VakHKr_PaQ,5432
|
|
132
133
|
dodal/devices/i10/i10_apple2.py,sha256=ErObNNE59NuYssde6ojWJb8wo3SVohkQsvK0Bjnf1T8,13192
|
|
@@ -140,7 +141,7 @@ dodal/devices/i13_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
|
140
141
|
dodal/devices/i13_1/merlin.py,sha256=mgTFSMJftRzLL-HXAUuJkOYxtyA3Rp8YX0L46JCb30Y,1019
|
|
141
142
|
dodal/devices/i13_1/merlin_controller.py,sha256=XkY8E3UkSzZb9Pw_Ic4bv1DYJvBVADS_3okjHvY4nH4,1453
|
|
142
143
|
dodal/devices/i18/KBMirror.py,sha256=W4R3TeulSjosUqAFIIznyWzje_Y2AoEf9f8N-NkisYM,710
|
|
143
|
-
dodal/devices/i18/diode.py,sha256=
|
|
144
|
+
dodal/devices/i18/diode.py,sha256=nk5kvn4LsbhczRpCwHOO0_jJTYOz7MP9qm_uvBWuv7c,1468
|
|
144
145
|
dodal/devices/i18/table.py,sha256=f6OtVSqCFIpXyoHX97CPLpaVDVXUNc2EvgSFP3qVFKo,446
|
|
145
146
|
dodal/devices/i18/thor_labs_stage.py,sha256=I9JSKY-UqTjN-yBxQWL4CycTNNkUj3vknRrXjA6KZR8,364
|
|
146
147
|
dodal/devices/i19/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -163,12 +164,12 @@ dodal/devices/i24/i24_detector_motion.py,sha256=_HgdsZqFYY0tKqUgMzViHaPEUFXL3WlX
|
|
|
163
164
|
dodal/devices/i24/pilatus_metadata.py,sha256=I-AR8vd67qf6p0vZnRPTv4aNPN5T4KpSt2Iog4_jvn0,1781
|
|
164
165
|
dodal/devices/i24/pmac.py,sha256=UTcJdTyzr7DL5XanjtjIopsxEyAPn9pv2jwgh2ksWV4,7078
|
|
165
166
|
dodal/devices/i24/vgonio.py,sha256=sxSmcYZayVJPJz_D_91j9PmNor7Tbl1RGQFRrdtESlw,533
|
|
166
|
-
dodal/devices/mx_phase1/beamstop.py,sha256=
|
|
167
|
+
dodal/devices/mx_phase1/beamstop.py,sha256=MeSpp4YpHgIrWCifDU7OTUaJNAMLVpcmgxTMjmOy048,3170
|
|
167
168
|
dodal/devices/oav/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
168
169
|
dodal/devices/oav/oav_calculations.py,sha256=qoaNz4MAdbpu0XHAkWTQ3rebFwsWfa8JA1eerUgISjA,2367
|
|
169
|
-
dodal/devices/oav/oav_detector.py,sha256=
|
|
170
|
-
dodal/devices/oav/oav_parameters.py,sha256=
|
|
171
|
-
dodal/devices/oav/oav_to_redis_forwarder.py,sha256=
|
|
170
|
+
dodal/devices/oav/oav_detector.py,sha256=f6z5DIOZOba4nXJq3kusdOF-qpV0gJ-SeDh-oRpfqsM,5874
|
|
171
|
+
dodal/devices/oav/oav_parameters.py,sha256=nnlTwrX5F6eMVK6wUz_MU39aLfV_P-_EyklfTQFAjZ4,6856
|
|
172
|
+
dodal/devices/oav/oav_to_redis_forwarder.py,sha256=Nz_fOBK9NIsFTVO-G67JB-0qzDybWb_HS7RCkqrHfd8,6265
|
|
172
173
|
dodal/devices/oav/utils.py,sha256=T-xg7J38ritzXwRrKjsWZ7daC_qR7aNhlbkXx75nJ8Q,3188
|
|
173
174
|
dodal/devices/oav/pin_image_recognition/__init__.py,sha256=_eCq-rEtGNXVfrpahfKMLu53lEr49q5rtVqg0GhiODQ,6534
|
|
174
175
|
dodal/devices/oav/pin_image_recognition/manual_test.py,sha256=h1Rto6ZDCB3jWhjSy9N8ECxRN583iYDJr9LxrTJ8kfE,903
|
|
@@ -190,7 +191,7 @@ dodal/devices/util/test_utils.py,sha256=KEYkqyZrAyju438VCbtQ0Ujv-9GBuIuVGCgggDHU
|
|
|
190
191
|
dodal/devices/xspress3/xspress3.py,sha256=75RdPuHpES4Xi-Lcywz0XUhaN2G3vZSoc-dzgcxfNvs,4636
|
|
191
192
|
dodal/devices/xspress3/xspress3_channel.py,sha256=w8tAx2lz5kJ_LeJ_eb_4o--Dtt8MRijsYNgDG6oEIVg,1626
|
|
192
193
|
dodal/devices/zebra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
193
|
-
dodal/devices/zebra/zebra.py,sha256=
|
|
194
|
+
dodal/devices/zebra/zebra.py,sha256=wDHi6t-I1t35_McRftB82pF9p7N50LQaOtdEl28c8dI,9510
|
|
194
195
|
dodal/devices/zebra/zebra_constants_mapping.py,sha256=S2iXbmO3XVY5aYsTCi8Kw1YRJg5dGrdDaZppEeZN1Vk,4169
|
|
195
196
|
dodal/devices/zebra/zebra_controlled_shutter.py,sha256=tcBq2WQxST9g2VrjVWu-tOomFX-zGLHLNDhYhL0DtHc,1871
|
|
196
197
|
dodal/devices/zocalo/__init__.py,sha256=P9L31CzVJjXv3TQHau5qywYGFPTyopVaHLww8MOYnzc,440
|
|
@@ -203,17 +204,16 @@ dodal/plan_stubs/check_topup.py,sha256=3gyLHfHNQBCgEWuAg4QE-ONx7y2Do1vVv5HP8ss0Z
|
|
|
203
204
|
dodal/plan_stubs/data_session.py,sha256=Syc6XKaN1usf7bNWOez8_vAH3byrcROqskmBrSUWa4Y,2132
|
|
204
205
|
dodal/plan_stubs/motor_utils.py,sha256=Mf8utOA_xmxUa2dLmQ1uRkdfyDTip7D8YcKeCBCQLUQ,4458
|
|
205
206
|
dodal/plan_stubs/wrapped.py,sha256=kC8HH7bx3-sLYu2oieY_502tAdT2OECF8n-fqoL5Bfc,4266
|
|
206
|
-
dodal/plan_stubs/electron_analyser/__init__.py,sha256=CBr0ikST8OfEu26TP3etKp_MxYg-0phwWPtMaUgczNE,163
|
|
207
|
-
dodal/plan_stubs/electron_analyser/configure_driver.py,sha256=7hx4mhE5vthb3Y30e1EslDI6_voU4NCssvsUBDfqhCs,3199
|
|
208
207
|
dodal/plans/__init__.py,sha256=nH1jNxw3DzDMg9O8Uda0kqKIalRVEWBrq07OLY6Ey38,93
|
|
208
|
+
dodal/plans/configure_arm_trigger_and_disarm_detector.py,sha256=pI1AkTH_5hIU56GmmrBdHMhepuDCuQz44V-O4XIaueg,5384
|
|
209
209
|
dodal/plans/save_panda.py,sha256=1fumH7Ih8uDIv8ahAtgQ_vUuR3dz0sfUs4n9TEtEbSs,3053
|
|
210
210
|
dodal/plans/scanspec.py,sha256=Q0AcvTKRT401iGMRDSqK-D523UX5_ofiVMZ_rNXKOx8,2074
|
|
211
211
|
dodal/plans/verify_undulator_gap.py,sha256=OcDN09-eCoMzsmhKGxvzsH5EapG2zYz0yGCqUtQxLSc,568
|
|
212
212
|
dodal/plans/wrapped.py,sha256=BPMw__RcWvk9v5XnhMsi9_k4KsDEbmXogzD2n1ecbUg,2098
|
|
213
213
|
dodal/plans/preprocessors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
214
214
|
dodal/plans/preprocessors/verify_undulator_gap.py,sha256=cBZEGq8TW1jrXFXB00iClQVXSEaE_jP_rHMY9WTgYyY,1813
|
|
215
|
-
dls_dodal-1.
|
|
216
|
-
dls_dodal-1.
|
|
217
|
-
dls_dodal-1.
|
|
218
|
-
dls_dodal-1.
|
|
219
|
-
dls_dodal-1.
|
|
215
|
+
dls_dodal-1.48.0.dist-info/METADATA,sha256=faFiABQKyznao1MadSS2zvfIcvbLIxz29YRaLXLtnDk,16806
|
|
216
|
+
dls_dodal-1.48.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
217
|
+
dls_dodal-1.48.0.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
|
|
218
|
+
dls_dodal-1.48.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
|
|
219
|
+
dls_dodal-1.48.0.dist-info/RECORD,,
|
dodal/_version.py
CHANGED
dodal/beamlines/aithre.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from dodal.common.beamlines.beamline_utils import device_factory
|
|
2
2
|
from dodal.devices.aithre_lasershaping.goniometer import Goniometer
|
|
3
|
+
from dodal.devices.aithre_lasershaping.laser_robot import LaserRobot
|
|
3
4
|
|
|
4
5
|
PREFIX = "LA18L"
|
|
5
6
|
|
|
@@ -7,3 +8,8 @@ PREFIX = "LA18L"
|
|
|
7
8
|
@device_factory()
|
|
8
9
|
def goniometer() -> Goniometer:
|
|
9
10
|
return Goniometer(f"{PREFIX}-MO-LSR-01:", "goniometer")
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@device_factory()
|
|
14
|
+
def robot() -> LaserRobot:
|
|
15
|
+
return LaserRobot("robot", f"{PREFIX}-MO-ROBOT-01:")
|
dodal/beamlines/b01_1.py
CHANGED
dodal/beamlines/i03.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
from ophyd_async.fastcs.eiger import EigerDetector as FastEiger
|
|
1
2
|
from ophyd_async.fastcs.panda import HDFPanda
|
|
2
3
|
|
|
3
4
|
from dodal.common.beamlines.beamline_parameters import get_beamline_parameters
|
|
@@ -28,8 +29,8 @@ from dodal.devices.i03 import Beamstop
|
|
|
28
29
|
from dodal.devices.i03.dcm import DCM
|
|
29
30
|
from dodal.devices.i03.undulator_dcm import UndulatorDCM
|
|
30
31
|
from dodal.devices.motors import XYZPositioner
|
|
31
|
-
from dodal.devices.oav.oav_detector import
|
|
32
|
-
from dodal.devices.oav.oav_parameters import
|
|
32
|
+
from dodal.devices.oav.oav_detector import OAVBeamCentreFile
|
|
33
|
+
from dodal.devices.oav.oav_parameters import OAVConfigBeamCentre
|
|
33
34
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
34
35
|
from dodal.devices.qbpm import QBPM
|
|
35
36
|
from dodal.devices.robot import BartRobot
|
|
@@ -172,6 +173,20 @@ def eiger(mock: bool = False) -> EigerDetector:
|
|
|
172
173
|
)
|
|
173
174
|
|
|
174
175
|
|
|
176
|
+
@device_factory()
|
|
177
|
+
def fastcs_eiger() -> FastEiger:
|
|
178
|
+
"""Get the i03 FastCS Eiger device, instantiate it if it hasn't already been.
|
|
179
|
+
If this is called when already instantiated in i03, it will return the existing object.
|
|
180
|
+
"""
|
|
181
|
+
|
|
182
|
+
return FastEiger(
|
|
183
|
+
prefix=PREFIX.beamline_prefix,
|
|
184
|
+
path_provider=get_path_provider(),
|
|
185
|
+
drv_suffix="-EA-EIGER-02:",
|
|
186
|
+
hdf_suffix="-EA-EIGER-01:OD:",
|
|
187
|
+
)
|
|
188
|
+
|
|
189
|
+
|
|
175
190
|
@device_factory()
|
|
176
191
|
def zebra_fast_grid_scan() -> ZebraFastGridScan:
|
|
177
192
|
"""Get the i03 zebra_fast_grid_scan device, instantiate it if it hasn't already been.
|
|
@@ -197,15 +212,15 @@ def panda_fast_grid_scan() -> PandAFastGridScan:
|
|
|
197
212
|
|
|
198
213
|
@device_factory()
|
|
199
214
|
def oav(
|
|
200
|
-
params:
|
|
201
|
-
) ->
|
|
215
|
+
params: OAVConfigBeamCentre | None = None,
|
|
216
|
+
) -> OAVBeamCentreFile:
|
|
202
217
|
"""Get the i03 OAV device, instantiate it if it hasn't already been.
|
|
203
218
|
If this is called when already instantiated in i03, it will return the existing object.
|
|
204
219
|
"""
|
|
205
|
-
return
|
|
220
|
+
return OAVBeamCentreFile(
|
|
206
221
|
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
207
222
|
name="oav",
|
|
208
|
-
config=params or
|
|
223
|
+
config=params or OAVConfigBeamCentre(ZOOM_PARAMS_FILE, DISPLAY_CONFIG),
|
|
209
224
|
)
|
|
210
225
|
|
|
211
226
|
|
dodal/beamlines/i04.py
CHANGED
|
@@ -24,7 +24,7 @@ from dodal.devices.i04.transfocator import Transfocator
|
|
|
24
24
|
from dodal.devices.ipin import IPin
|
|
25
25
|
from dodal.devices.motors import XYZPositioner
|
|
26
26
|
from dodal.devices.mx_phase1.beamstop import Beamstop
|
|
27
|
-
from dodal.devices.oav.oav_detector import
|
|
27
|
+
from dodal.devices.oav.oav_detector import OAVBeamCentrePV
|
|
28
28
|
from dodal.devices.oav.oav_parameters import OAVConfig
|
|
29
29
|
from dodal.devices.oav.oav_to_redis_forwarder import OAVToRedisForwarder
|
|
30
30
|
from dodal.devices.oav.pin_image_recognition import PinTipDetection
|
|
@@ -53,7 +53,7 @@ DISPLAY_CONFIG = "/dls_sw/i04/software/gda_versions/var/display.configuration"
|
|
|
53
53
|
DAQ_CONFIGURATION_PATH = "/dls_sw/i04/software/daq_configuration"
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
BL = get_beamline_name("
|
|
56
|
+
BL = get_beamline_name("i04")
|
|
57
57
|
set_log_beamline(BL)
|
|
58
58
|
set_utils_beamline(BL)
|
|
59
59
|
|
|
@@ -297,18 +297,25 @@ def zebra() -> Zebra:
|
|
|
297
297
|
|
|
298
298
|
|
|
299
299
|
@device_factory(skip=BL == "s04")
|
|
300
|
-
def oav(
|
|
301
|
-
wait_for_connection: bool = True,
|
|
302
|
-
fake_with_ophyd_sim: bool = False,
|
|
303
|
-
params: OAVConfig | None = None,
|
|
304
|
-
) -> OAV:
|
|
300
|
+
def oav(params: OAVConfig | None = None) -> OAVBeamCentrePV:
|
|
305
301
|
"""Get the i04 OAV device, instantiate it if it hasn't already been.
|
|
306
302
|
If this is called when already instantiated in i04, it will return the existing object.
|
|
307
303
|
"""
|
|
308
|
-
return
|
|
304
|
+
return OAVBeamCentrePV(
|
|
309
305
|
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
310
|
-
|
|
311
|
-
|
|
306
|
+
config=params or OAVConfig(ZOOM_PARAMS_FILE),
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
@device_factory(skip=BL == "s04")
|
|
311
|
+
def oav_full_screen(params: OAVConfig | None = None) -> OAVBeamCentrePV:
|
|
312
|
+
"""Get the i04 OAV device, instantiate it if it hasn't already been.
|
|
313
|
+
If this is called when already instantiated in i04, it will return the existing object.
|
|
314
|
+
"""
|
|
315
|
+
return OAVBeamCentrePV(
|
|
316
|
+
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
317
|
+
config=params or OAVConfig(ZOOM_PARAMS_FILE),
|
|
318
|
+
overlay_channel=3,
|
|
312
319
|
)
|
|
313
320
|
|
|
314
321
|
|
dodal/beamlines/i18.py
CHANGED
dodal/beamlines/i19_1.py
CHANGED
|
@@ -6,9 +6,12 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
6
6
|
)
|
|
7
7
|
from dodal.devices.i19.beamstop import BeamStop
|
|
8
8
|
from dodal.devices.i19.blueapi_device import HutchState
|
|
9
|
-
from dodal.devices.i19.shutter import
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
from dodal.devices.i19.shutter import (
|
|
10
|
+
AccessControlledShutter,
|
|
11
|
+
HutchState,
|
|
12
|
+
)
|
|
13
|
+
from dodal.devices.oav.oav_detector import OAVBeamCentreFile
|
|
14
|
+
from dodal.devices.oav.oav_parameters import OAVConfigBeamCentre
|
|
12
15
|
from dodal.devices.synchrotron import Synchrotron
|
|
13
16
|
from dodal.devices.zebra.zebra import Zebra
|
|
14
17
|
from dodal.devices.zebra.zebra_constants_mapping import (
|
|
@@ -48,10 +51,10 @@ def beamstop() -> BeamStop:
|
|
|
48
51
|
|
|
49
52
|
|
|
50
53
|
@device_factory()
|
|
51
|
-
def oav() ->
|
|
52
|
-
return
|
|
54
|
+
def oav() -> OAVBeamCentreFile:
|
|
55
|
+
return OAVBeamCentreFile(
|
|
53
56
|
prefix=f"{PREFIX.beamline_prefix}-EA-OAV-01:",
|
|
54
|
-
config=
|
|
57
|
+
config=OAVConfigBeamCentre(ZOOM_PARAMS_FILE, DISPLAY_CONFIG),
|
|
55
58
|
)
|
|
56
59
|
|
|
57
60
|
|
dodal/beamlines/i24.py
CHANGED
|
@@ -15,8 +15,8 @@ from dodal.devices.i24.i24_detector_motion import DetectorMotion
|
|
|
15
15
|
from dodal.devices.i24.pilatus_metadata import PilatusMetadata
|
|
16
16
|
from dodal.devices.i24.pmac import PMAC
|
|
17
17
|
from dodal.devices.i24.vgonio import VerticalGoniometer
|
|
18
|
-
from dodal.devices.oav.oav_detector import
|
|
19
|
-
from dodal.devices.oav.oav_parameters import
|
|
18
|
+
from dodal.devices.oav.oav_detector import OAVBeamCentreFile
|
|
19
|
+
from dodal.devices.oav.oav_parameters import OAVConfigBeamCentre
|
|
20
20
|
from dodal.devices.zebra.zebra import Zebra
|
|
21
21
|
from dodal.devices.zebra.zebra_constants_mapping import (
|
|
22
22
|
ZebraMapping,
|
|
@@ -150,11 +150,11 @@ def pmac() -> PMAC:
|
|
|
150
150
|
|
|
151
151
|
|
|
152
152
|
@device_factory(skip=BL == "s24")
|
|
153
|
-
def oav() ->
|
|
154
|
-
return
|
|
153
|
+
def oav() -> OAVBeamCentreFile:
|
|
154
|
+
return OAVBeamCentreFile(
|
|
155
155
|
prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
|
|
156
156
|
name="oav",
|
|
157
|
-
config=
|
|
157
|
+
config=OAVConfigBeamCentre(ZOOM_PARAMS_FILE, DISPLAY_CONFIG),
|
|
158
158
|
)
|
|
159
159
|
|
|
160
160
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import ast
|
|
1
2
|
from typing import Any, cast
|
|
2
3
|
|
|
3
4
|
from dodal.log import LOGGER
|
|
@@ -57,34 +58,7 @@ class GDABeamlineParameters:
|
|
|
57
58
|
|
|
58
59
|
@classmethod
|
|
59
60
|
def parse_value(cls, value: str):
|
|
60
|
-
|
|
61
|
-
return cls.parse_list(value[1:].strip())
|
|
62
|
-
else:
|
|
63
|
-
return cls.parse_list_element(value)
|
|
64
|
-
|
|
65
|
-
@classmethod
|
|
66
|
-
def parse_list_element(cls, value: str):
|
|
67
|
-
if value == "Yes":
|
|
68
|
-
return True
|
|
69
|
-
elif value == "No":
|
|
70
|
-
return False
|
|
71
|
-
else:
|
|
72
|
-
return float(value)
|
|
73
|
-
|
|
74
|
-
@classmethod
|
|
75
|
-
def parse_list(cls, value: str):
|
|
76
|
-
list_output = []
|
|
77
|
-
remaining = value.strip()
|
|
78
|
-
i = 0
|
|
79
|
-
while (i := remaining.find(",")) != -1:
|
|
80
|
-
list_output.append(cls.parse_list_element(remaining[:i]))
|
|
81
|
-
remaining = remaining[i + 1 :].lstrip()
|
|
82
|
-
if (i := remaining.find("]")) != -1:
|
|
83
|
-
list_output.append(cls.parse_list_element(remaining[:i]))
|
|
84
|
-
remaining = remaining[i + 1 :].lstrip()
|
|
85
|
-
else:
|
|
86
|
-
raise ValueError("Missing closing ']' in list expression")
|
|
87
|
-
return list_output
|
|
61
|
+
return ast.literal_eval(value.replace("Yes", "True").replace("No", "False"))
|
|
88
62
|
|
|
89
63
|
|
|
90
64
|
def get_beamline_parameters(beamline_param_path: str | None = None):
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
import asyncio
|
|
2
|
+
import math
|
|
3
|
+
|
|
4
|
+
from ophyd_async.core import StandardReadable, derived_signal_rw
|
|
2
5
|
from ophyd_async.epics.motor import Motor
|
|
3
6
|
|
|
4
7
|
|
|
5
8
|
class Goniometer(StandardReadable):
|
|
6
|
-
"""
|
|
9
|
+
"""The Aithre lab goniometer and the XYZ stage it sits on.
|
|
10
|
+
|
|
11
|
+
`x`, `y` and `z` control the axes of the positioner at the base, while `sampy` and
|
|
12
|
+
`sampz` control the positioner of the sample. `omega` is the rotation about the
|
|
13
|
+
x-axis (along the length of the sample holder).
|
|
14
|
+
|
|
15
|
+
The `vertical_position` signal refers to the height of the sample from the point of
|
|
16
|
+
view of the OAV and setting this value moves the sample vertically in the OAV plane
|
|
17
|
+
regardless of the current rotation.
|
|
18
|
+
"""
|
|
7
19
|
|
|
8
20
|
def __init__(self, prefix: str, name: str = "") -> None:
|
|
9
21
|
self.x = Motor(prefix + "X")
|
|
@@ -12,4 +24,26 @@ class Goniometer(StandardReadable):
|
|
|
12
24
|
self.sampy = Motor(prefix + "SAMPY")
|
|
13
25
|
self.sampz = Motor(prefix + "SAMPZ")
|
|
14
26
|
self.omega = Motor(prefix + "OMEGA")
|
|
27
|
+
self.vertical_position = derived_signal_rw(
|
|
28
|
+
self._get,
|
|
29
|
+
self._set,
|
|
30
|
+
sampy=self.sampy,
|
|
31
|
+
sampz=self.sampz,
|
|
32
|
+
omega=self.omega,
|
|
33
|
+
)
|
|
15
34
|
super().__init__(name)
|
|
35
|
+
|
|
36
|
+
def _get(self, sampz: float, sampy: float, omega: float) -> float:
|
|
37
|
+
z_component = sampz * math.cos(math.radians(omega))
|
|
38
|
+
y_component = sampy * math.sin(math.radians(omega))
|
|
39
|
+
return z_component + y_component
|
|
40
|
+
|
|
41
|
+
async def _set(self, value: float) -> None:
|
|
42
|
+
omega = await self.omega.user_readback.get_value()
|
|
43
|
+
z_component = value * math.cos(math.radians(omega))
|
|
44
|
+
y_component = value * math.sin(math.radians(omega))
|
|
45
|
+
await asyncio.gather(
|
|
46
|
+
self.sampy.set(y_component),
|
|
47
|
+
self.sampz.set(z_component),
|
|
48
|
+
self.omega.set(omega),
|
|
49
|
+
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from ophyd_async.core import StrictEnum
|
|
2
|
+
from ophyd_async.epics.core import epics_signal_rw
|
|
3
|
+
|
|
4
|
+
from dodal.devices.robot import BartRobot
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ForceBit(StrictEnum):
|
|
8
|
+
ON = "On"
|
|
9
|
+
NO = "No"
|
|
10
|
+
OFF = "Off"
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class LidHeatEnable(StrictEnum):
|
|
14
|
+
ENABLED = "Enabled"
|
|
15
|
+
DISABLED = "Disabled"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class LaserRobot(BartRobot):
|
|
19
|
+
def __init__(self, name: str, prefix: str) -> None:
|
|
20
|
+
self.dewar_lid_heater = epics_signal_rw(
|
|
21
|
+
LidHeatEnable, prefix + "DW_1_ENABLED", prefix + "DW_1_CTRL"
|
|
22
|
+
)
|
|
23
|
+
self.cryojet_retract = epics_signal_rw(ForceBit, prefix + "OP_24_FORCE_OPTION")
|
|
24
|
+
self.set_beamline_safe = epics_signal_rw(
|
|
25
|
+
ForceBit, prefix + "IP_16_FORCE_OPTION"
|
|
26
|
+
)
|
|
27
|
+
super().__init__(name=name, prefix=prefix)
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
from .abstract.base_detector import (
|
|
2
|
+
ElectronAnalyserDetector,
|
|
3
|
+
ElectronAnalyserRegionDetector,
|
|
4
|
+
TElectronAnalyserDetector,
|
|
5
|
+
TElectronAnalyserRegionDetector,
|
|
6
|
+
)
|
|
1
7
|
from .types import EnergyMode
|
|
2
8
|
from .util import to_binding_energy, to_kinetic_energy
|
|
3
9
|
|
|
@@ -5,4 +11,8 @@ __all__ = [
|
|
|
5
11
|
"to_binding_energy",
|
|
6
12
|
"to_kinetic_energy",
|
|
7
13
|
"EnergyMode",
|
|
14
|
+
"ElectronAnalyserDetector",
|
|
15
|
+
"TElectronAnalyserDetector",
|
|
16
|
+
"ElectronAnalyserRegionDetector",
|
|
17
|
+
"TElectronAnalyserRegionDetector",
|
|
8
18
|
]
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
from .base_detector import (
|
|
2
2
|
AbstractAnalyserDriverIO,
|
|
3
3
|
AbstractElectronAnalyserDetector,
|
|
4
|
-
AbstractElectronAnalyserRegionDetector,
|
|
5
|
-
TAbstractElectronAnalyserDetector,
|
|
6
|
-
TAbstractElectronAnalyserRegionDetector,
|
|
7
4
|
)
|
|
8
5
|
from .base_driver_io import AbstractAnalyserDriverIO, TAbstractAnalyserDriverIO
|
|
9
6
|
from .base_region import (
|
|
@@ -20,9 +17,6 @@ __all__ = [
|
|
|
20
17
|
"TAbstractBaseSequence",
|
|
21
18
|
"AbstractAnalyserDriverIO",
|
|
22
19
|
"AbstractElectronAnalyserDetector",
|
|
23
|
-
"AbstractElectronAnalyserRegionDetector",
|
|
24
|
-
"TAbstractElectronAnalyserDetector",
|
|
25
|
-
"TAbstractElectronAnalyserRegionDetector",
|
|
26
20
|
"AbstractAnalyserDriverIO",
|
|
27
21
|
"TAbstractAnalyserDriverIO",
|
|
28
22
|
]
|