dls-dodal 1.67.0__py3-none-any.whl → 1.68.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.67.0.dist-info → dls_dodal-1.68.0.dist-info}/METADATA +2 -2
- {dls_dodal-1.67.0.dist-info → dls_dodal-1.68.0.dist-info}/RECORD +50 -50
- dodal/_version.py +2 -2
- dodal/beamlines/b07.py +1 -1
- dodal/beamlines/b07_1.py +1 -1
- dodal/beamlines/i05.py +1 -1
- dodal/beamlines/i06.py +1 -1
- dodal/beamlines/i09.py +1 -1
- dodal/beamlines/i09_1.py +1 -1
- dodal/beamlines/i09_2.py +5 -4
- dodal/beamlines/i10_optics.py +1 -1
- dodal/beamlines/i16.py +23 -0
- dodal/beamlines/i17.py +1 -1
- dodal/beamlines/i21.py +61 -2
- dodal/beamlines/p60.py +1 -1
- dodal/devices/eiger.py +15 -9
- dodal/devices/electron_analyser/__init__.py +0 -33
- dodal/devices/electron_analyser/base/__init__.py +58 -0
- dodal/devices/electron_analyser/base/base_controller.py +73 -0
- dodal/devices/electron_analyser/base/base_detector.py +214 -0
- dodal/devices/electron_analyser/{abstract → base}/base_driver_io.py +23 -42
- dodal/devices/electron_analyser/{abstract → base}/base_region.py +47 -11
- dodal/devices/electron_analyser/{util.py → base/base_util.py} +1 -1
- dodal/devices/electron_analyser/{energy_sources.py → base/energy_sources.py} +1 -1
- dodal/devices/electron_analyser/specs/__init__.py +4 -4
- dodal/devices/electron_analyser/specs/specs_detector.py +46 -0
- dodal/devices/electron_analyser/specs/{driver_io.py → specs_driver_io.py} +23 -26
- dodal/devices/electron_analyser/specs/{region.py → specs_region.py} +4 -3
- dodal/devices/electron_analyser/vgscienta/__init__.py +4 -4
- dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py +52 -0
- dodal/devices/electron_analyser/vgscienta/{driver_io.py → vgscienta_driver_io.py} +25 -31
- dodal/devices/electron_analyser/vgscienta/{region.py → vgscienta_region.py} +6 -6
- dodal/devices/i09_2_shared/i09_apple2.py +0 -72
- dodal/devices/i10/i10_apple2.py +2 -2
- dodal/devices/i21/__init__.py +3 -1
- dodal/devices/insertion_device/__init__.py +58 -0
- dodal/devices/insertion_device/apple2_undulator.py +66 -16
- dodal/devices/insertion_device/energy_motor_lookup.py +1 -1
- dodal/devices/insertion_device/id_enum.py +17 -0
- dodal/devices/insertion_device/lookup_table_models.py +65 -35
- dodal/testing/electron_analyser/device_factory.py +4 -4
- dodal/testing/fixtures/devices/apple2.py +1 -1
- dodal/testing/fixtures/run_engine.py +4 -0
- dodal/devices/electron_analyser/abstract/__init__.py +0 -25
- dodal/devices/electron_analyser/abstract/base_detector.py +0 -63
- dodal/devices/electron_analyser/abstract/types.py +0 -12
- dodal/devices/electron_analyser/detector.py +0 -143
- dodal/devices/electron_analyser/specs/detector.py +0 -34
- dodal/devices/electron_analyser/types.py +0 -57
- dodal/devices/electron_analyser/vgscienta/detector.py +0 -48
- {dls_dodal-1.67.0.dist-info → dls_dodal-1.68.0.dist-info}/WHEEL +0 -0
- {dls_dodal-1.67.0.dist-info → dls_dodal-1.68.0.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.67.0.dist-info → dls_dodal-1.68.0.dist-info}/licenses/LICENSE +0 -0
- {dls_dodal-1.67.0.dist-info → dls_dodal-1.68.0.dist-info}/top_level.txt +0 -0
- /dodal/devices/electron_analyser/{enums.py → base/base_enums.py} +0 -0
- /dodal/devices/electron_analyser/specs/{enums.py → specs_enums.py} +0 -0
- /dodal/devices/electron_analyser/vgscienta/{enums.py → vgscienta_enums.py} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dls-dodal
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.68.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>, Joseph Ware <joseph.ware@diamond.ac.uk>, Oliver Silvester <Oliver.Silvester@diamond.ac.uk>, Noemi Frisina <noemi.frisina@diamond.ac.uk>
|
|
6
6
|
License: Apache License
|
|
@@ -231,7 +231,7 @@ Requires-Dist: redis
|
|
|
231
231
|
Requires-Dist: scanspec>=0.7.3
|
|
232
232
|
Requires-Dist: pyzmq==26.3.0
|
|
233
233
|
Requires-Dist: deepdiff
|
|
234
|
-
Requires-Dist: daq-config-server>=v1.0.0
|
|
234
|
+
Requires-Dist: daq-config-server>=v1.0.0
|
|
235
235
|
Provides-Extra: dev
|
|
236
236
|
Requires-Dist: black; extra == "dev"
|
|
237
237
|
Requires-Dist: diff-cover; extra == "dev"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
dls_dodal-1.
|
|
1
|
+
dls_dodal-1.68.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=fKEtAXP7aFyf66hvwaMabE9BzwL6dh3xGKYU6jI5_mA,706
|
|
5
5
|
dodal/cli.py,sha256=fPFs0ACCf2jEnACCIzEd5xR5ormxRwDKOZjzFlaBC88,4728
|
|
6
6
|
dodal/device_manager.py,sha256=rTW-uaOiMPxkvYg7-yDy5MwhhfTCbbY5XkJXV_kcvj0,21029
|
|
7
7
|
dodal/log.py,sha256=UckmmyY_SdZePyi5lHnjh-DVw6qvnat3ANa_5-y80Og,9877
|
|
@@ -13,8 +13,8 @@ dodal/beamlines/__init__.py,sha256=kVmxHMi9W1MkrOsVxBK7N1DBFGDrWv4FH1m8_nRxwzo,3
|
|
|
13
13
|
dodal/beamlines/adsim.py,sha256=1ciucMo1oNYeKarIeBbqlQjZrVN2viyNrDz8dHw5QxY,2153
|
|
14
14
|
dodal/beamlines/aithre.py,sha256=RRNmzJz4Fu5eHRXKoIJpv1D1fNR5e7wmT34d52QwM9Y,1399
|
|
15
15
|
dodal/beamlines/b01_1.py,sha256=H24kiQtF0XnpWBtpsdC_k4w2WU4ibvovU3YPAop_zdg,2830
|
|
16
|
-
dodal/beamlines/b07.py,sha256=
|
|
17
|
-
dodal/beamlines/b07_1.py,sha256=
|
|
16
|
+
dodal/beamlines/b07.py,sha256=BfJJso_h2YX1LU0sRNxGeKJzCNRWngV9Kv2Hc3M6zLM,1430
|
|
17
|
+
dodal/beamlines/b07_1.py,sha256=Lph4PT0JOoOk_PnRBFZxg1R6N6TqNCrmNL7ybCF2Evc,1637
|
|
18
18
|
dodal/beamlines/b16.py,sha256=rK00hEj8KLGNkLZr9omAuoMz_DyLN9rK4eUQssETR9E,1703
|
|
19
19
|
dodal/beamlines/b18.py,sha256=ryxrGtcCdwoFgZ8ljWYgr1g9gKvoA7nxkARVxl1IE78,1189
|
|
20
20
|
dodal/beamlines/b21.py,sha256=KGPoUogtu5XutVSGZ8LiQgIHOyWbW_9KAt23TetKTHc,3873
|
|
@@ -22,27 +22,28 @@ dodal/beamlines/i02_1.py,sha256=SwRm9v1U6CiT0fwLbSTECbJ6OF1BPEx4TJ0cEReuGZA,4017
|
|
|
22
22
|
dodal/beamlines/i02_2.py,sha256=Jkghwv1Y5i0VUR2NZZ7hoiK9Ii8O-rIECDoKLX9AKi0,1169
|
|
23
23
|
dodal/beamlines/i03.py,sha256=HyJzusfTuTYT5hi6ajcB3wQup1BPKWRGrxbLocz8Hmg,10438
|
|
24
24
|
dodal/beamlines/i04.py,sha256=toMPtu1k2NXzfmmX6b8CH_kjhCjmO5LD_8Hs9UQPNhU,14956
|
|
25
|
-
dodal/beamlines/i05.py,sha256=
|
|
25
|
+
dodal/beamlines/i05.py,sha256=FxzIJ4BFE6PC3Gs6Kq_GjrRbpam8UbRO22EHjuSO2nQ,1281
|
|
26
26
|
dodal/beamlines/i05_1.py,sha256=bzaDqR2doZnoN-dk_oPwWqSGJaVZTDnNtx0wMzGSTp8,714
|
|
27
|
-
dodal/beamlines/i06.py,sha256=
|
|
27
|
+
dodal/beamlines/i06.py,sha256=V0kjC2NPX4fn9et3T8KLbTgNXsyYki4S5swrC61YwAI,1571
|
|
28
28
|
dodal/beamlines/i07.py,sha256=mnwJPscsXFZnRQ2fKd-FwYiL_VjQu5zbYGQcgg7lplE,1270
|
|
29
|
-
dodal/beamlines/i09.py,sha256=
|
|
30
|
-
dodal/beamlines/i09_1.py,sha256=
|
|
31
|
-
dodal/beamlines/i09_2.py,sha256=
|
|
29
|
+
dodal/beamlines/i09.py,sha256=gWVSQOmpQO6X24eARNXHQHafDv5AX7CozGSmj8NR_ak,1910
|
|
30
|
+
dodal/beamlines/i09_1.py,sha256=bcFExeMBPoabzEA-c01cO-EUwFA3KHWBmA0iuQ4gp7A,2543
|
|
31
|
+
dodal/beamlines/i09_2.py,sha256=pEH-a4gwuhf4xRqdLx5eAvOfxDtnc16Nvk57nDUVPSg,3395
|
|
32
32
|
dodal/beamlines/i10.py,sha256=LC0ii13rVyZj1ziatBAyRoyuutdyyTCkpSvICGv4IGY,4059
|
|
33
33
|
dodal/beamlines/i10_1.py,sha256=FxnWjr1u55XgIvnuyTfknnj-xPMNJOAtxObq1y9k518,1062
|
|
34
|
-
dodal/beamlines/i10_optics.py,sha256=
|
|
34
|
+
dodal/beamlines/i10_optics.py,sha256=C8dftjZw1TmdswUMpGoKOF70TsAQ1WAffdQH-1BJ74I,7142
|
|
35
35
|
dodal/beamlines/i11.py,sha256=hzW5Lh74zDzUD0vqXQzekoFVWDp8qEIc0OPRm0Qepqs,3643
|
|
36
36
|
dodal/beamlines/i13_1.py,sha256=VYVqMN8-njy7YSI08gskRccT-K2paRC9edAx0ah-Cwo,1602
|
|
37
37
|
dodal/beamlines/i15.py,sha256=lmUhh1jt5CtD4P_BzkwNufu814aT3uaQlLyDMY_B5AE,5725
|
|
38
38
|
dodal/beamlines/i15_1.py,sha256=EKg6BCr3wpHxdmG23kSTZYcNnGQxZbkzzulBLwz_Kew,3903
|
|
39
|
-
dodal/beamlines/
|
|
39
|
+
dodal/beamlines/i16.py,sha256=NDTbyllb11Rklk5MNDVhrmI361Q-aKOMPy_dp09JE74,648
|
|
40
|
+
dodal/beamlines/i17.py,sha256=nlebjLsEruFcrpVGXclNHBsnIMtasQKvsBimwIf2-vI,2788
|
|
40
41
|
dodal/beamlines/i18.py,sha256=vPGfrbh1CY2W2BXIfCA5PIeVyixS5nEJSxHpla1RM4I,3756
|
|
41
42
|
dodal/beamlines/i19_1.py,sha256=aC-R9CEjRZEdSutfYhK9r2rT6J__IOZy4zG95B_fJC8,3466
|
|
42
43
|
dodal/beamlines/i19_2.py,sha256=gNRRRimY69zl_e9FRaEFs-fQxWu6oqFwjHjjVs-AJrk,4514
|
|
43
44
|
dodal/beamlines/i19_optics.py,sha256=fNdAFRJYFA045l4giGI3V68qijDFE1C8gdvD6fncAio,1181
|
|
44
45
|
dodal/beamlines/i20_1.py,sha256=Zsr1lsH7ySbOgK7RhMVMWzNWZAV-fuYW0iAjSEJZicY,2625
|
|
45
|
-
dodal/beamlines/i21.py,sha256=
|
|
46
|
+
dodal/beamlines/i21.py,sha256=1ZtVPmnZLMvhcIpeVN7OZYnt44hVJpNNnHbfxwGoseQ,3357
|
|
46
47
|
dodal/beamlines/i22.py,sha256=XVGYyx6QEhbXJ5DRm-YWnUZKdagv_X8YJNYjmhXT7II,8097
|
|
47
48
|
dodal/beamlines/i23.py,sha256=ZXvPEiMA4mPbRTXOxvL1NcoVWDg4Deyl8k57cveDg90,3060
|
|
48
49
|
dodal/beamlines/i24.py,sha256=0ZjJCUYIUWIQTPrXFqKviiTCZiyuJh4MkmqMYd9JZ9o,7454
|
|
@@ -50,7 +51,7 @@ dodal/beamlines/k07.py,sha256=jELF4ENfSsPumbFieZDQKP-fDKFeGfox7guhdxJqmD8,1005
|
|
|
50
51
|
dodal/beamlines/k11.py,sha256=sBOl-MLk7FMo10KFykuK5aLqH1zyW4FnI0XXmtQhUfg,978
|
|
51
52
|
dodal/beamlines/p38.py,sha256=ohFCTkyqR2MWGK20PrJqAIokiEjDPNTAfMRzrn3T0Mg,5778
|
|
52
53
|
dodal/beamlines/p45.py,sha256=tQ7EkWfr7o2okK7Prw1C7DNGYdKPU2ofqjm98wu_-G0,2158
|
|
53
|
-
dodal/beamlines/p60.py,sha256=
|
|
54
|
+
dodal/beamlines/p60.py,sha256=EEEPwzIMyNecEDZsPDrfn6RskbSumySruLTuYNQCDBI,1485
|
|
54
55
|
dodal/beamlines/p99.py,sha256=Rbi9OvmrGIblctOnZxFG_tqqhALLZ9O3ht4mBcb5vU8,2754
|
|
55
56
|
dodal/beamlines/training_rig.py,sha256=VfMMNLdqej50CX17GluuwBbdXaurc5dnWjmoCT20bT4,1593
|
|
56
57
|
dodal/common/__init__.py,sha256=0fah9eCiHBBLVhdIqN_pjQIgPtxkAu25-3i4KjHRFM4,386
|
|
@@ -80,7 +81,7 @@ dodal/devices/common_dcm.py,sha256=BmvwnT5mbCmSQI8aGl3GKEfpe7N1axUANEyG-NYgC98,5
|
|
|
80
81
|
dodal/devices/controllers.py,sha256=W_Ras1c6xLjcOMKPSHN8Z1eCUCH-ktaah2hzQXyuFLk,652
|
|
81
82
|
dodal/devices/cryostream.py,sha256=F8-JVl9LvvR0jvFUwhowazwT7q38HnDuVZxRS-1BOnk,4522
|
|
82
83
|
dodal/devices/diamond_filter.py,sha256=hySd7HnLdplpPNvBrLddLjO_3LqgD8-99Zr__Sy_GbI,689
|
|
83
|
-
dodal/devices/eiger.py,sha256=
|
|
84
|
+
dodal/devices/eiger.py,sha256=EywzuUSDnwLDd0XACKilDgwVcet1SnIPixZ28Etf78Q,17527
|
|
84
85
|
dodal/devices/eiger_odin.py,sha256=1JoqPppTp99IZCiFOXJZB3h62xXRYKZINxTYXdLnT8c,7480
|
|
85
86
|
dodal/devices/eurotherm.py,sha256=rdLldmWYP1PZBckoya6svPy1mDxHYaa1IfMleMPGzD4,3832
|
|
86
87
|
dodal/devices/fast_grid_scan.py,sha256=xm2PEPrbqHOQfVrNcXt60S1UT5RtWir6MkdnVlhZNPw,17592
|
|
@@ -144,27 +145,25 @@ dodal/devices/detector/det_dist_to_beam_converter.py,sha256=nSkhiEESyuzdrWoPu6h3
|
|
|
144
145
|
dodal/devices/detector/det_resolution.py,sha256=8OW40MhRg56GlLstM1MOkIxa4DY8eg4q0RBUX7k6PHs,3298
|
|
145
146
|
dodal/devices/detector/detector.py,sha256=DqQvlgdjIdKErrZqgM9IH7drc-r6N8nhkFk7KwlgYAk,4815
|
|
146
147
|
dodal/devices/detector/detector_motion.py,sha256=Ly4nz_AsB-_EDOADMC2u2J0dunpkOMbafVN_dgh3T-E,1389
|
|
147
|
-
dodal/devices/electron_analyser/__init__.py,sha256=
|
|
148
|
-
dodal/devices/electron_analyser/
|
|
149
|
-
dodal/devices/electron_analyser/
|
|
150
|
-
dodal/devices/electron_analyser/
|
|
151
|
-
dodal/devices/electron_analyser/
|
|
152
|
-
dodal/devices/electron_analyser/
|
|
153
|
-
dodal/devices/electron_analyser/
|
|
154
|
-
dodal/devices/electron_analyser/
|
|
155
|
-
dodal/devices/electron_analyser/
|
|
156
|
-
dodal/devices/electron_analyser/
|
|
157
|
-
dodal/devices/electron_analyser/
|
|
158
|
-
dodal/devices/electron_analyser/specs/
|
|
159
|
-
dodal/devices/electron_analyser/specs/
|
|
160
|
-
dodal/devices/electron_analyser/specs/
|
|
161
|
-
dodal/devices/electron_analyser/
|
|
162
|
-
dodal/devices/electron_analyser/
|
|
163
|
-
dodal/devices/electron_analyser/vgscienta/
|
|
164
|
-
dodal/devices/electron_analyser/vgscienta/
|
|
165
|
-
dodal/devices/electron_analyser/vgscienta/
|
|
166
|
-
dodal/devices/electron_analyser/vgscienta/enums.py,sha256=3vmX67ExATU8clueVp_mCzw3OUQx799oZMc8gyHtMJE,205
|
|
167
|
-
dodal/devices/electron_analyser/vgscienta/region.py,sha256=6k6Eah6_I74Pi2_a0KfyMYFfwHwJbh1ndqy0fuq5o14,2184
|
|
148
|
+
dodal/devices/electron_analyser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
149
|
+
dodal/devices/electron_analyser/base/__init__.py,sha256=u8kktlYGxZKXFh-dA98MVVvSsSayAraCHsDI8RtJm3Q,1604
|
|
150
|
+
dodal/devices/electron_analyser/base/base_controller.py,sha256=aFajs4VgmG4J2Gf_4Wt--HM3gaslQlS3JXFUw5YeOWI,2869
|
|
151
|
+
dodal/devices/electron_analyser/base/base_detector.py,sha256=qNZnf-PS82z250ir9UxGYsGF5ToxvL-y-9gCJWrrWnE,7092
|
|
152
|
+
dodal/devices/electron_analyser/base/base_driver_io.py,sha256=Y1uXIbxZS4wrxzAxv8bIJ5eZHyG3rGTTauLNjptjR-A,8985
|
|
153
|
+
dodal/devices/electron_analyser/base/base_enums.py,sha256=ruSH7LNRhtqMflv7gYxKeAu0uLzZIaoCai7sSTzpvkg,204
|
|
154
|
+
dodal/devices/electron_analyser/base/base_region.py,sha256=VD-7bccwKMfm1AqY9jYSiuqfL5XLKKmxrfiFzi13Crw,7432
|
|
155
|
+
dodal/devices/electron_analyser/base/base_util.py,sha256=nGx3vF7eF4SxjzNysoxWbzqmxdSWvcPPHmghw74UuEc,1245
|
|
156
|
+
dodal/devices/electron_analyser/base/energy_sources.py,sha256=HdslyJYn8GbhCkQ2eOlgDOZ1zrHXBUIEk_4kfUXgLrk,3162
|
|
157
|
+
dodal/devices/electron_analyser/specs/__init__.py,sha256=PiId7pXfFqG0UznwzTROAp3iORuU6UEwn_0ohKBxKNk,315
|
|
158
|
+
dodal/devices/electron_analyser/specs/specs_detector.py,sha256=J7TQpvCg6mzVp010LCqtHhHydrcKRweGeApeZeX8GFM,1542
|
|
159
|
+
dodal/devices/electron_analyser/specs/specs_driver_io.py,sha256=SVb0tQGbb6m9DbjmNxfWKCwDVqMSh5a8Ad5RsMb6rZs,4449
|
|
160
|
+
dodal/devices/electron_analyser/specs/specs_enums.py,sha256=cXPcbIGEN5ZJJt1KeiNJEtZkkcjQ-fz7dBfsU283zYQ,235
|
|
161
|
+
dodal/devices/electron_analyser/specs/specs_region.py,sha256=uF12HNzh1I9csYVS3j-CAGuCHCblVzYFBp_4G7JCnvI,1165
|
|
162
|
+
dodal/devices/electron_analyser/vgscienta/__init__.py,sha256=s8acayQN8E0j1H9YEr6Q47Kxu3OtrPuZHk3ARuuot_A,397
|
|
163
|
+
dodal/devices/electron_analyser/vgscienta/vgscienta_detector.py,sha256=5iJIl1WwnrPVCoyBEMwzaycg0yDURs3DZNq5ceTSRAc,1850
|
|
164
|
+
dodal/devices/electron_analyser/vgscienta/vgscienta_driver_io.py,sha256=QADd2CU52BrRwPquHmHO77gX4EY7x-yWmbOfGZhe_k8,3471
|
|
165
|
+
dodal/devices/electron_analyser/vgscienta/vgscienta_enums.py,sha256=3vmX67ExATU8clueVp_mCzw3OUQx799oZMc8gyHtMJE,205
|
|
166
|
+
dodal/devices/electron_analyser/vgscienta/vgscienta_region.py,sha256=SvQmB_NsdzKhuKkuzvkirsYMaqR-1bOjppVsBP4bBqo,2219
|
|
168
167
|
dodal/devices/i02_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
169
168
|
dodal/devices/i02_1/fast_grid_scan.py,sha256=bfiumNayrISFGYqdcd3Bh6lEZvkOxrqyX_B24LYW1nU,2429
|
|
170
169
|
dodal/devices/i02_1/sample_motors.py,sha256=fAHAyeuP4hjOnYsp2x5VQNrTh8Di35ezJV1si2YmKPY,607
|
|
@@ -193,10 +192,10 @@ dodal/devices/i09_1_shared/__init__.py,sha256=jbSL26A4boUJZKUCoA7JNjVfjZ3ehERlDs
|
|
|
193
192
|
dodal/devices/i09_1_shared/hard_energy.py,sha256=77TbYZGidZAlwP9zDE-h0mTMW4Iuf9b30mfnbUV0qJc,3965
|
|
194
193
|
dodal/devices/i09_1_shared/hard_undulator_functions.py,sha256=e0kpReW1q4lK4pQYVbg-h9JZxDN-M8a-yaPo1cNuY-0,6205
|
|
195
194
|
dodal/devices/i09_2_shared/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
196
|
-
dodal/devices/i09_2_shared/i09_apple2.py,sha256=
|
|
195
|
+
dodal/devices/i09_2_shared/i09_apple2.py,sha256=6WliOiSdTjuO6N5YrvJK4AKAUgT7sSVHoLnpH1ntTU0,245
|
|
197
196
|
dodal/devices/i10/__init__.py,sha256=Pa7gI_ulcPO3dN2xpw6tBN1E3CpV3Lj82kmGwIVU7TA,575
|
|
198
197
|
dodal/devices/i10/diagnostics.py,sha256=ULSHpaRPVWcP-HgKAJW2rsdPoYZs_MgF6HJoPj39MwU,6339
|
|
199
|
-
dodal/devices/i10/i10_apple2.py,sha256=
|
|
198
|
+
dodal/devices/i10/i10_apple2.py,sha256=zbJFTsBGT0i0ZMFG49bSPLv0z5gbpr1nRrzbhIEDIh8,6880
|
|
200
199
|
dodal/devices/i10/i10_setting_data.py,sha256=69XWgE-YNTiW7C3t67MNcTL5JDDhOo7h-X7DCTpFE5g,164
|
|
201
200
|
dodal/devices/i10/mirrors.py,sha256=Zofd0g2f3YvFi_KIHQE_w4dFZNglhmh--65tRnWLuyY,504
|
|
202
201
|
dodal/devices/i10/slits.py,sha256=pBstXJnA6j3ftDqei0EZyAPU--M_heqo6hm2DEOqPdc,5040
|
|
@@ -238,7 +237,7 @@ dodal/devices/i19/access_controlled/blueapi_device.py,sha256=ZUt1Am5H4Tm74joLz7d
|
|
|
238
237
|
dodal/devices/i19/access_controlled/hutch_access.py,sha256=hnClUWCL1qTYzuBMmhXX85jiNak7mbYfyHEh54tZ27U,377
|
|
239
238
|
dodal/devices/i19/access_controlled/shutter.py,sha256=D0vNXkIa6IoSoBMyGdw_RQHPlTgJdgzRsKkany0Jv-I,2154
|
|
240
239
|
dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
241
|
-
dodal/devices/i21/__init__.py,sha256=
|
|
240
|
+
dodal/devices/i21/__init__.py,sha256=GQB4jkhrWvD1i6LTqIBf_2CDLLL3M9cdwHxjkAHyUdU,74
|
|
242
241
|
dodal/devices/i21/enums.py,sha256=asy90S84fBBydYwz89jNeocz04JXpbHn8ynaPzW353c,141
|
|
243
242
|
dodal/devices/i22/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
244
243
|
dodal/devices/i22/dcm.py,sha256=abs6U6DOUO8_g2adpynfoc9lQYbLC3tgObSwI9AhKZg,4551
|
|
@@ -254,10 +253,11 @@ dodal/devices/i24/dual_backlight.py,sha256=N0R7M1mHPRmQ4fks5lGU1wrXjOvcW_ZKIXaRo
|
|
|
254
253
|
dodal/devices/i24/focus_mirrors.py,sha256=DYiYLpDw8FJ1LYHxLOxE_om5qGfUo2itzskgqhmQZlg,1763
|
|
255
254
|
dodal/devices/i24/pmac.py,sha256=-HYf2HPzaqWvszp4T8TXohdp40-xmKqQq4V0mLvVri8,7028
|
|
256
255
|
dodal/devices/i24/vgonio.py,sha256=sxSmcYZayVJPJz_D_91j9PmNor7Tbl1RGQFRrdtESlw,533
|
|
257
|
-
dodal/devices/insertion_device/__init__.py,sha256=
|
|
258
|
-
dodal/devices/insertion_device/apple2_undulator.py,sha256=
|
|
259
|
-
dodal/devices/insertion_device/energy_motor_lookup.py,sha256=
|
|
260
|
-
dodal/devices/insertion_device/
|
|
256
|
+
dodal/devices/insertion_device/__init__.py,sha256=Gx-2YRja1TeW5AMaSH42sCOoiXnoAkuezsy8aJmC3IE,1373
|
|
257
|
+
dodal/devices/insertion_device/apple2_undulator.py,sha256=B0OjfPv8oN0tOVJ8JVhsBqLC9zWeHQxxy9t9ERO6T_Q,30543
|
|
258
|
+
dodal/devices/insertion_device/energy_motor_lookup.py,sha256=8kmw7rNBTK_srKplNQ5pHD5P6b1oOP1fNJ7iNDrKgzY,2708
|
|
259
|
+
dodal/devices/insertion_device/id_enum.py,sha256=IQgVUiY23hcOk3G073OAspeRJ9V4YEx2MntKlUt0Nqk,265
|
|
260
|
+
dodal/devices/insertion_device/lookup_table_models.py,sha256=_lkdHo9W8u0GppBUg5Mas7ABF1ET3la6PjLGavThh3Q,9874
|
|
261
261
|
dodal/devices/mx_phase1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
262
262
|
dodal/devices/mx_phase1/beamstop.py,sha256=zWdZp0j9lCg4YzsZ7GSR3xEcvMfMTJoMO6XdgiC53p4,3765
|
|
263
263
|
dodal/devices/oav/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -317,14 +317,14 @@ dodal/plans/wrapped.py,sha256=BPMw__RcWvk9v5XnhMsi9_k4KsDEbmXogzD2n1ecbUg,2098
|
|
|
317
317
|
dodal/plans/preprocessors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
318
318
|
dodal/plans/preprocessors/verify_undulator_gap.py,sha256=cBZEGq8TW1jrXFXB00iClQVXSEaE_jP_rHMY9WTgYyY,1813
|
|
319
319
|
dodal/testing/electron_analyser/__init__.py,sha256=-lc1opD2dCv0x678-J-ApOhHtvEvcslfOQ7E613U8-Y,118
|
|
320
|
-
dodal/testing/electron_analyser/device_factory.py,sha256=
|
|
320
|
+
dodal/testing/electron_analyser/device_factory.py,sha256=mLeWQems_xBmmxPjyUEBhcp8VIsasY4TsUnVOe10ZaE,2252
|
|
321
321
|
dodal/testing/fixtures/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
322
|
-
dodal/testing/fixtures/run_engine.py,sha256=
|
|
322
|
+
dodal/testing/fixtures/run_engine.py,sha256=_DQivl-pAAoSVpX60XT4jLLmPBJHahCkaVAI3gnl3q8,4208
|
|
323
323
|
dodal/testing/fixtures/utils.py,sha256=jy3mfAAn_TFQ7gqCec-OiOlZkaNLUH3TESW2oohvNgo,1861
|
|
324
324
|
dodal/testing/fixtures/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
325
|
-
dodal/testing/fixtures/devices/apple2.py,sha256=
|
|
326
|
-
dls_dodal-1.
|
|
327
|
-
dls_dodal-1.
|
|
328
|
-
dls_dodal-1.
|
|
329
|
-
dls_dodal-1.
|
|
330
|
-
dls_dodal-1.
|
|
325
|
+
dodal/testing/fixtures/devices/apple2.py,sha256=5FbO1YACBF8aM82X9_36gPqk6rjdy1xRu8OdfdPrxAM,2727
|
|
326
|
+
dls_dodal-1.68.0.dist-info/METADATA,sha256=9_RH8_nxq7q8xT5oNB_i10-jiRoqOC6dIxs_RRHg2o0,16923
|
|
327
|
+
dls_dodal-1.68.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
328
|
+
dls_dodal-1.68.0.dist-info/entry_points.txt,sha256=0IO1Bjlnv0vJSSFdGEZ-S_pqQNkE2FnPTA6f0-aTBs8,87
|
|
329
|
+
dls_dodal-1.68.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
|
|
330
|
+
dls_dodal-1.68.0.dist-info/RECORD,,
|
dodal/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.
|
|
32
|
-
__version_tuple__ = version_tuple = (1,
|
|
31
|
+
__version__ = version = '1.68.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 68, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|
dodal/beamlines/b07.py
CHANGED
|
@@ -3,7 +3,7 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
3
3
|
)
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
5
|
from dodal.devices.b07 import Grating, LensMode, PsuMode
|
|
6
|
-
from dodal.devices.electron_analyser import EnergySource
|
|
6
|
+
from dodal.devices.electron_analyser.base import EnergySource
|
|
7
7
|
from dodal.devices.electron_analyser.specs import SpecsDetector
|
|
8
8
|
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
9
9
|
from dodal.devices.synchrotron import Synchrotron
|
dodal/beamlines/b07_1.py
CHANGED
|
@@ -6,7 +6,7 @@ from dodal.devices.b07_1 import (
|
|
|
6
6
|
Grating,
|
|
7
7
|
LensMode,
|
|
8
8
|
)
|
|
9
|
-
from dodal.devices.electron_analyser import EnergySource
|
|
9
|
+
from dodal.devices.electron_analyser.base import EnergySource
|
|
10
10
|
from dodal.devices.electron_analyser.specs import SpecsDetector
|
|
11
11
|
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
12
12
|
from dodal.devices.synchrotron import Synchrotron
|
dodal/beamlines/i05.py
CHANGED
|
@@ -3,7 +3,7 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
3
3
|
device_factory,
|
|
4
4
|
)
|
|
5
5
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
6
|
-
from dodal.devices.insertion_device
|
|
6
|
+
from dodal.devices.insertion_device import (
|
|
7
7
|
Apple2,
|
|
8
8
|
UndulatorGap,
|
|
9
9
|
UndulatorLockedPhaseAxes,
|
dodal/beamlines/i06.py
CHANGED
|
@@ -2,7 +2,7 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
2
2
|
device_factory,
|
|
3
3
|
)
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
-
from dodal.devices.insertion_device
|
|
5
|
+
from dodal.devices.insertion_device import (
|
|
6
6
|
Apple2,
|
|
7
7
|
UndulatorGap,
|
|
8
8
|
UndulatorLockedPhaseAxes,
|
dodal/beamlines/i09.py
CHANGED
|
@@ -7,7 +7,7 @@ from dodal.devices.common_dcm import (
|
|
|
7
7
|
PitchAndRollCrystal,
|
|
8
8
|
StationaryCrystal,
|
|
9
9
|
)
|
|
10
|
-
from dodal.devices.electron_analyser import DualEnergySource
|
|
10
|
+
from dodal.devices.electron_analyser.base import DualEnergySource
|
|
11
11
|
from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
|
|
12
12
|
from dodal.devices.i09 import Grating, LensMode, PassEnergy, PsuMode
|
|
13
13
|
from dodal.devices.pgm import PlaneGratingMonochromator
|
dodal/beamlines/i09_1.py
CHANGED
|
@@ -7,7 +7,7 @@ from dodal.devices.common_dcm import (
|
|
|
7
7
|
PitchAndRollCrystal,
|
|
8
8
|
StationaryCrystal,
|
|
9
9
|
)
|
|
10
|
-
from dodal.devices.electron_analyser import EnergySource
|
|
10
|
+
from dodal.devices.electron_analyser.base import EnergySource
|
|
11
11
|
from dodal.devices.electron_analyser.specs import SpecsDetector
|
|
12
12
|
from dodal.devices.i09_1 import LensMode, PsuMode
|
|
13
13
|
from dodal.devices.i09_1_shared.hard_energy import HardEnergy, HardInsertionDeviceEnergy
|
dodal/beamlines/i09_2.py
CHANGED
|
@@ -10,10 +10,10 @@ from dodal.devices.i09.enums import Grating
|
|
|
10
10
|
from dodal.devices.i09_2_shared.i09_apple2 import (
|
|
11
11
|
J09_GAP_POLY_DEG_COLUMNS,
|
|
12
12
|
J09_PHASE_POLY_DEG_COLUMNS,
|
|
13
|
-
J09Apple2Controller,
|
|
14
13
|
)
|
|
15
|
-
from dodal.devices.insertion_device
|
|
14
|
+
from dodal.devices.insertion_device import (
|
|
16
15
|
Apple2,
|
|
16
|
+
Apple2EnforceLHMoveController,
|
|
17
17
|
BeamEnergy,
|
|
18
18
|
InsertionDeviceEnergy,
|
|
19
19
|
InsertionDevicePolarisation,
|
|
@@ -79,9 +79,9 @@ def jid() -> Apple2:
|
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
@device_factory()
|
|
82
|
-
def jid_controller() ->
|
|
82
|
+
def jid_controller() -> Apple2EnforceLHMoveController:
|
|
83
83
|
"""J09 insertion device controller."""
|
|
84
|
-
return
|
|
84
|
+
return Apple2EnforceLHMoveController(
|
|
85
85
|
apple2=jid(),
|
|
86
86
|
gap_energy_motor_lut=ConfigServerEnergyMotorLookup(
|
|
87
87
|
lut_config=LookupTableColumnConfig(poly_deg=J09_GAP_POLY_DEG_COLUMNS),
|
|
@@ -93,6 +93,7 @@ def jid_controller() -> J09Apple2Controller:
|
|
|
93
93
|
config_client=J09_CONF_CLIENT,
|
|
94
94
|
path=Path(LOOK_UPTABLE_DIR, PHASE_LOOKUP_FILE_NAME),
|
|
95
95
|
),
|
|
96
|
+
units="keV",
|
|
96
97
|
)
|
|
97
98
|
|
|
98
99
|
|
dodal/beamlines/i10_optics.py
CHANGED
|
@@ -26,7 +26,7 @@ from dodal.devices.i10.i10_apple2 import (
|
|
|
26
26
|
|
|
27
27
|
# Imports taken from i10 while we work out how to deal with split end stations
|
|
28
28
|
from dodal.devices.i10.i10_setting_data import I10Grating
|
|
29
|
-
from dodal.devices.insertion_device
|
|
29
|
+
from dodal.devices.insertion_device import (
|
|
30
30
|
BeamEnergy,
|
|
31
31
|
InsertionDeviceEnergy,
|
|
32
32
|
InsertionDevicePolarisation,
|
dodal/beamlines/i16.py
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
2
|
+
from dodal.device_manager import DeviceManager
|
|
3
|
+
from dodal.devices.undulator import UndulatorInMm, UndulatorOrder
|
|
4
|
+
from dodal.log import set_beamline as set_log_beamline
|
|
5
|
+
from dodal.utils import BeamlinePrefix, get_beamline_name
|
|
6
|
+
|
|
7
|
+
BL = get_beamline_name("i16")
|
|
8
|
+
set_log_beamline(BL)
|
|
9
|
+
set_utils_beamline(BL)
|
|
10
|
+
PREFIX = BeamlinePrefix(BL)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
devices = DeviceManager()
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@devices.factory()
|
|
17
|
+
def id() -> UndulatorInMm:
|
|
18
|
+
return UndulatorInMm(prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
@devices.factory()
|
|
22
|
+
def harmonic() -> UndulatorOrder:
|
|
23
|
+
return UndulatorOrder()
|
dodal/beamlines/i17.py
CHANGED
|
@@ -8,7 +8,7 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
8
8
|
)
|
|
9
9
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
10
10
|
from dodal.devices.i17.i17_apple2 import I17Apple2Controller
|
|
11
|
-
from dodal.devices.insertion_device
|
|
11
|
+
from dodal.devices.insertion_device import (
|
|
12
12
|
Apple2,
|
|
13
13
|
Apple2Controller,
|
|
14
14
|
BeamEnergy,
|
dodal/beamlines/i21.py
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
from daq_config_server.client import ConfigServer
|
|
4
|
+
|
|
1
5
|
from dodal.common.beamlines.beamline_utils import (
|
|
2
6
|
device_factory,
|
|
3
7
|
)
|
|
4
8
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
-
from dodal.devices.i21 import
|
|
6
|
-
|
|
9
|
+
from dodal.devices.i21 import (
|
|
10
|
+
Grating,
|
|
11
|
+
)
|
|
12
|
+
from dodal.devices.insertion_device import (
|
|
7
13
|
Apple2,
|
|
14
|
+
Apple2EnforceLHMoveController,
|
|
15
|
+
BeamEnergy,
|
|
16
|
+
InsertionDeviceEnergy,
|
|
17
|
+
InsertionDevicePolarisation,
|
|
8
18
|
UndulatorGap,
|
|
9
19
|
UndulatorPhaseAxes,
|
|
10
20
|
)
|
|
21
|
+
from dodal.devices.insertion_device.energy_motor_lookup import (
|
|
22
|
+
ConfigServerEnergyMotorLookup,
|
|
23
|
+
)
|
|
24
|
+
from dodal.devices.insertion_device.lookup_table_models import LookupTableColumnConfig
|
|
11
25
|
from dodal.devices.pgm import PlaneGratingMonochromator
|
|
12
26
|
from dodal.devices.synchrotron import Synchrotron
|
|
13
27
|
from dodal.log import set_beamline as set_log_beamline
|
|
@@ -18,6 +32,14 @@ PREFIX = BeamlinePrefix(BL)
|
|
|
18
32
|
set_log_beamline(BL)
|
|
19
33
|
set_utils_beamline(BL)
|
|
20
34
|
|
|
35
|
+
I21_PHASE_POLY_DEG_COLUMNS = ["b"]
|
|
36
|
+
I21_GRATING_COLUMNS = "Grating"
|
|
37
|
+
|
|
38
|
+
I21_CONF_CLIENT = ConfigServer(url="https://daq-config.diamond.ac.uk")
|
|
39
|
+
LOOK_UPTABLE_DIR = "/dls_sw/i21/software/gda/workspace_git/gda-diamond.git/configurations/i21-config/lookupTables/"
|
|
40
|
+
GAP_LOOKUP_FILE_NAME = "IDEnergy2GapCalibrations.csv"
|
|
41
|
+
PHASE_LOOKUP_FILE_NAME = "IDEnergy2PhaseCalibrations.csv"
|
|
42
|
+
|
|
21
43
|
|
|
22
44
|
@device_factory()
|
|
23
45
|
def synchrotron() -> Synchrotron:
|
|
@@ -55,3 +77,40 @@ def id() -> Apple2:
|
|
|
55
77
|
id_gap=id_gap(),
|
|
56
78
|
id_phase=id_phase(),
|
|
57
79
|
)
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@device_factory()
|
|
83
|
+
def id_controller() -> Apple2EnforceLHMoveController:
|
|
84
|
+
"""i21 insertion device controller."""
|
|
85
|
+
return Apple2EnforceLHMoveController(
|
|
86
|
+
apple2=id(),
|
|
87
|
+
gap_energy_motor_lut=ConfigServerEnergyMotorLookup(
|
|
88
|
+
lut_config=LookupTableColumnConfig(grating=I21_GRATING_COLUMNS),
|
|
89
|
+
config_client=I21_CONF_CLIENT,
|
|
90
|
+
path=Path(LOOK_UPTABLE_DIR, GAP_LOOKUP_FILE_NAME),
|
|
91
|
+
),
|
|
92
|
+
phase_energy_motor_lut=ConfigServerEnergyMotorLookup(
|
|
93
|
+
lut_config=LookupTableColumnConfig(
|
|
94
|
+
grating=I21_GRATING_COLUMNS, poly_deg=I21_PHASE_POLY_DEG_COLUMNS
|
|
95
|
+
),
|
|
96
|
+
config_client=I21_CONF_CLIENT,
|
|
97
|
+
path=Path(LOOK_UPTABLE_DIR, GAP_LOOKUP_FILE_NAME),
|
|
98
|
+
),
|
|
99
|
+
units="eV",
|
|
100
|
+
)
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
@device_factory()
|
|
104
|
+
def id_energy() -> InsertionDeviceEnergy:
|
|
105
|
+
return InsertionDeviceEnergy(id_controller=id_controller())
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
@device_factory()
|
|
109
|
+
def id_polarisation() -> InsertionDevicePolarisation:
|
|
110
|
+
return InsertionDevicePolarisation(id_controller=id_controller())
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
@device_factory()
|
|
114
|
+
def energy_jid() -> BeamEnergy:
|
|
115
|
+
"""Beam energy."""
|
|
116
|
+
return BeamEnergy(id_energy=id_energy(), mono=pgm().energy)
|
dodal/beamlines/p60.py
CHANGED
|
@@ -2,7 +2,7 @@ from dodal.common.beamlines.beamline_utils import (
|
|
|
2
2
|
device_factory,
|
|
3
3
|
)
|
|
4
4
|
from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
|
|
5
|
-
from dodal.devices.electron_analyser import DualEnergySource
|
|
5
|
+
from dodal.devices.electron_analyser.base import DualEnergySource
|
|
6
6
|
from dodal.devices.electron_analyser.vgscienta import VGScientaDetector
|
|
7
7
|
from dodal.devices.p60 import (
|
|
8
8
|
LabXraySource,
|
dodal/devices/eiger.py
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
# type: ignore # Eiger will soon be ophyd-async https://github.com/DiamondLightSource/dodal/issues/700
|
|
2
1
|
from dataclasses import dataclass
|
|
3
2
|
from enum import Enum
|
|
4
3
|
|
|
5
4
|
from bluesky.protocols import Stageable
|
|
6
5
|
from ophyd import Component, Device, EpicsSignalRO, Signal
|
|
7
6
|
from ophyd.areadetector.cam import EigerDetectorCam
|
|
8
|
-
from ophyd.status import AndStatus, Status, StatusBase
|
|
7
|
+
from ophyd.status import AndStatus, Status, StatusBase, SubscriptionStatus
|
|
9
8
|
|
|
10
9
|
from dodal.devices.detector import DetectorParams, TriggerMode
|
|
11
10
|
from dodal.devices.eiger_odin import EigerOdin
|
|
@@ -123,7 +122,7 @@ class EigerDetector(Device, Stageable):
|
|
|
123
122
|
LOGGER.info("Waiting for arming to finish")
|
|
124
123
|
self.arming_status.wait(self.timeouts.arming_timeout)
|
|
125
124
|
|
|
126
|
-
def stage(self):
|
|
125
|
+
def stage(self): # pyright: ignore[reportIncompatibleMethodOverride]
|
|
127
126
|
self.wait_on_arming_if_started()
|
|
128
127
|
if not self.is_armed():
|
|
129
128
|
LOGGER.info("Eiger not armed, arming")
|
|
@@ -132,6 +131,7 @@ class EigerDetector(Device, Stageable):
|
|
|
132
131
|
|
|
133
132
|
def stop_odin_when_all_frames_collected(self):
|
|
134
133
|
LOGGER.info("Waiting on all frames")
|
|
134
|
+
assert self.detector_params
|
|
135
135
|
try:
|
|
136
136
|
await_value(
|
|
137
137
|
self.odin.file_writer.num_captured,
|
|
@@ -141,7 +141,7 @@ class EigerDetector(Device, Stageable):
|
|
|
141
141
|
LOGGER.info("Stopping Odin")
|
|
142
142
|
self.odin.stop().wait(self.timeouts.odin_stop_timeout)
|
|
143
143
|
|
|
144
|
-
def unstage(self) -> bool:
|
|
144
|
+
def unstage(self) -> bool: # pyright: ignore[reportIncompatibleMethodOverride]
|
|
145
145
|
assert self.detector_params is not None
|
|
146
146
|
try:
|
|
147
147
|
self.disarming_status = Status()
|
|
@@ -166,7 +166,7 @@ class EigerDetector(Device, Stageable):
|
|
|
166
166
|
self.disarming_status.set_finished()
|
|
167
167
|
return status_ok
|
|
168
168
|
|
|
169
|
-
def stop(self, *args):
|
|
169
|
+
def stop(self, *args): # pyright: ignore[reportIncompatibleMethodOverride]
|
|
170
170
|
"""Emergency stop the device, mainly used to clean up after error."""
|
|
171
171
|
LOGGER.info("Eiger stop() called - cleaning up...")
|
|
172
172
|
if self.disarming_status and not self.disarming_status.done:
|
|
@@ -241,7 +241,8 @@ class EigerDetector(Device, Stageable):
|
|
|
241
241
|
1, timeout=self.timeouts.general_status_timeout
|
|
242
242
|
)
|
|
243
243
|
status &= self.cam.image_mode.set(
|
|
244
|
-
self.cam.ImageMode.MULTIPLE,
|
|
244
|
+
self.cam.ImageMode.MULTIPLE, # pyright: ignore[reportAttributeAccessIssue]
|
|
245
|
+
timeout=self.timeouts.general_status_timeout,
|
|
245
246
|
)
|
|
246
247
|
status &= self.cam.trigger_mode.set(
|
|
247
248
|
InternalEigerTriggerMode.EXTERNAL_SERIES.value,
|
|
@@ -315,7 +316,7 @@ class EigerDetector(Device, Stageable):
|
|
|
315
316
|
this tolerance it is not set again. Defaults to 0.1eV.
|
|
316
317
|
"""
|
|
317
318
|
|
|
318
|
-
current_energy = self.cam.photon_energy.get()
|
|
319
|
+
current_energy = float(self.cam.photon_energy.get())
|
|
319
320
|
if abs(current_energy - energy) > tolerance:
|
|
320
321
|
LOGGER.info(f"Setting detector threshold to {energy}")
|
|
321
322
|
return self.cam.photon_energy.set(
|
|
@@ -398,7 +399,7 @@ class EigerDetector(Device, Stageable):
|
|
|
398
399
|
def disarm_detector(self):
|
|
399
400
|
self.cam.acquire.set(0).wait(self.timeouts.general_status_timeout)
|
|
400
401
|
|
|
401
|
-
def wait_for_stale_params(self) ->
|
|
402
|
+
def wait_for_stale_params(self) -> SubscriptionStatus:
|
|
402
403
|
LOGGER.info("Eiger arming: Waiting for stale params...")
|
|
403
404
|
return await_value(self.stale_params, 0, 60)
|
|
404
405
|
|
|
@@ -412,6 +413,11 @@ class EigerDetector(Device, Stageable):
|
|
|
412
413
|
detector_params: DetectorParams = self.detector_params
|
|
413
414
|
if detector_params.use_roi_mode:
|
|
414
415
|
functions_to_do_arm.append(self.enable_roi_mode)
|
|
416
|
+
threshold_energy = (
|
|
417
|
+
detector_params.expected_energy_ev
|
|
418
|
+
if detector_params.expected_energy_ev
|
|
419
|
+
else float(self.cam.photon_energy.get())
|
|
420
|
+
)
|
|
415
421
|
|
|
416
422
|
arming_sequence_funcs = [
|
|
417
423
|
# If a beam dump occurs after arming the eiger but prior to eiger staging,
|
|
@@ -419,7 +425,7 @@ class EigerDetector(Device, Stageable):
|
|
|
419
425
|
# if this previously completed successfully we must reset the odin first
|
|
420
426
|
self.odin.stop,
|
|
421
427
|
lambda: self.change_dev_shm(detector_params.enable_dev_shm),
|
|
422
|
-
lambda: self.set_detector_threshold(
|
|
428
|
+
lambda: self.set_detector_threshold(threshold_energy),
|
|
423
429
|
self.set_cam_pvs,
|
|
424
430
|
self.set_odin_number_of_frame_chunks,
|
|
425
431
|
self.set_odin_pvs,
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
from .detector import (
|
|
2
|
-
ElectronAnalyserDetector,
|
|
3
|
-
ElectronAnalyserRegionDetector,
|
|
4
|
-
TElectronAnalyserDetector,
|
|
5
|
-
TElectronAnalyserRegionDetector,
|
|
6
|
-
)
|
|
7
|
-
from .energy_sources import DualEnergySource, EnergySource
|
|
8
|
-
from .enums import EnergyMode, SelectedSource
|
|
9
|
-
from .types import (
|
|
10
|
-
ElectronAnalyserDetectorImpl,
|
|
11
|
-
ElectronAnalyserDriverImpl,
|
|
12
|
-
GenericElectronAnalyserDetector,
|
|
13
|
-
GenericElectronAnalyserRegionDetector,
|
|
14
|
-
)
|
|
15
|
-
from .util import to_binding_energy, to_kinetic_energy
|
|
16
|
-
|
|
17
|
-
__all__ = [
|
|
18
|
-
"to_binding_energy",
|
|
19
|
-
"to_kinetic_energy",
|
|
20
|
-
"DualEnergySource",
|
|
21
|
-
"SelectedSource",
|
|
22
|
-
"EnergySource",
|
|
23
|
-
"EnergyMode",
|
|
24
|
-
"SelectedSource",
|
|
25
|
-
"ElectronAnalyserDetector",
|
|
26
|
-
"ElectronAnalyserDetectorImpl",
|
|
27
|
-
"ElectronAnalyserDriverImpl",
|
|
28
|
-
"TElectronAnalyserDetector",
|
|
29
|
-
"ElectronAnalyserRegionDetector",
|
|
30
|
-
"TElectronAnalyserRegionDetector",
|
|
31
|
-
"GenericElectronAnalyserDetector",
|
|
32
|
-
"GenericElectronAnalyserRegionDetector",
|
|
33
|
-
]
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from .base_controller import (
|
|
2
|
+
ElectronAnalyserController,
|
|
3
|
+
GenericElectronAnalyserController,
|
|
4
|
+
)
|
|
5
|
+
from .base_detector import (
|
|
6
|
+
BaseElectronAnalyserDetector,
|
|
7
|
+
ElectronAnalyserDetector,
|
|
8
|
+
ElectronAnalyserRegionDetector,
|
|
9
|
+
GenericBaseElectronAnalyserDetector,
|
|
10
|
+
GenericElectronAnalyserDetector,
|
|
11
|
+
GenericElectronAnalyserRegionDetector,
|
|
12
|
+
)
|
|
13
|
+
from .base_driver_io import (
|
|
14
|
+
AbstractAnalyserDriverIO,
|
|
15
|
+
GenericAnalyserDriverIO,
|
|
16
|
+
TAbstractAnalyserDriverIO,
|
|
17
|
+
)
|
|
18
|
+
from .base_enums import EnergyMode, SelectedSource
|
|
19
|
+
from .base_region import (
|
|
20
|
+
AbstractBaseRegion,
|
|
21
|
+
AbstractBaseSequence,
|
|
22
|
+
GenericRegion,
|
|
23
|
+
GenericSequence,
|
|
24
|
+
TAbstractBaseRegion,
|
|
25
|
+
TAbstractBaseSequence,
|
|
26
|
+
TAcquisitionMode,
|
|
27
|
+
TLensMode,
|
|
28
|
+
)
|
|
29
|
+
from .base_util import to_binding_energy, to_kinetic_energy
|
|
30
|
+
from .energy_sources import DualEnergySource, EnergySource
|
|
31
|
+
|
|
32
|
+
__all__ = [
|
|
33
|
+
"ElectronAnalyserController",
|
|
34
|
+
"GenericElectronAnalyserController",
|
|
35
|
+
"BaseElectronAnalyserDetector",
|
|
36
|
+
"ElectronAnalyserDetector",
|
|
37
|
+
"ElectronAnalyserRegionDetector",
|
|
38
|
+
"GenericBaseElectronAnalyserDetector",
|
|
39
|
+
"GenericElectronAnalyserDetector",
|
|
40
|
+
"GenericElectronAnalyserRegionDetector",
|
|
41
|
+
"AbstractAnalyserDriverIO",
|
|
42
|
+
"GenericAnalyserDriverIO",
|
|
43
|
+
"TAbstractAnalyserDriverIO",
|
|
44
|
+
"EnergyMode",
|
|
45
|
+
"SelectedSource",
|
|
46
|
+
"AbstractBaseRegion",
|
|
47
|
+
"AbstractBaseSequence",
|
|
48
|
+
"GenericRegion",
|
|
49
|
+
"GenericSequence",
|
|
50
|
+
"TAbstractBaseRegion",
|
|
51
|
+
"TAbstractBaseSequence",
|
|
52
|
+
"TAcquisitionMode",
|
|
53
|
+
"TLensMode",
|
|
54
|
+
"to_binding_energy",
|
|
55
|
+
"to_kinetic_energy",
|
|
56
|
+
"DualEnergySource",
|
|
57
|
+
"EnergySource",
|
|
58
|
+
]
|