dls-dodal 1.36.2__py3-none-any.whl → 1.36.3__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.36.2.dist-info → dls_dodal-1.36.3.dist-info}/METADATA +2 -2
- {dls_dodal-1.36.2.dist-info → dls_dodal-1.36.3.dist-info}/RECORD +22 -20
- dodal/_version.py +2 -2
- dodal/beamlines/i10.py +74 -7
- dodal/beamlines/i24.py +1 -1
- dodal/devices/apple2_undulator.py +9 -9
- dodal/devices/i10/i10_setting_data.py +3 -3
- dodal/devices/i10/mirrors.py +24 -0
- dodal/devices/i10/slits.py +37 -0
- dodal/devices/i24/dual_backlight.py +1 -0
- dodal/devices/i24/focus_mirrors.py +12 -12
- dodal/devices/linkam3.py +2 -2
- dodal/devices/p99/sample_stage.py +15 -15
- dodal/devices/slits.py +29 -7
- dodal/devices/tetramm.py +16 -16
- dodal/devices/util/test_utils.py +2 -2
- dodal/devices/xspress3/xspress3.py +3 -3
- dodal/devices/zebra.py +13 -13
- {dls_dodal-1.36.2.dist-info → dls_dodal-1.36.3.dist-info}/LICENSE +0 -0
- {dls_dodal-1.36.2.dist-info → dls_dodal-1.36.3.dist-info}/WHEEL +0 -0
- {dls_dodal-1.36.2.dist-info → dls_dodal-1.36.3.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.36.2.dist-info → dls_dodal-1.36.3.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.36.
|
|
3
|
+
Version: 1.36.3
|
|
4
4
|
Summary: Ophyd devices and other utils that could be used across DLS beamlines
|
|
5
5
|
Author-email: Dominic Oram <dominic.oram@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -216,7 +216,7 @@ Description-Content-Type: text/markdown
|
|
|
216
216
|
License-File: LICENSE
|
|
217
217
|
Requires-Dist: click
|
|
218
218
|
Requires-Dist: ophyd
|
|
219
|
-
Requires-Dist: ophyd-async>=0.
|
|
219
|
+
Requires-Dist: ophyd-async>=0.9.0a1
|
|
220
220
|
Requires-Dist: bluesky
|
|
221
221
|
Requires-Dist: pyepics
|
|
222
222
|
Requires-Dist: dataclasses-json
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
dodal/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
|
|
2
2
|
dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
|
|
3
|
-
dodal/_version.py,sha256=
|
|
3
|
+
dodal/_version.py,sha256=zCUFph3NXnWsNVGniqwz8NKCDOFFa-siapasQGlkWD4,413
|
|
4
4
|
dodal/cli.py,sha256=NieWNUgLUxyck1rHoFAPJjX1xXLzHNdQ-s4wvxYFfps,3757
|
|
5
5
|
dodal/log.py,sha256=0to7CRsbzbgVfAAfKRAMhsaUuKqF2-7CGdQc-z8Uhno,9499
|
|
6
6
|
dodal/utils.py,sha256=h2sNmTlsaznfxusV1Xj_mXtNjzsWjWAgmps6I0YNA3U,18097
|
|
@@ -12,12 +12,12 @@ dodal/beamlines/adsim.py,sha256=DUAFS1ueoZ6DK2cmZkiEm3NElnaro1mUvyodv14pSmU,1839
|
|
|
12
12
|
dodal/beamlines/b01_1.py,sha256=0gLjg0O9ttMjHzszSyJ_GT3fnoAB6u4aJ4MdAfjJbHA,1788
|
|
13
13
|
dodal/beamlines/i03.py,sha256=WOMkGTcrrKqoBNeRObumMA8Nlo404uIr2ccfn8gK-zs,18063
|
|
14
14
|
dodal/beamlines/i04.py,sha256=z8LUbhyfUDU08oSp85hg7hFE8FJkAyLsqPUQScs5SUA,14567
|
|
15
|
-
dodal/beamlines/i10.py,sha256=
|
|
15
|
+
dodal/beamlines/i10.py,sha256=4VrbkRFi1HdNrXN_ItMWOROrx1BRbid-ZbtwcgMWP9w,9129
|
|
16
16
|
dodal/beamlines/i13_1.py,sha256=csXHrdwUh4sXTmb4X6ZiiSS_XxRkNShsVoBMxYI6rG0,1833
|
|
17
17
|
dodal/beamlines/i20_1.py,sha256=MaPgONHqpoZuBtkiKEzYtViJnKBM2_ekeP4OdbmuXHE,1158
|
|
18
18
|
dodal/beamlines/i22.py,sha256=tzx8w86uvJHo5TuwPoIUErB7C5mGhqTzlv45qrppld0,7228
|
|
19
19
|
dodal/beamlines/i23.py,sha256=2j5qLoqE_hg9ETHqNkOVu7LLkVB8qalgXeORnVYKN_I,1075
|
|
20
|
-
dodal/beamlines/i24.py,sha256=
|
|
20
|
+
dodal/beamlines/i24.py,sha256=bV1OqQP0KdJDM5SLsru6TGYLSxwXSy2GExpG44Qfo0w,8539
|
|
21
21
|
dodal/beamlines/p38.py,sha256=JJbclLYoRdIxcpzpW4oTj77YJ001CdEAM0bKRk7seYI,8735
|
|
22
22
|
dodal/beamlines/p45.py,sha256=N4SDTIFok3uMqb37higZHMr3xRjxItsT4ib_KacKKAE,2935
|
|
23
23
|
dodal/beamlines/p99.py,sha256=I6c_3NbvEPOpy2z1uwLRqwCkd83Sf15-OXEykLkn0-c,910
|
|
@@ -39,7 +39,7 @@ dodal/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
39
39
|
dodal/devices/adsim.py,sha256=vCexraF4zLssHdjfPod-XuQGJE_sWoCttFdx__HDS8w,488
|
|
40
40
|
dodal/devices/aperture.py,sha256=yyw2ei3gM_lmZWDQ6VTbydB58RCDTen_nqBZyoTP2IM,583
|
|
41
41
|
dodal/devices/aperturescatterguard.py,sha256=PRNnGbxYKFWoa1m70Mz-6Ta4NtFG0ShUprBvv2viUeI,8993
|
|
42
|
-
dodal/devices/apple2_undulator.py,sha256=
|
|
42
|
+
dodal/devices/apple2_undulator.py,sha256=ls_qGM_nGsZdo4I_Zs_stFjUc1oZE6zB1puWrV8-2Wg,22470
|
|
43
43
|
dodal/devices/attenuator.py,sha256=SEDnnNeUpwBArJbPcwHyr5BwkHO1Jvgsrw1bpFz5u-o,2894
|
|
44
44
|
dodal/devices/backlight.py,sha256=nQIr3J-I-OXnOUoWmr3ruy3nhq_q2US1KXC4NrGG_2U,1634
|
|
45
45
|
dodal/devices/cryostream.py,sha256=K-ldpredpeDTzNt4qtQMg99nKJNjBYoXBbK0WJGexzw,656
|
|
@@ -53,7 +53,7 @@ dodal/devices/flux.py,sha256=RtPStHw7Mad0igVKntKWVZfuZn2clokVJqH14HLix6M,198
|
|
|
53
53
|
dodal/devices/focusing_mirror.py,sha256=vdUPkwyCAZBSR3LQ-EojDOoxVy1ZmOaD_nevETbj7BA,6592
|
|
54
54
|
dodal/devices/hutch_shutter.py,sha256=WXY9JwqAa5prbf72IP7_MTKndPDtAltCpPJlNbq-F_0,3313
|
|
55
55
|
dodal/devices/ipin.py,sha256=eq5jlKw7WGQi8VLrAWpaAIsZmfiVf-5Q0td_B22H6A4,473
|
|
56
|
-
dodal/devices/linkam3.py,sha256=
|
|
56
|
+
dodal/devices/linkam3.py,sha256=2sf-_heIsDg4qmqae-w9C2Py8pG8bPB3mT0TFPQIzd0,3869
|
|
57
57
|
dodal/devices/logging_ophyd_device.py,sha256=dUVE-XhWA56WUXez0mrc4sf322CXY3MVLreTycO5j_A,668
|
|
58
58
|
dodal/devices/motors.py,sha256=mduFm9vTZfu9rhwL93AMZpDzGd2TASdqalWzRaMoqec,1114
|
|
59
59
|
dodal/devices/p45.py,sha256=jzBW2fGRhIbGzSRs5Fgupxro6aqE611n1RTcrTTG-yY,1047
|
|
@@ -64,11 +64,11 @@ dodal/devices/robot.py,sha256=laLwekoO9RsZzfag_6UGf8NhcGZ5deP4JAutvHqo2KM,5336
|
|
|
64
64
|
dodal/devices/s4_slit_gaps.py,sha256=j3kgF9WfGFaU9xdUuiAh-QqI5u_vhiAftaDVINt91SM,243
|
|
65
65
|
dodal/devices/scatterguard.py,sha256=jx03in9QgaThWxD4t1S8_Llent2kWrn_hThJ9KkUWTk,330
|
|
66
66
|
dodal/devices/scintillator.py,sha256=PlD6cnJ39PTB_e7QrRspPliLYE4kL_K7ziJURzuxgdA,365
|
|
67
|
-
dodal/devices/slits.py,sha256=
|
|
67
|
+
dodal/devices/slits.py,sha256=b_7ku2sHlzhMHTvWrwiRwee6ufrbxNX9JB_Z0lvk15o,1105
|
|
68
68
|
dodal/devices/smargon.py,sha256=tOHb9fjI8ZCIrboiC4OzS2j1QJDOKkAlQ2SORbBmaGo,4708
|
|
69
69
|
dodal/devices/status.py,sha256=hVrJS1yooQo6PRumRACoIEh-SKBUKxvBlQl-MtLFUMQ,327
|
|
70
70
|
dodal/devices/synchrotron.py,sha256=wLfClZ1lYQWA_D--UsM3NnKLG8bY8mvVsRYER6ob-Ew,2026
|
|
71
|
-
dodal/devices/tetramm.py,sha256=
|
|
71
|
+
dodal/devices/tetramm.py,sha256=17uUbwcK7G7RTZ0Q37PgQ8HOot6iMJ_dPGFO8ZblEZM,8455
|
|
72
72
|
dodal/devices/thawer.py,sha256=4t4yF4VDIrT_tQ8RwjmXe_hDMwVjR8A-4rDkPx19b28,1672
|
|
73
73
|
dodal/devices/turbo_slit.py,sha256=B6SPXqviMnG-U4PnUF1BdTO0LBKmTuwAUKRbxMiNJXo,1125
|
|
74
74
|
dodal/devices/undulator.py,sha256=rQjDhrvgf4uXUEO17CiLopNDEagWOgkmpa02BarozDE,5295
|
|
@@ -76,7 +76,7 @@ dodal/devices/undulator_dcm.py,sha256=4Y1ZgKatBenQgg4DuZnMtKwLDOH2YvUMo1QkFE0aaX
|
|
|
76
76
|
dodal/devices/watsonmarlow323_pump.py,sha256=rwU94YE6esgGLYdh-pe8nBo_3tvgp6brrrbPDrqp5_M,1406
|
|
77
77
|
dodal/devices/webcam.py,sha256=mef075ynDbzZ4pNAjfxR_9tdTTqF_rM7hAOVEEOV-Do,2408
|
|
78
78
|
dodal/devices/xbpm_feedback.py,sha256=j8MHhhE0feoe6R54zPKqS5EbQ0bEDR-nOpLHzHhnHHQ,1156
|
|
79
|
-
dodal/devices/zebra.py,sha256=
|
|
79
|
+
dodal/devices/zebra.py,sha256=cOcohj57eDKWgd-747EsL1ypPQWrOVc68EB_9D4L8CI,9474
|
|
80
80
|
dodal/devices/zebra_controlled_shutter.py,sha256=5-SH5HoXp_6P-xAtfDFJKQq6mBDwreubuCULSz78fgw,1852
|
|
81
81
|
dodal/devices/areadetector/plugins/CAM.py,sha256=sZzJm5Ez3eWfXZi_EB67wluhZmMQm1UyOc2bJFfzd1U,964
|
|
82
82
|
dodal/devices/areadetector/plugins/MJPG.py,sha256=QTsxCoWbofNpLMGPoOR2hWoM33KyntuLepbF0YmX0KE,3031
|
|
@@ -89,7 +89,9 @@ dodal/devices/detector/detector_motion.py,sha256=UGDQriDWRluDZOZh1mDX9w_fPjMD-_B
|
|
|
89
89
|
dodal/devices/i03/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
90
90
|
dodal/devices/i04/transfocator.py,sha256=uieByXIj0JRbmvMB_om5NOAEbEJkzfkCD24bl2aEo1g,3154
|
|
91
91
|
dodal/devices/i10/i10_apple2.py,sha256=pEZes8wVCPHiOOcuVhEtqPvtnyphMxqbdp39mDp6xXQ,13165
|
|
92
|
-
dodal/devices/i10/i10_setting_data.py,sha256=
|
|
92
|
+
dodal/devices/i10/i10_setting_data.py,sha256=69XWgE-YNTiW7C3t67MNcTL5JDDhOo7h-X7DCTpFE5g,164
|
|
93
|
+
dodal/devices/i10/mirrors.py,sha256=E0M5keGI3LGaDHyXQkCCyj6xmixNY1xTSkIaaYwtnP8,794
|
|
94
|
+
dodal/devices/i10/slits.py,sha256=4X50bGiJhTIHxhsOrv-8DATBkQPwQgEaFMNa2OsPrFY,1201
|
|
93
95
|
dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
96
|
dodal/devices/i22/dcm.py,sha256=SQDh-Sj1OvplHZ9yTWblJwv8PJrUqxseDPupZOWmcLo,4701
|
|
95
97
|
dodal/devices/i22/fswitch.py,sha256=LSMoo9aDkH0SLcojbUh2NxTWIpUXHZxauTqThc3XtSk,3073
|
|
@@ -99,8 +101,8 @@ dodal/devices/i24/aperture.py,sha256=XlnOyQsvdTom1dJHVUg8CUSthq3jlBlZFOUaa9b1eZ4
|
|
|
99
101
|
dodal/devices/i24/beam_center.py,sha256=c5NRCBjhg9hMjznNMDipIq0M8-T8yM78IzhcRdpNtGw,470
|
|
100
102
|
dodal/devices/i24/beamstop.py,sha256=89ncXUisia1rn1Faf5iWg3k0QW6Rm99j1vq9A8l9Xv8,1221
|
|
101
103
|
dodal/devices/i24/dcm.py,sha256=Q3qqlgsiLJga2cgI8L4jczjyUgQixJh6QWg7shrFpTQ,1988
|
|
102
|
-
dodal/devices/i24/dual_backlight.py,sha256=
|
|
103
|
-
dodal/devices/i24/focus_mirrors.py,sha256=
|
|
104
|
+
dodal/devices/i24/dual_backlight.py,sha256=CbQ9mYUNhhozVdNXqR5ac73tEIAWT2RnEpRwXB3EFog,2049
|
|
105
|
+
dodal/devices/i24/focus_mirrors.py,sha256=HO3B4yjV-HMvjkgFd2xTvXft75Qj4lN8d0RNg6HJ4Lo,1857
|
|
104
106
|
dodal/devices/i24/i24_detector_motion.py,sha256=_HgdsZqFYY0tKqUgMzViHaPEUFXL3WlXXioGvDehRUw,364
|
|
105
107
|
dodal/devices/i24/pilatus_metadata.py,sha256=fV8AQSBYGx1Qc91Rqj8VhcFPqPLqLCePNpDdmhcrTYM,1827
|
|
106
108
|
dodal/devices/i24/pmac.py,sha256=lz9FYU_8YN8cC51ddTzdxcUA7MCVTA_ho3P0CHJ9zCo,6837
|
|
@@ -119,7 +121,7 @@ dodal/devices/oav/snapshots/grid_overlay.py,sha256=CdvCdTKMCiwMwxm2lV28KpcIUSXls
|
|
|
119
121
|
dodal/devices/oav/snapshots/snapshot_with_beam_centre.py,sha256=J77RfE3AGTLNdWc6hvsRn2DUdupzuk_FTDGvdP0jqbU,1962
|
|
120
122
|
dodal/devices/oav/snapshots/snapshot_with_grid.py,sha256=EBoCtr1NmOKye2yQHqbTBxSg-DsEKFeyBtMFmOeGPRs,2269
|
|
121
123
|
dodal/devices/p99/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
122
|
-
dodal/devices/p99/sample_stage.py,sha256=
|
|
124
|
+
dodal/devices/p99/sample_stage.py,sha256=v2-KSvuxCmpreVUh0p2OLGj6d1MR_li56cvMBWbvF9g,1189
|
|
123
125
|
dodal/devices/training_rig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
124
126
|
dodal/devices/training_rig/sample_stage.py,sha256=jktTp837ij8wor5LidE3AajCk95L7DebJotMlO7QwTE,355
|
|
125
127
|
dodal/devices/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -128,8 +130,8 @@ dodal/devices/util/epics_util.py,sha256=A8iNL79PnxntuxPTKA9oLGaDRKhnXaaeAVJwS6FN
|
|
|
128
130
|
dodal/devices/util/lookup_tables.py,sha256=Bk-wZk7JO5_j_8gbot-8reirVqxvFUg9_SIqEIOVZu0,2025
|
|
129
131
|
dodal/devices/util/motor_utils.py,sha256=pNY-aUk9LxaIWeDr5rpMS6udiB9j19wcCXkNDLp1uA0,257
|
|
130
132
|
dodal/devices/util/save_panda.py,sha256=PHFlkerBhkkU0-o5dNEdi2P95_jD9Lk8yYgaqn9R97o,2538
|
|
131
|
-
dodal/devices/util/test_utils.py,sha256=
|
|
132
|
-
dodal/devices/xspress3/xspress3.py,sha256=
|
|
133
|
+
dodal/devices/util/test_utils.py,sha256=x0QVKVeST4T-wpsVSSm-169MyNRXlmybVWnPTefv1as,565
|
|
134
|
+
dodal/devices/xspress3/xspress3.py,sha256=75RdPuHpES4Xi-Lcywz0XUhaN2G3vZSoc-dzgcxfNvs,4636
|
|
133
135
|
dodal/devices/xspress3/xspress3_channel.py,sha256=w8tAx2lz5kJ_LeJ_eb_4o--Dtt8MRijsYNgDG6oEIVg,1626
|
|
134
136
|
dodal/devices/zocalo/__init__.py,sha256=dRAZ9o7B9TACqyE7aanT3yzvqWtt019YgV5ZJY7Ylso,517
|
|
135
137
|
dodal/devices/zocalo/zocalo_constants.py,sha256=vu7Xjz7UNEpBUWEEBxDvP4bVFkZIN6NLGfQDpWbCjH8,98
|
|
@@ -144,9 +146,9 @@ dodal/plan_stubs/wrapped.py,sha256=nriHKX4BF010CmrhdoUhY3-txClW5W8TPLz64kE_AXU,4
|
|
|
144
146
|
dodal/plans/__init__.py,sha256=nH1jNxw3DzDMg9O8Uda0kqKIalRVEWBrq07OLY6Ey38,93
|
|
145
147
|
dodal/plans/scanspec.py,sha256=Q0AcvTKRT401iGMRDSqK-D523UX5_ofiVMZ_rNXKOx8,2074
|
|
146
148
|
dodal/plans/wrapped.py,sha256=Cr2iOpQCuk2ORKo5CZOh-zbQXAjoTfaLrfm7r1--GhU,2098
|
|
147
|
-
dls_dodal-1.36.
|
|
148
|
-
dls_dodal-1.36.
|
|
149
|
-
dls_dodal-1.36.
|
|
150
|
-
dls_dodal-1.36.
|
|
151
|
-
dls_dodal-1.36.
|
|
152
|
-
dls_dodal-1.36.
|
|
149
|
+
dls_dodal-1.36.3.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
150
|
+
dls_dodal-1.36.3.dist-info/METADATA,sha256=kxGKgtp3OTCkpiOdg7edQ8FCV9G8Hw4klZobJMmibSA,16655
|
|
151
|
+
dls_dodal-1.36.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
|
152
|
+
dls_dodal-1.36.3.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
|
|
153
|
+
dls_dodal-1.36.3.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
|
|
154
|
+
dls_dodal-1.36.3.dist-info/RECORD,,
|
dodal/_version.py
CHANGED
dodal/beamlines/i10.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from pathlib import Path
|
|
2
2
|
|
|
3
|
-
from dodal.common.beamlines.beamline_utils import device_instantiation
|
|
3
|
+
from dodal.common.beamlines.beamline_utils import device_factory, device_instantiation
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
5
|
from dodal.devices.apple2_undulator import (
|
|
6
6
|
UndulatorGap,
|
|
@@ -14,13 +14,18 @@ from dodal.devices.i10.i10_apple2 import (
|
|
|
14
14
|
LinearArbitraryAngle,
|
|
15
15
|
)
|
|
16
16
|
from dodal.devices.i10.i10_setting_data import I10Grating
|
|
17
|
+
from dodal.devices.i10.mirrors import PiezoMirror
|
|
18
|
+
from dodal.devices.i10.slits import I10PrimarySlits, I10Slits
|
|
17
19
|
from dodal.devices.pgm import PGM
|
|
20
|
+
from dodal.devices.slits import MinimalSlits
|
|
18
21
|
from dodal.log import set_beamline as set_log_beamline
|
|
19
22
|
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
20
23
|
|
|
21
24
|
BL = get_beamline_name("i10")
|
|
22
25
|
set_log_beamline(BL)
|
|
23
26
|
set_utils_beamline(BL)
|
|
27
|
+
PREFIX = BeamlinePrefix(BL)
|
|
28
|
+
|
|
24
29
|
|
|
25
30
|
LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/"
|
|
26
31
|
"""
|
|
@@ -39,7 +44,7 @@ def idd_gap(
|
|
|
39
44
|
return device_instantiation(
|
|
40
45
|
device_factory=UndulatorGap,
|
|
41
46
|
name="idd_gap",
|
|
42
|
-
prefix=f"{
|
|
47
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
43
48
|
wait=wait_for_connection,
|
|
44
49
|
fake=fake_with_ophyd_sim,
|
|
45
50
|
bl_prefix=False,
|
|
@@ -52,7 +57,7 @@ def idd_phase_axes(
|
|
|
52
57
|
return device_instantiation(
|
|
53
58
|
device_factory=UndulatorPhaseAxes,
|
|
54
59
|
name="idd_phase_axes",
|
|
55
|
-
prefix=f"{
|
|
60
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
56
61
|
top_outer="RPQ1",
|
|
57
62
|
top_inner="RPQ2",
|
|
58
63
|
btm_inner="RPQ3",
|
|
@@ -69,7 +74,7 @@ def idd_jaw(
|
|
|
69
74
|
return device_instantiation(
|
|
70
75
|
device_factory=UndulatorJawPhase,
|
|
71
76
|
name="idd_jaw",
|
|
72
|
-
prefix=f"{
|
|
77
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
|
|
73
78
|
move_pv="RPQ1",
|
|
74
79
|
wait=wait_for_connection,
|
|
75
80
|
fake=fake_with_ophyd_sim,
|
|
@@ -83,7 +88,7 @@ def idu_gap(
|
|
|
83
88
|
return device_instantiation(
|
|
84
89
|
device_factory=UndulatorGap,
|
|
85
90
|
name="idu_gap",
|
|
86
|
-
prefix=f"{
|
|
91
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
87
92
|
wait=wait_for_connection,
|
|
88
93
|
fake=fake_with_ophyd_sim,
|
|
89
94
|
bl_prefix=False,
|
|
@@ -96,7 +101,7 @@ def idu_phase_axes(
|
|
|
96
101
|
return device_instantiation(
|
|
97
102
|
device_factory=UndulatorPhaseAxes,
|
|
98
103
|
name="idu_phase_axes",
|
|
99
|
-
prefix=f"{
|
|
104
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
100
105
|
top_outer="RPQ1",
|
|
101
106
|
top_inner="RPQ2",
|
|
102
107
|
btm_inner="RPQ3",
|
|
@@ -113,7 +118,7 @@ def idu_jaw(
|
|
|
113
118
|
return device_instantiation(
|
|
114
119
|
device_factory=UndulatorJawPhase,
|
|
115
120
|
name="idu_jaw",
|
|
116
|
-
prefix=f"{
|
|
121
|
+
prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
|
|
117
122
|
move_pv="RPQ1",
|
|
118
123
|
wait=wait_for_connection,
|
|
119
124
|
fake=fake_with_ophyd_sim,
|
|
@@ -255,3 +260,65 @@ def idd_la_angle(
|
|
|
255
260
|
wait=wait_for_connection,
|
|
256
261
|
fake=fake_with_ophyd_sim,
|
|
257
262
|
)
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
@device_factory()
|
|
266
|
+
def first_mirror() -> PiezoMirror:
|
|
267
|
+
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
@device_factory()
|
|
271
|
+
def switching_mirror() -> PiezoMirror:
|
|
272
|
+
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:")
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
@device_factory()
|
|
276
|
+
def slit_1() -> I10PrimarySlits:
|
|
277
|
+
return I10PrimarySlits(
|
|
278
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-01:",
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
@device_factory()
|
|
283
|
+
def slit_2() -> I10Slits:
|
|
284
|
+
return I10Slits(
|
|
285
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-02:",
|
|
286
|
+
)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
@device_factory()
|
|
290
|
+
def slit_3() -> I10Slits:
|
|
291
|
+
return I10Slits(
|
|
292
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:",
|
|
293
|
+
)
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
"""Rasor devices"""
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
@device_factory()
|
|
300
|
+
def focusing_mirror() -> PiezoMirror:
|
|
301
|
+
return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
@device_factory()
|
|
305
|
+
def slit_4() -> MinimalSlits:
|
|
306
|
+
return MinimalSlits(
|
|
307
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-04:",
|
|
308
|
+
x_gap="XSIZE",
|
|
309
|
+
y_gap="YSIZE",
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
@device_factory()
|
|
314
|
+
def slit_5() -> I10Slits:
|
|
315
|
+
return I10Slits(
|
|
316
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-05:",
|
|
317
|
+
)
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
@device_factory()
|
|
321
|
+
def slit_6() -> I10Slits:
|
|
322
|
+
return I10Slits(
|
|
323
|
+
prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:",
|
|
324
|
+
)
|
dodal/beamlines/i24.py
CHANGED
|
@@ -21,7 +21,7 @@ from dodal.log import set_beamline as set_log_beamline
|
|
|
21
21
|
from dodal.utils import get_beamline_name, skip_device
|
|
22
22
|
|
|
23
23
|
ZOOM_PARAMS_FILE = (
|
|
24
|
-
"/dls_sw/i24/software/gda_versions/
|
|
24
|
+
"/dls_sw/i24/software/gda_versions/gda/config/xml/jCameraManZoomLevels.xml"
|
|
25
25
|
)
|
|
26
26
|
DISPLAY_CONFIG = "/dls_sw/i24/software/gda_versions/var/display.configuration"
|
|
27
27
|
|
|
@@ -21,8 +21,8 @@ from dodal.log import LOGGER
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
class UndulatorGateStatus(StrictEnum):
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
OPEN = "Open"
|
|
25
|
+
CLOSE = "Closed"
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
@dataclass
|
|
@@ -146,7 +146,7 @@ class UndulatorGap(StandardReadable, Movable):
|
|
|
146
146
|
timeout = await self._cal_timeout()
|
|
147
147
|
LOGGER.info(f"Moving {self.name} to {value} with timeout = {timeout}")
|
|
148
148
|
await self.set_move.set(value=1, timeout=timeout)
|
|
149
|
-
await wait_for_value(self.gate, UndulatorGateStatus.
|
|
149
|
+
await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
|
|
150
150
|
|
|
151
151
|
async def _cal_timeout(self) -> float:
|
|
152
152
|
vel = await self.velocity.get_value()
|
|
@@ -157,7 +157,7 @@ class UndulatorGap(StandardReadable, Movable):
|
|
|
157
157
|
async def check_id_status(self) -> None:
|
|
158
158
|
if await self.fault.get_value() != 0:
|
|
159
159
|
raise RuntimeError(f"{self.name} is in fault state")
|
|
160
|
-
if await self.gate.get_value() == UndulatorGateStatus.
|
|
160
|
+
if await self.gate.get_value() == UndulatorGateStatus.OPEN:
|
|
161
161
|
raise RuntimeError(f"{self.name} is already in motion.")
|
|
162
162
|
|
|
163
163
|
async def get_timeout(self) -> float:
|
|
@@ -251,7 +251,7 @@ class UndulatorPhaseAxes(StandardReadable, Movable):
|
|
|
251
251
|
)
|
|
252
252
|
timeout = await self._cal_timeout()
|
|
253
253
|
await self.set_move.set(value=1, timeout=timeout)
|
|
254
|
-
await wait_for_value(self.gate, UndulatorGateStatus.
|
|
254
|
+
await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
|
|
255
255
|
|
|
256
256
|
async def _cal_timeout(self) -> float:
|
|
257
257
|
"""
|
|
@@ -283,7 +283,7 @@ class UndulatorPhaseAxes(StandardReadable, Movable):
|
|
|
283
283
|
async def check_id_status(self) -> None:
|
|
284
284
|
if await self.fault.get_value() != 0:
|
|
285
285
|
raise RuntimeError(f"{self.name} is in fault state")
|
|
286
|
-
if await self.gate.get_value() == UndulatorGateStatus.
|
|
286
|
+
if await self.gate.get_value() == UndulatorGateStatus.OPEN:
|
|
287
287
|
raise RuntimeError(f"{self.name} is already in motion.")
|
|
288
288
|
|
|
289
289
|
async def get_timeout(self) -> float:
|
|
@@ -325,7 +325,7 @@ class UndulatorJawPhase(StandardReadable, Movable):
|
|
|
325
325
|
)
|
|
326
326
|
timeout = await self._cal_timeout()
|
|
327
327
|
await self.set_move.set(value=1, timeout=timeout)
|
|
328
|
-
await wait_for_value(self.gate, UndulatorGateStatus.
|
|
328
|
+
await wait_for_value(self.gate, UndulatorGateStatus.CLOSE, timeout=timeout)
|
|
329
329
|
|
|
330
330
|
async def _cal_timeout(self) -> float:
|
|
331
331
|
"""
|
|
@@ -345,7 +345,7 @@ class UndulatorJawPhase(StandardReadable, Movable):
|
|
|
345
345
|
async def check_id_status(self) -> None:
|
|
346
346
|
if await self.fault.get_value() != 0:
|
|
347
347
|
raise RuntimeError(f"{self.name} is in fault state")
|
|
348
|
-
if await self.gate.get_value() == UndulatorGateStatus.
|
|
348
|
+
if await self.gate.get_value() == UndulatorGateStatus.OPEN:
|
|
349
349
|
raise RuntimeError(f"{self.name} is already in motion.")
|
|
350
350
|
|
|
351
351
|
async def get_timeout(self) -> float:
|
|
@@ -458,7 +458,7 @@ class Apple2(StandardReadable, Movable):
|
|
|
458
458
|
self.phase().set_move.set(value=1, timeout=timeout),
|
|
459
459
|
)
|
|
460
460
|
await wait_for_value(
|
|
461
|
-
self.gap().gate, UndulatorGateStatus.
|
|
461
|
+
self.gap().gate, UndulatorGateStatus.CLOSE, timeout=timeout
|
|
462
462
|
)
|
|
463
463
|
self._energy_set(energy) # Update energy for after move for readback.
|
|
464
464
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
from ophyd_async.core import StandardReadable
|
|
2
|
+
from ophyd_async.epics.core import epics_signal_rw
|
|
3
|
+
from ophyd_async.epics.motor import Motor
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class PiezoMirror(StandardReadable):
|
|
7
|
+
def __init__(
|
|
8
|
+
self,
|
|
9
|
+
prefix: str,
|
|
10
|
+
name: str = "",
|
|
11
|
+
):
|
|
12
|
+
with self.add_children_as_readables():
|
|
13
|
+
self.x = Motor(prefix + "X")
|
|
14
|
+
self.y = Motor(prefix + "Y")
|
|
15
|
+
self.z = Motor(prefix + "Z")
|
|
16
|
+
self.yaw = Motor(prefix + "YAW")
|
|
17
|
+
self.pitch = Motor(prefix + "PITCH")
|
|
18
|
+
self.roll = Motor(prefix + "ROLL")
|
|
19
|
+
self.fine_pitch = epics_signal_rw(
|
|
20
|
+
float,
|
|
21
|
+
read_pv=prefix + "FPITCH:RBV:AI",
|
|
22
|
+
write_pv=prefix + "FPITCH:DMD:AO",
|
|
23
|
+
)
|
|
24
|
+
super().__init__(name=name)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from ophyd_async.epics.motor import Motor
|
|
2
|
+
|
|
3
|
+
from dodal.devices.slits import Slits
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class I10Slits(Slits):
|
|
7
|
+
def __init__(self, prefix: str, name: str = "") -> None:
|
|
8
|
+
with self.add_children_as_readables():
|
|
9
|
+
self.x_ring_blade = Motor(prefix + "XRING")
|
|
10
|
+
self.x_hall_blade = Motor(prefix + "XHALL")
|
|
11
|
+
self.y_top_blade = Motor(prefix + "YPLUS")
|
|
12
|
+
self.y_bot_blade = Motor(prefix + "YMINUS")
|
|
13
|
+
super().__init__(
|
|
14
|
+
prefix=prefix,
|
|
15
|
+
x_gap="XSIZE",
|
|
16
|
+
x_centre="XCENTRE",
|
|
17
|
+
y_gap="YSIZE",
|
|
18
|
+
y_centre="YCENTRE",
|
|
19
|
+
name=name,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class I10PrimarySlits(Slits):
|
|
24
|
+
def __init__(self, prefix: str, name: str = "") -> None:
|
|
25
|
+
with self.add_children_as_readables():
|
|
26
|
+
self.x_aptr_1 = Motor(prefix + "APTR1:X")
|
|
27
|
+
self.x_aptr_2 = Motor(prefix + "APTR2:X")
|
|
28
|
+
self.y_aptr_1 = Motor(prefix + "APTR1:Y")
|
|
29
|
+
self.y_aptr_1 = Motor(prefix + "APTR2:Y")
|
|
30
|
+
super().__init__(
|
|
31
|
+
prefix=prefix,
|
|
32
|
+
x_gap="XSIZE",
|
|
33
|
+
x_centre="XCENTRE",
|
|
34
|
+
y_gap="YSIZE",
|
|
35
|
+
y_centre="YCENTRE",
|
|
36
|
+
name=name,
|
|
37
|
+
)
|
|
@@ -5,21 +5,21 @@ from dodal.common.signal_utils import create_hardware_backed_soft_signal
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
class HFocusMode(StrictEnum):
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
FOCUS_10 = "HMFMfocus10"
|
|
9
|
+
FOCUS_20D = "HMFMfocus20d"
|
|
10
|
+
FOCUS_30D = "HMFMfocus30d"
|
|
11
|
+
FOCUS_50D = "HMFMfocus50d"
|
|
12
|
+
FOCUS_1050D = "HMFMfocus1030d"
|
|
13
|
+
FOCUS_3010D = "HMFMfocus3010d"
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class VFocusMode(StrictEnum):
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
FOCUS_10 = "VMFMfocus10"
|
|
18
|
+
FOCUS_20D = "VMFMfocus20d"
|
|
19
|
+
FOCUS_30D = "VMFMfocus30d"
|
|
20
|
+
FOCUS_50D = "VMFMfocus50d"
|
|
21
|
+
FOCUS_1030D = "VMFMfocus1030d"
|
|
22
|
+
FOCUS_3010D = "VMFMfocus3010d"
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
BEAM_SIZES = {
|
dodal/devices/linkam3.py
CHANGED
|
@@ -12,22 +12,22 @@ class SampleAngleStage(StandardReadable):
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class p99StageSelections(SubsetEnum):
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
15
|
+
EMPTY = "Empty"
|
|
16
|
+
MN5UM = "Mn 5um"
|
|
17
|
+
FE = "Fe (empty)"
|
|
18
|
+
CO5UM = "Co 5um"
|
|
19
|
+
NI5UM = "Ni 5um"
|
|
20
|
+
CU5UM = "Cu 5um"
|
|
21
|
+
ZN5UM = "Zn 5um"
|
|
22
|
+
ZR = "Zr (empty)"
|
|
23
|
+
MO = "Mo (empty)"
|
|
24
|
+
RH = "Rh (empty)"
|
|
25
|
+
PD = "Pd (empty)"
|
|
26
|
+
AG = "Ag (empty)"
|
|
27
|
+
CD25UM = "Cd 25um"
|
|
28
28
|
W = "W (empty)"
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
PT = "Pt (empty)"
|
|
30
|
+
USER = "User"
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
class FilterMotor(StandardReadable):
|
dodal/devices/slits.py
CHANGED
|
@@ -2,16 +2,38 @@ from ophyd_async.core import StandardReadable
|
|
|
2
2
|
from ophyd_async.epics.motor import Motor
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
class
|
|
5
|
+
class MinimalSlits(StandardReadable):
|
|
6
|
+
"""Gap only X Y slits."""
|
|
7
|
+
|
|
8
|
+
def __init__(
|
|
9
|
+
self,
|
|
10
|
+
prefix: str,
|
|
11
|
+
x_gap: str = "X:SIZE",
|
|
12
|
+
y_gap: str = "Y:SIZE",
|
|
13
|
+
name: str = "",
|
|
14
|
+
) -> None:
|
|
15
|
+
with self.add_children_as_readables():
|
|
16
|
+
self.x_gap = Motor(prefix + x_gap)
|
|
17
|
+
self.y_gap = Motor(prefix + y_gap)
|
|
18
|
+
super().__init__(name=name)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Slits(MinimalSlits):
|
|
6
22
|
"""
|
|
7
23
|
Representation of a 4-blade set of slits. Allows control/readout of the gap
|
|
8
24
|
between each pair of blades.
|
|
9
25
|
"""
|
|
10
26
|
|
|
11
|
-
def __init__(
|
|
27
|
+
def __init__(
|
|
28
|
+
self,
|
|
29
|
+
prefix: str,
|
|
30
|
+
x_gap: str = "X:SIZE",
|
|
31
|
+
y_gap: str = "Y:SIZE",
|
|
32
|
+
x_centre: str = "X:CENTRE",
|
|
33
|
+
y_centre: str = "Y:CENTRE",
|
|
34
|
+
name: str = "",
|
|
35
|
+
) -> None:
|
|
12
36
|
with self.add_children_as_readables():
|
|
13
|
-
self.
|
|
14
|
-
self.
|
|
15
|
-
|
|
16
|
-
self.y_centre = Motor(prefix + "Y:CENTRE")
|
|
17
|
-
super().__init__(name)
|
|
37
|
+
self.x_centre = Motor(prefix + x_centre)
|
|
38
|
+
self.y_centre = Motor(prefix + y_centre)
|
|
39
|
+
super().__init__(prefix=prefix, x_gap=x_gap, y_gap=y_gap, name=name)
|
dodal/devices/tetramm.py
CHANGED
|
@@ -22,31 +22,31 @@ from ophyd_async.epics.core import (
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
class TetrammRange(StrictEnum):
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
UA = "+- 120 uA"
|
|
26
|
+
NA = "+- 120 nA"
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
class TetrammTrigger(StrictEnum):
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
FREE_RUN = "Free run"
|
|
31
|
+
EXT_TRIGGER = "Ext. trig."
|
|
32
|
+
EXT_BULB = "Ext. bulb"
|
|
33
|
+
EXT_GATE = "Ext. gate"
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
class TetrammChannels(StrictEnum):
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
ONE = "1"
|
|
38
|
+
TWO = "2"
|
|
39
|
+
FOUR = "4"
|
|
40
40
|
|
|
41
41
|
|
|
42
42
|
class TetrammResolution(StrictEnum):
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
SIXTEEN_BITS = "16 bits"
|
|
44
|
+
TWENTY_FOUR_BITS = "24 bits"
|
|
45
45
|
|
|
46
46
|
|
|
47
47
|
class TetrammGeometry(StrictEnum):
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
DIAMOND = "Diamond"
|
|
49
|
+
SQUARE = "Square"
|
|
50
50
|
|
|
51
51
|
|
|
52
52
|
class TetrammDriver(Device):
|
|
@@ -118,7 +118,7 @@ class TetrammController(DetectorController):
|
|
|
118
118
|
assert trigger_info.livetime is not None
|
|
119
119
|
|
|
120
120
|
# trigger mode must be set first and on its own!
|
|
121
|
-
await self._drv.trigger_mode.set(TetrammTrigger.
|
|
121
|
+
await self._drv.trigger_mode.set(TetrammTrigger.EXT_TRIGGER)
|
|
122
122
|
|
|
123
123
|
await asyncio.gather(
|
|
124
124
|
self._drv.averaging_time.set(trigger_info.livetime),
|
|
@@ -134,8 +134,8 @@ class TetrammController(DetectorController):
|
|
|
134
134
|
|
|
135
135
|
def _validate_trigger(self, trigger: DetectorTrigger) -> None:
|
|
136
136
|
supported_trigger_types = {
|
|
137
|
-
DetectorTrigger.
|
|
138
|
-
DetectorTrigger.
|
|
137
|
+
DetectorTrigger.EDGE_TRIGGER,
|
|
138
|
+
DetectorTrigger.CONSTANT_GATE,
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
if trigger not in supported_trigger_types:
|
dodal/devices/util/test_utils.py
CHANGED
|
@@ -26,12 +26,12 @@ class TriggerMode(StrictEnum):
|
|
|
26
26
|
SOFTWARE = "Software"
|
|
27
27
|
HARDWARE = "Hardware"
|
|
28
28
|
BURST = "Burst"
|
|
29
|
-
|
|
29
|
+
TTL_VETO_ONLY = "TTL Veto Only"
|
|
30
30
|
IDC = "IDC"
|
|
31
31
|
SOTWARE_START_STOP = "Software Start/Stop"
|
|
32
32
|
TTL_BOTH = "TTL Both"
|
|
33
33
|
LVDS_VETO_ONLY = "LVDS Veto Only"
|
|
34
|
-
|
|
34
|
+
LVDS_BOTH = "LVDS Both"
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
class UpdateRBV(StrictEnum):
|
|
@@ -49,7 +49,7 @@ class DetectorState(StrictEnum):
|
|
|
49
49
|
ACQUIRE = "Acquire"
|
|
50
50
|
READOUT = "Readout"
|
|
51
51
|
CORRECT = "Correct"
|
|
52
|
-
|
|
52
|
+
SAVING = "Saving"
|
|
53
53
|
ABORTING = "Aborting"
|
|
54
54
|
ERROR = "Error"
|
|
55
55
|
WAITING = "Waiting"
|
dodal/devices/zebra.py
CHANGED
|
@@ -59,25 +59,25 @@ class TrigSource(StrictEnum):
|
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
class EncEnum(StrictEnum):
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
ENC1 = "Enc1"
|
|
63
|
+
ENC2 = "Enc2"
|
|
64
|
+
ENC3 = "Enc3"
|
|
65
|
+
ENC4 = "Enc4"
|
|
66
|
+
ENC1_4AV = "Enc1-4Av"
|
|
67
67
|
|
|
68
68
|
|
|
69
69
|
class I03Axes:
|
|
70
|
-
SMARGON_X1 = EncEnum.
|
|
71
|
-
SMARGON_Y = EncEnum.
|
|
72
|
-
SMARGON_Z = EncEnum.
|
|
73
|
-
OMEGA = EncEnum.
|
|
70
|
+
SMARGON_X1 = EncEnum.ENC1
|
|
71
|
+
SMARGON_Y = EncEnum.ENC2
|
|
72
|
+
SMARGON_Z = EncEnum.ENC3
|
|
73
|
+
OMEGA = EncEnum.ENC4
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
class I24Axes:
|
|
77
|
-
VGON_Z = EncEnum.
|
|
78
|
-
OMEGA = EncEnum.
|
|
79
|
-
VGON_X = EncEnum.
|
|
80
|
-
VGON_YH = EncEnum.
|
|
77
|
+
VGON_Z = EncEnum.ENC1
|
|
78
|
+
OMEGA = EncEnum.ENC2
|
|
79
|
+
VGON_X = EncEnum.ENC3
|
|
80
|
+
VGON_YH = EncEnum.ENC4
|
|
81
81
|
|
|
82
82
|
|
|
83
83
|
class RotationDirection(StrictEnum):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|