dls-dodal 1.47.0__py3-none-any.whl → 1.49.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.
Files changed (61) hide show
  1. {dls_dodal-1.47.0.dist-info → dls_dodal-1.49.0.dist-info}/METADATA +3 -2
  2. {dls_dodal-1.47.0.dist-info → dls_dodal-1.49.0.dist-info}/RECORD +59 -49
  3. {dls_dodal-1.47.0.dist-info → dls_dodal-1.49.0.dist-info}/WHEEL +1 -1
  4. dodal/_version.py +2 -2
  5. dodal/beamlines/aithre.py +21 -0
  6. dodal/beamlines/b01_1.py +1 -1
  7. dodal/beamlines/b16.py +65 -0
  8. dodal/beamlines/b18.py +38 -0
  9. dodal/beamlines/i03.py +21 -6
  10. dodal/beamlines/i04.py +17 -10
  11. dodal/beamlines/i10.py +41 -233
  12. dodal/beamlines/i18.py +1 -1
  13. dodal/beamlines/i19_1.py +9 -6
  14. dodal/beamlines/i24.py +5 -5
  15. dodal/beamlines/k11.py +35 -0
  16. dodal/common/beamlines/beamline_parameters.py +2 -28
  17. dodal/common/beamlines/device_helpers.py +1 -0
  18. dodal/devices/aithre_lasershaping/goniometer.py +36 -2
  19. dodal/devices/aithre_lasershaping/laser_robot.py +27 -0
  20. dodal/devices/apple2_undulator.py +257 -136
  21. dodal/devices/b16/__init__.py +0 -0
  22. dodal/devices/b16/detector.py +34 -0
  23. dodal/devices/bimorph_mirror.py +29 -36
  24. dodal/devices/electron_analyser/__init__.py +21 -1
  25. dodal/devices/electron_analyser/abstract/__init__.py +0 -6
  26. dodal/devices/electron_analyser/abstract/base_detector.py +16 -128
  27. dodal/devices/electron_analyser/abstract/base_driver_io.py +122 -8
  28. dodal/devices/electron_analyser/abstract/base_region.py +7 -3
  29. dodal/devices/electron_analyser/detector.py +141 -0
  30. dodal/devices/electron_analyser/enums.py +6 -0
  31. dodal/devices/electron_analyser/specs/__init__.py +3 -2
  32. dodal/devices/electron_analyser/specs/detector.py +6 -22
  33. dodal/devices/electron_analyser/specs/driver_io.py +27 -3
  34. dodal/devices/electron_analyser/specs/enums.py +8 -0
  35. dodal/devices/electron_analyser/specs/region.py +3 -2
  36. dodal/devices/electron_analyser/types.py +30 -4
  37. dodal/devices/electron_analyser/util.py +1 -1
  38. dodal/devices/electron_analyser/vgscienta/__init__.py +3 -2
  39. dodal/devices/electron_analyser/vgscienta/detector.py +9 -23
  40. dodal/devices/electron_analyser/vgscienta/driver_io.py +33 -4
  41. dodal/devices/electron_analyser/vgscienta/enums.py +19 -0
  42. dodal/devices/electron_analyser/vgscienta/region.py +7 -23
  43. dodal/devices/fast_grid_scan.py +1 -1
  44. dodal/devices/i04/murko_results.py +93 -96
  45. dodal/devices/i10/__init__.py +0 -0
  46. dodal/devices/i10/i10_apple2.py +181 -126
  47. dodal/devices/i18/diode.py +37 -4
  48. dodal/devices/i22/nxsas.py +1 -1
  49. dodal/devices/mx_phase1/beamstop.py +23 -6
  50. dodal/devices/oav/oav_detector.py +101 -25
  51. dodal/devices/oav/oav_parameters.py +46 -16
  52. dodal/devices/oav/oav_to_redis_forwarder.py +2 -2
  53. dodal/devices/robot.py +20 -1
  54. dodal/devices/smargon.py +43 -4
  55. dodal/devices/zebra/zebra.py +8 -0
  56. dodal/plans/configure_arm_trigger_and_disarm_detector.py +167 -0
  57. dodal/plan_stubs/electron_analyser/__init__.py +0 -3
  58. dodal/plan_stubs/electron_analyser/configure_driver.py +0 -92
  59. {dls_dodal-1.47.0.dist-info → dls_dodal-1.49.0.dist-info}/entry_points.txt +0 -0
  60. {dls_dodal-1.47.0.dist-info → dls_dodal-1.49.0.dist-info}/licenses/LICENSE +0 -0
  61. {dls_dodal-1.47.0.dist-info → dls_dodal-1.49.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.47.0
3
+ Version: 1.49.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.0a3
219
+ Requires-Dist: ophyd-async>=0.10.0a4
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -234,6 +234,7 @@ Requires-Dist: aiohttp
234
234
  Requires-Dist: redis
235
235
  Requires-Dist: deepdiff
236
236
  Requires-Dist: scanspec>=0.7.3
237
+ Requires-Dist: event-model>=1.23
237
238
  Provides-Extra: dev
238
239
  Requires-Dist: black; extra == "dev"
239
240
  Requires-Dist: diff-cover; extra == "dev"
@@ -1,7 +1,7 @@
1
- dls_dodal-1.47.0.dist-info/licenses/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1
+ dls_dodal-1.49.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=Y6iZU_PznDkAHl3CGWcR9NILK6pHF1FYft0mkB-5hKM,513
4
+ dodal/_version.py,sha256=5Zn16z_3WIgL4VXJOZtt4b_GDBPCGAlSErXp9isSgPE,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,28 @@ 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=1q7zeMYunOBIWCm203NIkCl5tgVl_-jMWc0f5af-W_E,263
14
- dodal/beamlines/b01_1.py,sha256=hHv9YJtUVmxAQ0UqF00-9wUYC_OtNo9awd04RM8b_HI,1993
13
+ dodal/beamlines/aithre.py,sha256=QpNIT9RVtlyamJoshAa87Cw5U0QfBNwMBcZVvMlD25s,1037
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
+ dodal/beamlines/b16.py,sha256=0MF-wKfogDkZ6wo0DiqCUor0cNG6cYvMdcYr88KuRdY,1690
18
+ dodal/beamlines/b18.py,sha256=ryxrGtcCdwoFgZ8ljWYgr1g9gKvoA7nxkARVxl1IE78,1189
17
19
  dodal/beamlines/i02_1.py,sha256=d2IyqFMgeaSEyZYm7GMSjTKr7_02SakyC_oARx-XwnY,1204
18
- dodal/beamlines/i03.py,sha256=y-E_U9Zd8_qo8mslkdVEvuUK4b1nRqBzrmPh-vxhKOk,15037
19
- dodal/beamlines/i04.py,sha256=T5UfRuA-I7W-JdSQf2jtPJUcFHKLTjLnM401tzUjuEY,13355
20
+ dodal/beamlines/i03.py,sha256=jLiqH3R_TK2sHsI1zCZ91cYcATEtG28-5lMUcsQTXhU,15594
21
+ dodal/beamlines/i04.py,sha256=_ogXHZZbJVNoMIOKLZe_8TbLP3vC4wss5lqqmzctR40,13723
20
22
  dodal/beamlines/i09.py,sha256=cr75vG65pgyWkEYdpcdpuuqAhN_tkmBiBqJn76lQN3k,744
21
23
  dodal/beamlines/i09_1.py,sha256=UbBn1q4L8BZXjZ1rUZQImwO0zkIYqGd5T8FptlFFMyw,742
22
- dodal/beamlines/i10.py,sha256=k8tnUwAb6jX2xY8hgST3ZP4jX3s4I4ispL5M6HF-M5k,11221
24
+ dodal/beamlines/i10.py,sha256=wg-yKw_a2hK_Tx7rym2Rq7oo8GlluoSQK77HcZNohPY,5716
23
25
  dodal/beamlines/i13_1.py,sha256=RF8AXBqVKPY7rVf4j1gOxcURAToYVk-Yo9t4FWyaphU,1650
24
- dodal/beamlines/i18.py,sha256=1BL5QA744ZGuCc2IXdsy_ZD2UV9SVXlUYAiMtpy0YNk,3656
25
- dodal/beamlines/i19_1.py,sha256=3mxRQzMQrg2ppMN19EKqEV0bMs5pNtorQYgkBBWRPks,2838
26
+ dodal/beamlines/i18.py,sha256=CbzdLHXcIhLl1T-GmXmnNOhwHojl8V3d3ikxVoCqXII,3657
27
+ dodal/beamlines/i19_1.py,sha256=RsHXje1S2OLwuPnaqkRva02aAIq5Ya1FvPbHEQKo0Uc,2925
26
28
  dodal/beamlines/i19_2.py,sha256=zairZIPj1mrs9-dG19CjdMEFeqztGmlyeBmIxj7Kl5I,2329
27
29
  dodal/beamlines/i19_optics.py,sha256=RztOdru0lvPXpaIXSUfzSsPVIuwAMKZsEA8vJFU4_Mk,1184
28
30
  dodal/beamlines/i20_1.py,sha256=Xp6XXofjXh3Yibrg5wSHet-pXikprJ9oprEhJg19OkI,1825
29
31
  dodal/beamlines/i22.py,sha256=GAS1KgRrtpdXhYb7tIO3yHHMRcffxOqcSIaCZyexnDk,7595
30
32
  dodal/beamlines/i23.py,sha256=pf3KmzLZYDVqUB4LkLcNJk6z9H4qkFpTdVB8_0MYehs,3066
31
- dodal/beamlines/i24.py,sha256=9rBQMCWGdKiRnFbcVvmjiBWiC9WJIJCtLh5m6LkHUtU,7096
33
+ dodal/beamlines/i24.py,sha256=D83MIeoyC-tzd5QcR0yiLUyzraAyBTObx7VnP5-okSk,7158
34
+ dodal/beamlines/k11.py,sha256=sBOl-MLk7FMo10KFykuK5aLqH1zyW4FnI0XXmtQhUfg,978
32
35
  dodal/beamlines/p38.py,sha256=bka6zsZfFiBAD-rrLSmIIVAOAw0FvupSkhOHGEG77xo,5708
33
36
  dodal/beamlines/p45.py,sha256=2snO895TGwf4LbNIvg4BkvAGSfvZcevdpv_82MRpXKo,2129
34
37
  dodal/beamlines/p60.py,sha256=IJQdemlEkvVMYcyqp2WkyEwPAQrjor33b52wrfEVDIs,615
@@ -43,24 +46,24 @@ dodal/common/types.py,sha256=fkL7UOwDbe3v2_VJ5f1W5RxR98Wx-Ra-LxUZWkNDtls,486
43
46
  dodal/common/udc_directory_provider.py,sha256=v5OBaCUwjtQZAsRQUw6LlVL58UvwwDO1l2MKlilXjdk,2403
44
47
  dodal/common/visit.py,sha256=BLpr3GrP7Ij95V135hRJLgg7gWtBKXVxyOibWtcO8RE,5782
45
48
  dodal/common/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
- dodal/common/beamlines/beamline_parameters.py,sha256=yQdChyUTQfCRpNRJvBkZZ_dxruvrwVGX-VJRMoznryg,3559
49
+ dodal/common/beamlines/beamline_parameters.py,sha256=H9d4fLwVist7G-KdKYcv9D28E0tkhPtGPfiJ4V_5iHI,2721
47
50
  dodal/common/beamlines/beamline_utils.py,sha256=uy-HWchyUwoIqYYUWAd4BOPPoDzqvvtgkWQGzuKStTg,5061
48
- dodal/common/beamlines/device_helpers.py,sha256=lh7eih7KoFiqxo8PLQIDjbpBbhHuAXSeApt7K3KF9to,1002
51
+ dodal/common/beamlines/device_helpers.py,sha256=V0hdBegQZ0ZILTT00tFFA8nNOOFta3tBMH3fsF1ZsBg,1024
49
52
  dodal/devices/CTAB.py,sha256=5_261Ox6NG2cJIzzwnjWz289BG0nZoE0wKOaI5V5jqM,1998
50
53
  dodal/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
54
  dodal/devices/adsim.py,sha256=vCexraF4zLssHdjfPod-XuQGJE_sWoCttFdx__HDS8w,488
52
55
  dodal/devices/aperture.py,sha256=yyw2ei3gM_lmZWDQ6VTbydB58RCDTen_nqBZyoTP2IM,583
53
56
  dodal/devices/aperturescatterguard.py,sha256=i2hLNyf5_7UOuySdkjckb9RWMZrGcZkOF7cfDUj4V-E,12216
54
- dodal/devices/apple2_undulator.py,sha256=R4KDgA4HcFj9zg1rPAEP9E0mKVzE06bhyxNRUrsi3Sw,20826
57
+ dodal/devices/apple2_undulator.py,sha256=PlgSpeCYfAMDYwOLx06Vzk_Iz_VGPwht1JbbwHjVyFQ,26291
55
58
  dodal/devices/backlight.py,sha256=RcgeA1hE3Z_5jA-jH8S8uLMpBfZjenRLz1lx6HTYeAo,1653
56
59
  dodal/devices/baton.py,sha256=BnakfZxx3cIIX6Kxj8-abxn8Z9LaQODhcPbStbD0as4,485
57
- dodal/devices/bimorph_mirror.py,sha256=D5PkrOggJRVAnv38lTdy8rErKLu_O2juLEvSqwcotxY,4825
60
+ dodal/devices/bimorph_mirror.py,sha256=-35vDYKZZrBgD37xBQPwuAR8SsMdm0YzWo2bgkTX4jA,4652
58
61
  dodal/devices/common_dcm.py,sha256=8QSRE6Z10RQjfL3g4JZhyHRNI_aCKxWlzKSsDgiJHhE,3049
59
62
  dodal/devices/cryostream.py,sha256=K-ldpredpeDTzNt4qtQMg99nKJNjBYoXBbK0WJGexzw,656
60
63
  dodal/devices/diamond_filter.py,sha256=hySd7HnLdplpPNvBrLddLjO_3LqgD8-99Zr__Sy_GbI,689
61
64
  dodal/devices/eiger.py,sha256=pQmklNX9kVCT5DE0WhRd5bAsNNKEo_vfPZG-ZunW67Q,15836
62
65
  dodal/devices/eiger_odin.py,sha256=ytUH_18YuM1nJDhplS6OTdtADloYvHpO6ppENjVd4jU,7411
63
- dodal/devices/fast_grid_scan.py,sha256=iNSPcixbgL7jAXi16uJR8Ly2KUW1_Wq9c8sfBrUHnk8,11922
66
+ dodal/devices/fast_grid_scan.py,sha256=NfP746FfuHW-SWs7c7-O9oocWyVjBpu89WW7kaanlLM,11914
64
67
  dodal/devices/fluorescence_detector_motion.py,sha256=-1qCSvW0PdT0m6BcoLxrtc0OJ5UDIBsEe11EOLr-gFw,501
65
68
  dodal/devices/flux.py,sha256=1CDsq9yU2-ho8MfYBl50Tl9ABZwpUBHnV486PQXKNoQ,462
66
69
  dodal/devices/focusing_mirror.py,sha256=vdUPkwyCAZBSR3LQ-EojDOoxVy1ZmOaD_nevETbj7BA,6592
@@ -73,12 +76,12 @@ dodal/devices/pgm.py,sha256=am-AST9iTqma1PkGOKLozqAokZWbJUbM3TNcqXzB-6A,1132
73
76
  dodal/devices/positioner.py,sha256=qf_1uYOI1whS0U5sPA3O3mlZYKrPuW3i0gEKI_q-up0,1289
74
77
  dodal/devices/pressure_jump_cell.py,sha256=h5nMNtr2PMG_AKM6nOB7qNTYT70GRuiGBwC-Ol2Yby0,10548
75
78
  dodal/devices/qbpm.py,sha256=FfrWWAHHtYv3fGRT1qljyPpAwoHJYfbooT9CfKg-oXI,465
76
- dodal/devices/robot.py,sha256=4jiWZnPBz3DmvJJdEG6mKIrrWHty2a6bdbCv8KOn1HE,6009
79
+ dodal/devices/robot.py,sha256=BoaWRqPeO1Q9EhJ1fnq4od0GaiBconBunzg3u5kK5n0,6859
77
80
  dodal/devices/s4_slit_gaps.py,sha256=4KdarIQoRqX4ry3LUS1Km7fkjUFahA0VuTd2DvYEqQ8,446
78
81
  dodal/devices/scatterguard.py,sha256=jx03in9QgaThWxD4t1S8_Llent2kWrn_hThJ9KkUWTk,330
79
82
  dodal/devices/scintillator.py,sha256=PlD6cnJ39PTB_e7QrRspPliLYE4kL_K7ziJURzuxgdA,365
80
83
  dodal/devices/slits.py,sha256=b_7ku2sHlzhMHTvWrwiRwee6ufrbxNX9JB_Z0lvk15o,1105
81
- dodal/devices/smargon.py,sha256=tOHb9fjI8ZCIrboiC4OzS2j1QJDOKkAlQ2SORbBmaGo,4708
84
+ dodal/devices/smargon.py,sha256=hLalJ32VDSjWQCCjFMXq4PhO17dven9RD5-9hqy8zNM,5734
82
85
  dodal/devices/status.py,sha256=hVrJS1yooQo6PRumRACoIEh-SKBUKxvBlQl-MtLFUMQ,327
83
86
  dodal/devices/synchrotron.py,sha256=wLfClZ1lYQWA_D--UsM3NnKLG8bY8mvVsRYER6ob-Ew,2026
84
87
  dodal/devices/tetramm.py,sha256=cvlXiKwrvVgYNb3Kt2b_YyRMT5-fqMoKJrOGFNNR150,8643
@@ -88,12 +91,15 @@ dodal/devices/undulator.py,sha256=ZCdMQ8PKnW7mFV1BmrprOt0aSBCZMSKAH-2yyVH5Ihk,53
88
91
  dodal/devices/watsonmarlow323_pump.py,sha256=rwU94YE6esgGLYdh-pe8nBo_3tvgp6brrrbPDrqp5_M,1406
89
92
  dodal/devices/webcam.py,sha256=mef075ynDbzZ4pNAjfxR_9tdTTqF_rM7hAOVEEOV-Do,2408
90
93
  dodal/devices/xbpm_feedback.py,sha256=j8MHhhE0feoe6R54zPKqS5EbQ0bEDR-nOpLHzHhnHHQ,1156
91
- dodal/devices/aithre_lasershaping/goniometer.py,sha256=YEl0DEXW4Dl9b3nsyfwrM7FDiwEZCXK-evGxlyOJr8k,512
94
+ dodal/devices/aithre_lasershaping/goniometer.py,sha256=rZXnifj4-D0Nx3vStK0s-fBijvdepL1SXlHKocV7uKI,1840
95
+ dodal/devices/aithre_lasershaping/laser_robot.py,sha256=BPAHHRa9cYYSR4iv05CQEqRBjt1VKp0INSoVDg0ImRQ,763
92
96
  dodal/devices/areadetector/plugins/CAM.py,sha256=sZzJm5Ez3eWfXZi_EB67wluhZmMQm1UyOc2bJFfzd1U,964
93
97
  dodal/devices/areadetector/plugins/MJPG.py,sha256=QTsxCoWbofNpLMGPoOR2hWoM33KyntuLepbF0YmX0KE,3031
94
98
  dodal/devices/attenuator/attenuator.py,sha256=Vq9Zsyf56S5fePHGeluImTUtxdwEqttBa2YBIdU5tJU,3993
95
99
  dodal/devices/attenuator/filter.py,sha256=ZoPsTWXjllyMtKBdSIFLB7Cbc88rGof5k3ymL13VczE,422
96
100
  dodal/devices/attenuator/filter_selections.py,sha256=lcmTprCXgSggp2L6uQ6YU0xLMljXvbspAug-WWKCXks,1410
101
+ dodal/devices/b16/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
+ dodal/devices/b16/detector.py,sha256=nj0Xl8uleGtD_sk6tN-h7ipAtfz-e-c-DKWVwk_xXuY,1067
97
103
  dodal/devices/current_amplifiers/__init__.py,sha256=-MhT-t-GJ83rrvTDBCoWub_NKYkRtu4sEj8-y5XZBP0,782
98
104
  dodal/devices/current_amplifiers/current_amplifier.py,sha256=erDVtstLNFVb4wdSqWwRCQX_ifPxOc07x_2Ba_8Y1Wg,2660
99
105
  dodal/devices/current_amplifiers/current_amplifier_detector.py,sha256=YKA769KpU1V4GyYF3ckMgE8sXnaJyzRPUbBqIo7UruM,3968
@@ -106,30 +112,35 @@ dodal/devices/detector/det_dist_to_beam_converter.py,sha256=nSkhiEESyuzdrWoPu6h3
106
112
  dodal/devices/detector/det_resolution.py,sha256=aQkKp24LpRGiwzPAQM3wLVa4ANw32HdrKc2kftHfKQA,3253
107
113
  dodal/devices/detector/detector.py,sha256=DqQvlgdjIdKErrZqgM9IH7drc-r6N8nhkFk7KwlgYAk,4815
108
114
  dodal/devices/detector/detector_motion.py,sha256=UGDQriDWRluDZOZh1mDX9w_fPjMD-_BGe11kA36Kezs,1616
109
- dodal/devices/electron_analyser/__init__.py,sha256=rggAbDOvnckJQ1Ny9ujvzKEmJQSbQopioyi5mYZUMWE,168
110
- dodal/devices/electron_analyser/types.py,sha256=2QObyZln7pvWyLgixabGGWvfs3aIF98gVSz2B4NS1OM,120
111
- dodal/devices/electron_analyser/util.py,sha256=prZXwwxw3F3JD7S00WLuYTKQx04xvZqzpIC8xESdxJw,437
112
- dodal/devices/electron_analyser/abstract/__init__.py,sha256=Ebxs4diLlkJKYLgY_wW2Chk_c7IZeuWi6LvMQRx4hiQ,834
113
- dodal/devices/electron_analyser/abstract/base_detector.py,sha256=_j0qYnRj2G2njUT0uJCp6J_z1so4AHL0lwTW3kiRzl0,6659
114
- dodal/devices/electron_analyser/abstract/base_driver_io.py,sha256=4LAxaQ9mPhVXd2tp8hHZ1UejbMS18guVgbdjt5UvaWA,4768
115
- dodal/devices/electron_analyser/abstract/base_region.py,sha256=PfpauNttv2Iw9jKBxcweTX_0DfAOAxNPDkxQ8r-MLPw,3476
116
- dodal/devices/electron_analyser/specs/__init__.py,sha256=BckNUYLcpysBXz4fBvD_sX4V-ekq_f5XsU2y_4vwUNQ,281
117
- dodal/devices/electron_analyser/specs/detector.py,sha256=iNuBMq3rsYdtdGt5127umM6T1O28YugdfEo1ot6oAVY,1078
118
- dodal/devices/electron_analyser/specs/driver_io.py,sha256=Cj-NW7ZvShBRdv_tRLqtlMQwZMADQ70Sv95gH3fCxdk,2604
119
- dodal/devices/electron_analyser/specs/region.py,sha256=Z39jr_d28fQ13KQq7Z3NCeHVSM73rbCkDyZNXzDzPzI,862
120
- dodal/devices/electron_analyser/vgscienta/__init__.py,sha256=OmcRhKF0UFkuNo1dQbI_0FNwvryAI8_pejvPEanRvbU,393
121
- dodal/devices/electron_analyser/vgscienta/detector.py,sha256=Bubsl5PF7b4sJastxx4SDDmW86RkwH9XRtx4EEalQCM,1190
122
- dodal/devices/electron_analyser/vgscienta/driver_io.py,sha256=es0ju6N8ST-z24o02FftwUKWyMHiGoSlgmPanItQshk,1800
123
- dodal/devices/electron_analyser/vgscienta/region.py,sha256=4zLdKxGQvfM7PeTTg6gTxlFEkBMRB8XrVnP7HClPEzo,2548
115
+ dodal/devices/electron_analyser/__init__.py,sha256=xbOqt6b0J89UkZx6PAqEjPchfY_CMb3xgX3NAMEPf6A,793
116
+ dodal/devices/electron_analyser/detector.py,sha256=V_fCe54S8K0C8cZXcozRKWwqm7n9B-iXf97Y9NtKAvQ,4522
117
+ dodal/devices/electron_analyser/enums.py,sha256=2QObyZln7pvWyLgixabGGWvfs3aIF98gVSz2B4NS1OM,120
118
+ dodal/devices/electron_analyser/types.py,sha256=k_uRDdHzx3sZQ11KB5PNTDQjxuGL91B3-l6sRuKdHHo,1026
119
+ dodal/devices/electron_analyser/util.py,sha256=iUFvnYm-Y-0mBHR8oBLofZMKKuDhYYgGkOmvX6y1s1o,437
120
+ dodal/devices/electron_analyser/abstract/__init__.py,sha256=OJ8rm_23azSe-MHmiyQZEUztqDnew4bRTdC2eVaiHT4,572
121
+ dodal/devices/electron_analyser/abstract/base_detector.py,sha256=Tcx-lrqHr7dkGmOPMSVibZypefddRauQU_1cZTIwaVU,2979
122
+ dodal/devices/electron_analyser/abstract/base_driver_io.py,sha256=ZGYtzxDkPIIcrZP4G2FXXJTAGL5uDKwpdAAvcM94gWU,8824
123
+ dodal/devices/electron_analyser/abstract/base_region.py,sha256=KI4Nk1w9V_1p71wdqLS7IMoal54QPejghDUO4FEdWuw,3648
124
+ dodal/devices/electron_analyser/specs/__init__.py,sha256=qN57kY6ERUGdrAWhU5m8CBrc0KaqiOGwPL6h2BNm3i0,291
125
+ dodal/devices/electron_analyser/specs/detector.py,sha256=9yOmfjVE_cRPJLOLZxaeGUqV1q82YuS_oO-psWE_Wxc,528
126
+ dodal/devices/electron_analyser/specs/driver_io.py,sha256=hAqy0nKCR-9HLlcgJqkXpgIJy77yWsHCtS2bQ7eFM5c,3337
127
+ dodal/devices/electron_analyser/specs/enums.py,sha256=cXPcbIGEN5ZJJt1KeiNJEtZkkcjQ-fz7dBfsU283zYQ,235
128
+ dodal/devices/electron_analyser/specs/region.py,sha256=hBxrMUJrzOoJGInULEbAdnhBL74fFe7R6-c7nde8nPE,977
129
+ dodal/devices/electron_analyser/vgscienta/__init__.py,sha256=Iq0d2BBp0TJh4uG9twiiL-gJiSVI8zNUEbkg1UF5k6U,395
130
+ dodal/devices/electron_analyser/vgscienta/detector.py,sha256=JdCsTXXLbIIGIYZaNDcEGD-fagz8tjil7IbJDTfak6c,618
131
+ dodal/devices/electron_analyser/vgscienta/driver_io.py,sha256=NijPdgvJoTLRPSVDfO4qB7X41TflPRayZZGxfKw-V-o,2800
132
+ dodal/devices/electron_analyser/vgscienta/enums.py,sha256=apJZgIaE1aMQPBwIL1tQvV0WJ5trbk3j6iFmc1OqLsw,353
133
+ dodal/devices/electron_analyser/vgscienta/region.py,sha256=b1_L54ZxVaiO7sDOK6IbzWVi8fxgTlPAXnT4OpMfbVY,2273
124
134
  dodal/devices/i03/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
125
135
  dodal/devices/i03/dcm.py,sha256=zDcgxOdMRVOQZBGDsLaIlr7o4UJIK2vehPWHxAxt6VA,2268
126
136
  dodal/devices/i03/undulator_dcm.py,sha256=c5H-17Dpt3pIMAlU9fHCnU59lYDnmgKk3qE2qR9gg44,2594
127
137
  dodal/devices/i04/__init__.py,sha256=Kvukapy4a5lUQ20qaCqYCJzKNaqJn2DfXP5nKZ_Pec8,118
128
138
  dodal/devices/i04/constants.py,sha256=jHZe5Aeph0_hCDJotMx7Yi8v_a_6jyoI6p60AQ8GvGM,271
129
- dodal/devices/i04/murko_results.py,sha256=9otfp-fa3EVCtX6FXMM2oMXFMGypqnARI0nNq0ycRxY,7276
139
+ dodal/devices/i04/murko_results.py,sha256=1vVQKQdBGYAwcX22oQzWYheelIppoTQk5_git563y10,7055
130
140
  dodal/devices/i04/transfocator.py,sha256=sVI4Bgv-2-DH4-F1nIXMp5Aktevrm3agZnCA-WgjmW8,3780
141
+ dodal/devices/i10/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
142
  dodal/devices/i10/diagnostics.py,sha256=5nnf1oFKtUJZa9Pewh1VxXpFecLscqTR2VakHKr_PaQ,5432
132
- dodal/devices/i10/i10_apple2.py,sha256=ErObNNE59NuYssde6ojWJb8wo3SVohkQsvK0Bjnf1T8,13192
143
+ dodal/devices/i10/i10_apple2.py,sha256=RbavLeqwmmcqAkGJw9-0AmLrWSiP91tAxwJLnXXCY-4,15271
133
144
  dodal/devices/i10/i10_setting_data.py,sha256=69XWgE-YNTiW7C3t67MNcTL5JDDhOo7h-X7DCTpFE5g,164
134
145
  dodal/devices/i10/mirrors.py,sha256=E0M5keGI3LGaDHyXQkCCyj6xmixNY1xTSkIaaYwtnP8,794
135
146
  dodal/devices/i10/slits.py,sha256=jI4wJPVT2vtl4bvabrU9u_v-SdGjOfDLBm0S9GMZC7w,4157
@@ -140,7 +151,7 @@ dodal/devices/i13_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
140
151
  dodal/devices/i13_1/merlin.py,sha256=mgTFSMJftRzLL-HXAUuJkOYxtyA3Rp8YX0L46JCb30Y,1019
141
152
  dodal/devices/i13_1/merlin_controller.py,sha256=XkY8E3UkSzZb9Pw_Ic4bv1DYJvBVADS_3okjHvY4nH4,1453
142
153
  dodal/devices/i18/KBMirror.py,sha256=W4R3TeulSjosUqAFIIznyWzje_Y2AoEf9f8N-NkisYM,710
143
- dodal/devices/i18/diode.py,sha256=q8ddVYT7yDXwURzxw5gfXlGT1tFirNfHBmiKnpvvXHk,406
154
+ dodal/devices/i18/diode.py,sha256=nk5kvn4LsbhczRpCwHOO0_jJTYOz7MP9qm_uvBWuv7c,1468
144
155
  dodal/devices/i18/table.py,sha256=f6OtVSqCFIpXyoHX97CPLpaVDVXUNc2EvgSFP3qVFKo,446
145
156
  dodal/devices/i18/thor_labs_stage.py,sha256=I9JSKY-UqTjN-yBxQWL4CycTNNkUj3vknRrXjA6KZR8,364
146
157
  dodal/devices/i19/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -151,7 +162,7 @@ dodal/devices/i19/shutter.py,sha256=Z3_UO3TmSczJrB8AcU5ohk8WlDN04a00XhSyDLAHvbc,
151
162
  dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
163
  dodal/devices/i22/dcm.py,sha256=IbK56lSvX3PZlYKVeH7mIbRK83-mhJEIoTn1zjQfScE,4494
153
164
  dodal/devices/i22/fswitch.py,sha256=LSMoo9aDkH0SLcojbUh2NxTWIpUXHZxauTqThc3XtSk,3073
154
- dodal/devices/i22/nxsas.py,sha256=lFB_h6ns6yETPFZjDghOMZLg16nDnWveMOJV34TDSYk,5994
165
+ dodal/devices/i22/nxsas.py,sha256=093GCM2H2LESt28RF-JfxEljJ8QzRPkL1ByXI2XVhoA,6012
155
166
  dodal/devices/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
167
  dodal/devices/i24/aperture.py,sha256=XlnOyQsvdTom1dJHVUg8CUSthq3jlBlZFOUaa9b1eZ4,837
157
168
  dodal/devices/i24/beam_center.py,sha256=m6LWsG9e_lhtPfZ8pc_hoLNyTYQQGGdRNav8J_2scTo,483
@@ -163,12 +174,12 @@ dodal/devices/i24/i24_detector_motion.py,sha256=_HgdsZqFYY0tKqUgMzViHaPEUFXL3WlX
163
174
  dodal/devices/i24/pilatus_metadata.py,sha256=I-AR8vd67qf6p0vZnRPTv4aNPN5T4KpSt2Iog4_jvn0,1781
164
175
  dodal/devices/i24/pmac.py,sha256=UTcJdTyzr7DL5XanjtjIopsxEyAPn9pv2jwgh2ksWV4,7078
165
176
  dodal/devices/i24/vgonio.py,sha256=sxSmcYZayVJPJz_D_91j9PmNor7Tbl1RGQFRrdtESlw,533
166
- dodal/devices/mx_phase1/beamstop.py,sha256=r2buBXGWaZ4qSRSxKog_F6bbArq4dp-5-cUPn-0wJZU,2593
177
+ dodal/devices/mx_phase1/beamstop.py,sha256=MeSpp4YpHgIrWCifDU7OTUaJNAMLVpcmgxTMjmOy048,3170
167
178
  dodal/devices/oav/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
179
  dodal/devices/oav/oav_calculations.py,sha256=qoaNz4MAdbpu0XHAkWTQ3rebFwsWfa8JA1eerUgISjA,2367
169
- dodal/devices/oav/oav_detector.py,sha256=e5OnOp3MKr2mRhrtb8imcHO-CR-2GLhFsj5mHUCNOqc,4647
170
- dodal/devices/oav/oav_parameters.py,sha256=gGN73TQGUiRzlIO5YKiqCRkjpTKsV6LFGo7Eu4Vs82g,6074
171
- dodal/devices/oav/oav_to_redis_forwarder.py,sha256=pfhaW6Uo_1wDNfywyPkS5UTrY8yhkerhjgJfRMqrJRA,6259
180
+ dodal/devices/oav/oav_detector.py,sha256=DzRm1d1jC52wl7JawvMWiFCaFYdnjO7HT690NzDQIXs,6730
181
+ dodal/devices/oav/oav_parameters.py,sha256=nnlTwrX5F6eMVK6wUz_MU39aLfV_P-_EyklfTQFAjZ4,6856
182
+ dodal/devices/oav/oav_to_redis_forwarder.py,sha256=Nz_fOBK9NIsFTVO-G67JB-0qzDybWb_HS7RCkqrHfd8,6265
172
183
  dodal/devices/oav/utils.py,sha256=T-xg7J38ritzXwRrKjsWZ7daC_qR7aNhlbkXx75nJ8Q,3188
173
184
  dodal/devices/oav/pin_image_recognition/__init__.py,sha256=_eCq-rEtGNXVfrpahfKMLu53lEr49q5rtVqg0GhiODQ,6534
174
185
  dodal/devices/oav/pin_image_recognition/manual_test.py,sha256=h1Rto6ZDCB3jWhjSy9N8ECxRN583iYDJr9LxrTJ8kfE,903
@@ -190,7 +201,7 @@ dodal/devices/util/test_utils.py,sha256=KEYkqyZrAyju438VCbtQ0Ujv-9GBuIuVGCgggDHU
190
201
  dodal/devices/xspress3/xspress3.py,sha256=75RdPuHpES4Xi-Lcywz0XUhaN2G3vZSoc-dzgcxfNvs,4636
191
202
  dodal/devices/xspress3/xspress3_channel.py,sha256=w8tAx2lz5kJ_LeJ_eb_4o--Dtt8MRijsYNgDG6oEIVg,1626
192
203
  dodal/devices/zebra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
- dodal/devices/zebra/zebra.py,sha256=PpgGVrtb7t5QTNchEalSG3bPeOqf6tPzOUHoOyARWLY,9290
204
+ dodal/devices/zebra/zebra.py,sha256=wDHi6t-I1t35_McRftB82pF9p7N50LQaOtdEl28c8dI,9510
194
205
  dodal/devices/zebra/zebra_constants_mapping.py,sha256=S2iXbmO3XVY5aYsTCi8Kw1YRJg5dGrdDaZppEeZN1Vk,4169
195
206
  dodal/devices/zebra/zebra_controlled_shutter.py,sha256=tcBq2WQxST9g2VrjVWu-tOomFX-zGLHLNDhYhL0DtHc,1871
196
207
  dodal/devices/zocalo/__init__.py,sha256=P9L31CzVJjXv3TQHau5qywYGFPTyopVaHLww8MOYnzc,440
@@ -203,17 +214,16 @@ dodal/plan_stubs/check_topup.py,sha256=3gyLHfHNQBCgEWuAg4QE-ONx7y2Do1vVv5HP8ss0Z
203
214
  dodal/plan_stubs/data_session.py,sha256=Syc6XKaN1usf7bNWOez8_vAH3byrcROqskmBrSUWa4Y,2132
204
215
  dodal/plan_stubs/motor_utils.py,sha256=Mf8utOA_xmxUa2dLmQ1uRkdfyDTip7D8YcKeCBCQLUQ,4458
205
216
  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
217
  dodal/plans/__init__.py,sha256=nH1jNxw3DzDMg9O8Uda0kqKIalRVEWBrq07OLY6Ey38,93
218
+ dodal/plans/configure_arm_trigger_and_disarm_detector.py,sha256=pI1AkTH_5hIU56GmmrBdHMhepuDCuQz44V-O4XIaueg,5384
209
219
  dodal/plans/save_panda.py,sha256=1fumH7Ih8uDIv8ahAtgQ_vUuR3dz0sfUs4n9TEtEbSs,3053
210
220
  dodal/plans/scanspec.py,sha256=Q0AcvTKRT401iGMRDSqK-D523UX5_ofiVMZ_rNXKOx8,2074
211
221
  dodal/plans/verify_undulator_gap.py,sha256=OcDN09-eCoMzsmhKGxvzsH5EapG2zYz0yGCqUtQxLSc,568
212
222
  dodal/plans/wrapped.py,sha256=BPMw__RcWvk9v5XnhMsi9_k4KsDEbmXogzD2n1ecbUg,2098
213
223
  dodal/plans/preprocessors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
214
224
  dodal/plans/preprocessors/verify_undulator_gap.py,sha256=cBZEGq8TW1jrXFXB00iClQVXSEaE_jP_rHMY9WTgYyY,1813
215
- dls_dodal-1.47.0.dist-info/METADATA,sha256=_bGWkGqNchQikp-Yd_gJM62yYhYkqGSCvljp9zJQ6g4,16806
216
- dls_dodal-1.47.0.dist-info/WHEEL,sha256=Nw36Djuh_5VDukK0H78QzOX-_FQEo6V37m3nkm96gtU,91
217
- dls_dodal-1.47.0.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
218
- dls_dodal-1.47.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
219
- dls_dodal-1.47.0.dist-info/RECORD,,
225
+ dls_dodal-1.49.0.dist-info/METADATA,sha256=6QP8JEBNMCPET2gA70GZjjPkFtP43nw9HiEfWbOnaIA,16839
226
+ dls_dodal-1.49.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
227
+ dls_dodal-1.49.0.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
228
+ dls_dodal-1.49.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
229
+ dls_dodal-1.49.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.7.1)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
dodal/_version.py CHANGED
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '1.47.0'
21
- __version_tuple__ = version_tuple = (1, 47, 0)
20
+ __version__ = version = '1.49.0'
21
+ __version_tuple__ = version_tuple = (1, 49, 0)
dodal/beamlines/aithre.py CHANGED
@@ -1,5 +1,11 @@
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
4
+ from dodal.devices.oav.oav_detector import NullZoomController, OAVBeamCentreFile
5
+ from dodal.devices.oav.oav_parameters import OAVConfigBeamCentre
6
+
7
+ ZOOM_PARAMS_FILE = "/dls_sw/i23/software/aithre/aithre_oav.xml"
8
+ DISPLAY_CONFIG = "/dls_sw/i23/software/aithre/aithre_display.configuration"
3
9
 
4
10
  PREFIX = "LA18L"
5
11
 
@@ -7,3 +13,18 @@ PREFIX = "LA18L"
7
13
  @device_factory()
8
14
  def goniometer() -> Goniometer:
9
15
  return Goniometer(f"{PREFIX}-MO-LSR-01:", "goniometer")
16
+
17
+
18
+ @device_factory()
19
+ def robot() -> LaserRobot:
20
+ return LaserRobot("robot", f"{PREFIX}-MO-ROBOT-01:")
21
+
22
+
23
+ @device_factory()
24
+ def oav(params: OAVConfigBeamCentre | None = None) -> OAVBeamCentreFile:
25
+ return OAVBeamCentreFile(
26
+ prefix=f"{PREFIX}-DI-OAV-01:",
27
+ config=params or OAVConfigBeamCentre(ZOOM_PARAMS_FILE, DISPLAY_CONFIG),
28
+ name="oav",
29
+ zoom_controller=NullZoomController(),
30
+ )
dodal/beamlines/b01_1.py CHANGED
@@ -24,7 +24,7 @@ set_utils_beamline(BL)
24
24
  set_path_provider(
25
25
  StaticVisitPathProvider(
26
26
  BL,
27
- Path("/dls/b01-1/data/"),
27
+ Path("/dls/b01-1/data/2025/cm40661-1/"),
28
28
  client=LocalDirectoryServiceClient(),
29
29
  )
30
30
  )
dodal/beamlines/b16.py ADDED
@@ -0,0 +1,65 @@
1
+ from pathlib import Path
2
+
3
+ from ophyd_async.epics.adcore import (
4
+ AreaDetector,
5
+ )
6
+ from ophyd_async.epics.motor import Motor
7
+
8
+ from dodal.common.beamlines.beamline_utils import (
9
+ device_factory,
10
+ set_path_provider,
11
+ )
12
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
13
+ from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
14
+ from dodal.devices.b16.detector import (
15
+ software_triggered_tiff_area_detector,
16
+ )
17
+ from dodal.devices.motors import XYZPositioner
18
+ from dodal.log import set_beamline as set_log_beamline
19
+ from dodal.utils import BeamlinePrefix, get_beamline_name
20
+
21
+ BL = get_beamline_name("b16")
22
+ PREFIX = BeamlinePrefix(BL)
23
+ set_log_beamline(BL)
24
+ set_utils_beamline(BL)
25
+
26
+ set_path_provider(
27
+ StaticVisitPathProvider(
28
+ BL,
29
+ Path("/dls/b16/data/2025/cm40635-3/bluesky"),
30
+ client=RemoteDirectoryServiceClient("http://b16-control:8088/api"),
31
+ )
32
+ )
33
+
34
+
35
+ @device_factory()
36
+ def attol1() -> Motor:
37
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-03:ACT0")
38
+
39
+
40
+ @device_factory()
41
+ def attol2() -> Motor:
42
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-03:ACT1")
43
+
44
+
45
+ @device_factory()
46
+ def attol3() -> Motor:
47
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-03:ACT2")
48
+
49
+
50
+ @device_factory()
51
+ def attorot1() -> Motor:
52
+ return Motor(f"{PREFIX.beamline_prefix}-EA-ECC-02:ACT2")
53
+
54
+
55
+ @device_factory()
56
+ def fds2() -> AreaDetector:
57
+ prefix = f"{PREFIX.beamline_prefix}-EA-FDS-02:"
58
+ return software_triggered_tiff_area_detector(prefix)
59
+
60
+
61
+ @device_factory()
62
+ def sim_stage() -> XYZPositioner:
63
+ return XYZPositioner(
64
+ f"{PREFIX.beamline_prefix}-MO-SIM-01:", "sim_stage", infix=("M1", "M2", "M3")
65
+ )
dodal/beamlines/b18.py ADDED
@@ -0,0 +1,38 @@
1
+ from pathlib import Path
2
+
3
+ from dodal.common.beamlines.beamline_utils import (
4
+ device_factory,
5
+ set_path_provider,
6
+ )
7
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
8
+ from dodal.common.visit import (
9
+ LocalDirectoryServiceClient,
10
+ StaticVisitPathProvider,
11
+ )
12
+ from dodal.devices.synchrotron import Synchrotron
13
+ from dodal.log import set_beamline as set_log_beamline
14
+ from dodal.utils import BeamlinePrefix, get_beamline_name
15
+
16
+ BL = get_beamline_name("b18")
17
+ PREFIX = BeamlinePrefix(BL)
18
+ set_log_beamline(BL)
19
+ set_utils_beamline(BL)
20
+
21
+
22
+ # Currently we must hard-code the visit, determining the visit at runtime requires
23
+ # infrastructure that is still WIP.
24
+ # Communication with GDA is also WIP so for now we determine an arbitrary scan number
25
+ # locally and write the commissioning directory. The scan number is not guaranteed to
26
+ # be unique and the data is at risk - this configuration is for testing only.
27
+ set_path_provider(
28
+ StaticVisitPathProvider(
29
+ BL,
30
+ Path("/dls/b18/data/2025/cm40637-3/bluesky"),
31
+ client=LocalDirectoryServiceClient(),
32
+ )
33
+ )
34
+
35
+
36
+ @device_factory()
37
+ def synchrotron() -> Synchrotron:
38
+ return Synchrotron()
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 OAV
32
- from dodal.devices.oav.oav_parameters import OAVConfig
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: OAVConfig | None = None,
201
- ) -> OAV:
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 OAV(
220
+ return OAVBeamCentreFile(
206
221
  prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
207
222
  name="oav",
208
- config=params or OAVConfig(ZOOM_PARAMS_FILE, DISPLAY_CONFIG),
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 OAV
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("s04")
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 OAV(
304
+ return OAVBeamCentrePV(
309
305
  prefix=f"{PREFIX.beamline_prefix}-DI-OAV-01:",
310
- name="oav",
311
- config=params or OAVConfig(ZOOM_PARAMS_FILE, DISPLAY_CONFIG),
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