dls-dodal 1.36.2__py3-none-any.whl → 1.37.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 (54) hide show
  1. {dls_dodal-1.36.2.dist-info → dls_dodal-1.37.0.dist-info}/METADATA +4 -4
  2. {dls_dodal-1.36.2.dist-info → dls_dodal-1.37.0.dist-info}/RECORD +54 -38
  3. {dls_dodal-1.36.2.dist-info → dls_dodal-1.37.0.dist-info}/WHEEL +1 -1
  4. dodal/_version.py +2 -2
  5. dodal/beamlines/i02_1.py +37 -0
  6. dodal/beamlines/i03.py +20 -3
  7. dodal/beamlines/i04.py +3 -3
  8. dodal/beamlines/i10.py +179 -7
  9. dodal/beamlines/i22.py +15 -0
  10. dodal/beamlines/i24.py +2 -2
  11. dodal/beamlines/p99.py +6 -2
  12. dodal/common/crystal_metadata.py +3 -3
  13. dodal/common/udc_directory_provider.py +3 -1
  14. dodal/devices/aperturescatterguard.py +3 -0
  15. dodal/devices/apple2_undulator.py +9 -9
  16. dodal/devices/{attenuator.py → attenuator/attenuator.py} +29 -1
  17. dodal/devices/attenuator/filter.py +11 -0
  18. dodal/devices/attenuator/filter_selections.py +72 -0
  19. dodal/devices/bimorph_mirror.py +151 -0
  20. dodal/devices/current_amplifiers/__init__.py +34 -0
  21. dodal/devices/current_amplifiers/current_amplifier.py +103 -0
  22. dodal/devices/current_amplifiers/current_amplifier_detector.py +109 -0
  23. dodal/devices/current_amplifiers/femto.py +143 -0
  24. dodal/devices/current_amplifiers/sr570.py +214 -0
  25. dodal/devices/current_amplifiers/struck_scaler_counter.py +79 -0
  26. dodal/devices/detector/det_dim_constants.py +15 -0
  27. dodal/devices/eiger_odin.py +3 -3
  28. dodal/devices/fast_grid_scan.py +8 -3
  29. dodal/devices/i03/beamstop.py +85 -0
  30. dodal/devices/i04/transfocator.py +67 -53
  31. dodal/devices/i10/i10_setting_data.py +3 -3
  32. dodal/devices/i10/mirrors.py +24 -0
  33. dodal/devices/i10/rasor/rasor_current_amp.py +72 -0
  34. dodal/devices/i10/rasor/rasor_motors.py +62 -0
  35. dodal/devices/i10/rasor/rasor_scaler_cards.py +12 -0
  36. dodal/devices/i10/slits.py +37 -0
  37. dodal/devices/i24/dual_backlight.py +1 -0
  38. dodal/devices/i24/focus_mirrors.py +12 -12
  39. dodal/devices/linkam3.py +2 -2
  40. dodal/devices/p99/sample_stage.py +2 -28
  41. dodal/devices/robot.py +2 -2
  42. dodal/devices/slits.py +29 -7
  43. dodal/devices/tetramm.py +16 -16
  44. dodal/devices/undulator_dcm.py +9 -11
  45. dodal/devices/util/test_utils.py +2 -2
  46. dodal/devices/xspress3/xspress3.py +3 -3
  47. dodal/devices/zebra.py +19 -14
  48. dodal/devices/zocalo/zocalo_interaction.py +2 -1
  49. dodal/devices/zocalo/zocalo_results.py +22 -2
  50. dodal/log.py +2 -2
  51. dodal/plans/wrapped.py +3 -3
  52. {dls_dodal-1.36.2.dist-info → dls_dodal-1.37.0.dist-info}/LICENSE +0 -0
  53. {dls_dodal-1.36.2.dist-info → dls_dodal-1.37.0.dist-info}/entry_points.txt +0 -0
  54. {dls_dodal-1.36.2.dist-info → dls_dodal-1.37.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: dls-dodal
3
- Version: 1.36.2
3
+ Version: 1.37.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.8.0a5
219
+ Requires-Dist: ophyd-async>=0.9.0a1
220
220
  Requires-Dist: bluesky
221
221
  Requires-Dist: pyepics
222
222
  Requires-Dist: dataclasses-json
@@ -228,7 +228,7 @@ Requires-Dist: pydantic>=2.0
228
228
  Requires-Dist: opencv-python-headless
229
229
  Requires-Dist: aioca
230
230
  Requires-Dist: p4p
231
- Requires-Dist: numpy<2.0
231
+ Requires-Dist: numpy
232
232
  Requires-Dist: aiofiles
233
233
  Requires-Dist: aiohttp
234
234
  Requires-Dist: redis
@@ -1,8 +1,8 @@
1
1
  dodal/__init__.py,sha256=Ksms_WJF8LTkbm38gEpm1jBpGqcQ8NGvmb2ZJlOE1j8,198
2
2
  dodal/__main__.py,sha256=kP2S2RPitnOWpNGokjZ1Yq-1umOtp5sNOZk2B3tBPLM,111
3
- dodal/_version.py,sha256=eqat9FvXyrftwP2dajRS3LWZiDD9Pay4_MD5eY1_jxU,413
3
+ dodal/_version.py,sha256=G8h3RZ-rmov-shRSPQyyHBDC9-SRuF1mCqQtZVgfOsc,413
4
4
  dodal/cli.py,sha256=NieWNUgLUxyck1rHoFAPJjX1xXLzHNdQ-s4wvxYFfps,3757
5
- dodal/log.py,sha256=0to7CRsbzbgVfAAfKRAMhsaUuKqF2-7CGdQc-z8Uhno,9499
5
+ dodal/log.py,sha256=ry8WMq1S4WMIAPqtqGeKuegMRN7Jy3qdVTJlkpKXkL8,9503
6
6
  dodal/utils.py,sha256=h2sNmTlsaznfxusV1Xj_mXtNjzsWjWAgmps6I0YNA3U,18097
7
7
  dodal/beamline_specific_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  dodal/beamline_specific_utils/i03.py,sha256=P6Ls4FoVtcacH0RJM3v6ZwwGx27oMppcBdW0la-ohTY,377
@@ -10,25 +10,26 @@ dodal/beamlines/README.md,sha256=K9MkL_GomxlsoTB7Mz-_dJA5NNSbmCfMiutchGg3C8o,404
10
10
  dodal/beamlines/__init__.py,sha256=FsS1hMz9nqwTP12UtCJsfVn712mFElcBq2kKKpscp9k,3074
11
11
  dodal/beamlines/adsim.py,sha256=DUAFS1ueoZ6DK2cmZkiEm3NElnaro1mUvyodv14pSmU,1839
12
12
  dodal/beamlines/b01_1.py,sha256=0gLjg0O9ttMjHzszSyJ_GT3fnoAB6u4aJ4MdAfjJbHA,1788
13
- dodal/beamlines/i03.py,sha256=WOMkGTcrrKqoBNeRObumMA8Nlo404uIr2ccfn8gK-zs,18063
14
- dodal/beamlines/i04.py,sha256=z8LUbhyfUDU08oSp85hg7hFE8FJkAyLsqPUQScs5SUA,14567
15
- dodal/beamlines/i10.py,sha256=0ZoFe1vuwNiP2AvNACxuN0OMXJ4DcQ3Oqa0L-w5Ch_M,7744
13
+ dodal/beamlines/i02_1.py,sha256=d2IyqFMgeaSEyZYm7GMSjTKr7_02SakyC_oARx-XwnY,1204
14
+ dodal/beamlines/i03.py,sha256=YMbZFpTWEYO3o0qrIbMqQEO8rDTaXqClIdrvdi45oS4,18651
15
+ dodal/beamlines/i04.py,sha256=pZvMEm4sHNQjGPEJowGNJn0NRzh6K2clGcj24BBpgVM,14614
16
+ dodal/beamlines/i10.py,sha256=lkn_xg0pt-vFuWkUGyl62A0xT-Rzs71JztJ1EeQkMi0,11487
16
17
  dodal/beamlines/i13_1.py,sha256=csXHrdwUh4sXTmb4X6ZiiSS_XxRkNShsVoBMxYI6rG0,1833
17
18
  dodal/beamlines/i20_1.py,sha256=MaPgONHqpoZuBtkiKEzYtViJnKBM2_ekeP4OdbmuXHE,1158
18
- dodal/beamlines/i22.py,sha256=tzx8w86uvJHo5TuwPoIUErB7C5mGhqTzlv45qrppld0,7228
19
+ dodal/beamlines/i22.py,sha256=ED6TtjwZzGn0Hot1WSgUhdOQ4amLDjkse5hBqEBD6Zg,7619
19
20
  dodal/beamlines/i23.py,sha256=2j5qLoqE_hg9ETHqNkOVu7LLkVB8qalgXeORnVYKN_I,1075
20
- dodal/beamlines/i24.py,sha256=w9xkufc7CluVj5nvQww1B7k8VN5RzNQ6AsX8bfyAi9k,8544
21
+ dodal/beamlines/i24.py,sha256=IXujBTX_O0zEL0sBVk0DDerHBZN84dYP0aMEEtbH9RA,8550
21
22
  dodal/beamlines/p38.py,sha256=JJbclLYoRdIxcpzpW4oTj77YJ001CdEAM0bKRk7seYI,8735
22
23
  dodal/beamlines/p45.py,sha256=N4SDTIFok3uMqb37higZHMr3xRjxItsT4ib_KacKKAE,2935
23
- dodal/beamlines/p99.py,sha256=I6c_3NbvEPOpy2z1uwLRqwCkd83Sf15-OXEykLkn0-c,910
24
+ dodal/beamlines/p99.py,sha256=k24QhYpoOHBd0188Fu3wvmpT6dsu8okiIVqVVckdBkw,1063
24
25
  dodal/beamlines/training_rig.py,sha256=qAsUV4X1hxQFIjuQG92UMwYtE0nu1_hL4cP1zSiCe3Y,1698
25
26
  dodal/common/__init__.py,sha256=ZC4ICKUDB0BDxRaVy8nmqclVmDBne-dPtk6UJsoFq6I,258
26
27
  dodal/common/coordination.py,sha256=OxIjDiO1-9A9KESRPFtzwkvvQlavbgA5RHemlbubBPg,1168
27
- dodal/common/crystal_metadata.py,sha256=IKhe_nCbsuIV2W5OvPzIQ-FXfusQ2d7VJ-xH899dZIc,1924
28
+ dodal/common/crystal_metadata.py,sha256=XGr-X81G9SZvPx5b4nBCH4FOnywyX_zYVy6zwDxIMVM,1926
28
29
  dodal/common/maths.py,sha256=K9x7iL3xXLtWYTV-xlFHDNSTIL9a2UP3Ws7wr6Dm2rQ,1803
29
30
  dodal/common/signal_utils.py,sha256=-p4h7xtGPp13t6HTjgFGcs5nN22kVArlkfCPVjpLuRU,1728
30
31
  dodal/common/types.py,sha256=fkL7UOwDbe3v2_VJ5f1W5RxR98Wx-Ra-LxUZWkNDtls,486
31
- dodal/common/udc_directory_provider.py,sha256=H-9f6uSVGuA8jyiErPi8ikCw1JDrhRAJv-qPpN-HwJk,2379
32
+ dodal/common/udc_directory_provider.py,sha256=v5OBaCUwjtQZAsRQUw6LlVL58UvwwDO1l2MKlilXjdk,2403
32
33
  dodal/common/visit.py,sha256=2UbbCmgOjZWSCxFzE9RYiTJhA_IoVOegma-Jv-PJqps,5787
33
34
  dodal/common/beamlines/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
35
  dodal/common/beamlines/beamline_parameters.py,sha256=oIPHooqu5vTAwfqZutsKbzwdi9nvFF8568Mz7jrK5rI,3618
@@ -38,58 +39,73 @@ dodal/devices/CTAB.py,sha256=5_261Ox6NG2cJIzzwnjWz289BG0nZoE0wKOaI5V5jqM,1998
38
39
  dodal/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
40
  dodal/devices/adsim.py,sha256=vCexraF4zLssHdjfPod-XuQGJE_sWoCttFdx__HDS8w,488
40
41
  dodal/devices/aperture.py,sha256=yyw2ei3gM_lmZWDQ6VTbydB58RCDTen_nqBZyoTP2IM,583
41
- dodal/devices/aperturescatterguard.py,sha256=PRNnGbxYKFWoa1m70Mz-6Ta4NtFG0ShUprBvv2viUeI,8993
42
- dodal/devices/apple2_undulator.py,sha256=HtjHiDX80n_nzabuFcUioH-gWH1a6VjZzw_xStq7S4w,22470
43
- dodal/devices/attenuator.py,sha256=SEDnnNeUpwBArJbPcwHyr5BwkHO1Jvgsrw1bpFz5u-o,2894
42
+ dodal/devices/aperturescatterguard.py,sha256=T0ddbX_SH4Aru5XxhrrhEDQAG4Mzq_sZBMofNIIz8tc,9055
43
+ dodal/devices/apple2_undulator.py,sha256=ls_qGM_nGsZdo4I_Zs_stFjUc1oZE6zB1puWrV8-2Wg,22470
44
44
  dodal/devices/backlight.py,sha256=nQIr3J-I-OXnOUoWmr3ruy3nhq_q2US1KXC4NrGG_2U,1634
45
+ dodal/devices/bimorph_mirror.py,sha256=kG9waIdTkKglUrvY_wD9w533oKPqa7fct1-wa_GCFW0,4797
45
46
  dodal/devices/cryostream.py,sha256=K-ldpredpeDTzNt4qtQMg99nKJNjBYoXBbK0WJGexzw,656
46
47
  dodal/devices/dcm.py,sha256=JbyxLnrS68nnnv39l9XEWgJgXUBqxX6aFo19MZnL36E,2574
47
48
  dodal/devices/diamond_filter.py,sha256=A--RHd7WuH-IBhvCyENcRCTP4K-mm_Kqpa0pojpHZow,1098
48
49
  dodal/devices/eiger.py,sha256=VGGgkSz8AzSOP3rpehs2GwPHnOGz0OKsRP6U_FYbBA4,15337
49
- dodal/devices/eiger_odin.py,sha256=oZl16K-Qb2yL6tK1fyDQvqbbhhvYMSVcf_e2CjlqMa4,7409
50
- dodal/devices/fast_grid_scan.py,sha256=dKF2-8CNmm-LaMXBkqkO31pTcAAwiAXznEeB6tg0f6E,11149
50
+ dodal/devices/eiger_odin.py,sha256=ytUH_18YuM1nJDhplS6OTdtADloYvHpO6ppENjVd4jU,7411
51
+ dodal/devices/fast_grid_scan.py,sha256=SNwbLuSJ6YnZ-Qx6t6veLZtStcrPNslRGrw8nouFx9g,11259
51
52
  dodal/devices/fluorescence_detector_motion.py,sha256=-1qCSvW0PdT0m6BcoLxrtc0OJ5UDIBsEe11EOLr-gFw,501
52
53
  dodal/devices/flux.py,sha256=RtPStHw7Mad0igVKntKWVZfuZn2clokVJqH14HLix6M,198
53
54
  dodal/devices/focusing_mirror.py,sha256=vdUPkwyCAZBSR3LQ-EojDOoxVy1ZmOaD_nevETbj7BA,6592
54
55
  dodal/devices/hutch_shutter.py,sha256=WXY9JwqAa5prbf72IP7_MTKndPDtAltCpPJlNbq-F_0,3313
55
56
  dodal/devices/ipin.py,sha256=eq5jlKw7WGQi8VLrAWpaAIsZmfiVf-5Q0td_B22H6A4,473
56
- dodal/devices/linkam3.py,sha256=O1ufCb5ce6nfGXVwiO3I1WEnZ_Jp0azWxBcrZ7PWQm4,3869
57
+ dodal/devices/linkam3.py,sha256=2sf-_heIsDg4qmqae-w9C2Py8pG8bPB3mT0TFPQIzd0,3869
57
58
  dodal/devices/logging_ophyd_device.py,sha256=dUVE-XhWA56WUXez0mrc4sf322CXY3MVLreTycO5j_A,668
58
59
  dodal/devices/motors.py,sha256=mduFm9vTZfu9rhwL93AMZpDzGd2TASdqalWzRaMoqec,1114
59
60
  dodal/devices/p45.py,sha256=jzBW2fGRhIbGzSRs5Fgupxro6aqE611n1RTcrTTG-yY,1047
60
61
  dodal/devices/pgm.py,sha256=am-AST9iTqma1PkGOKLozqAokZWbJUbM3TNcqXzB-6A,1132
61
62
  dodal/devices/pressure_jump_cell.py,sha256=ONvSHpnS-kA8hjOgyIks-J2n02pP6LhLm2SY1zC-i_8,9437
62
63
  dodal/devices/qbpm.py,sha256=FfrWWAHHtYv3fGRT1qljyPpAwoHJYfbooT9CfKg-oXI,465
63
- dodal/devices/robot.py,sha256=laLwekoO9RsZzfag_6UGf8NhcGZ5deP4JAutvHqo2KM,5336
64
+ dodal/devices/robot.py,sha256=Pw6k8rFGr2-hkM2TVkQw2Y_dYIdXdXN7QtqjSglkp3g,5289
64
65
  dodal/devices/s4_slit_gaps.py,sha256=j3kgF9WfGFaU9xdUuiAh-QqI5u_vhiAftaDVINt91SM,243
65
66
  dodal/devices/scatterguard.py,sha256=jx03in9QgaThWxD4t1S8_Llent2kWrn_hThJ9KkUWTk,330
66
67
  dodal/devices/scintillator.py,sha256=PlD6cnJ39PTB_e7QrRspPliLYE4kL_K7ziJURzuxgdA,365
67
- dodal/devices/slits.py,sha256=uOyVmbgeygiP6e5Z9t5zMPXLuVEWFfYg9GB3ZU76Tug,600
68
+ dodal/devices/slits.py,sha256=b_7ku2sHlzhMHTvWrwiRwee6ufrbxNX9JB_Z0lvk15o,1105
68
69
  dodal/devices/smargon.py,sha256=tOHb9fjI8ZCIrboiC4OzS2j1QJDOKkAlQ2SORbBmaGo,4708
69
70
  dodal/devices/status.py,sha256=hVrJS1yooQo6PRumRACoIEh-SKBUKxvBlQl-MtLFUMQ,327
70
71
  dodal/devices/synchrotron.py,sha256=wLfClZ1lYQWA_D--UsM3NnKLG8bY8mvVsRYER6ob-Ew,2026
71
- dodal/devices/tetramm.py,sha256=460luDYab-u1QB0CPe7lPihtm9nZxdCDGtLPnXI-XGo,8447
72
+ dodal/devices/tetramm.py,sha256=17uUbwcK7G7RTZ0Q37PgQ8HOot6iMJ_dPGFO8ZblEZM,8455
72
73
  dodal/devices/thawer.py,sha256=4t4yF4VDIrT_tQ8RwjmXe_hDMwVjR8A-4rDkPx19b28,1672
73
74
  dodal/devices/turbo_slit.py,sha256=B6SPXqviMnG-U4PnUF1BdTO0LBKmTuwAUKRbxMiNJXo,1125
74
75
  dodal/devices/undulator.py,sha256=rQjDhrvgf4uXUEO17CiLopNDEagWOgkmpa02BarozDE,5295
75
- dodal/devices/undulator_dcm.py,sha256=4Y1ZgKatBenQgg4DuZnMtKwLDOH2YvUMo1QkFE0aaXs,2432
76
+ dodal/devices/undulator_dcm.py,sha256=zulVn1wvu4-WEpf0BgLiDet58IsaKV7KW6qruAdRR_s,2391
76
77
  dodal/devices/watsonmarlow323_pump.py,sha256=rwU94YE6esgGLYdh-pe8nBo_3tvgp6brrrbPDrqp5_M,1406
77
78
  dodal/devices/webcam.py,sha256=mef075ynDbzZ4pNAjfxR_9tdTTqF_rM7hAOVEEOV-Do,2408
78
79
  dodal/devices/xbpm_feedback.py,sha256=j8MHhhE0feoe6R54zPKqS5EbQ0bEDR-nOpLHzHhnHHQ,1156
79
- dodal/devices/zebra.py,sha256=p191eIGfmwM2EE1YJn6rRgChim2kqXl2KIYbMPUSOvg,9474
80
+ dodal/devices/zebra.py,sha256=sPMAKaZOrBHQy5V9ue4-TKE9r29OG8nTZCzQQC7OMFQ,9637
80
81
  dodal/devices/zebra_controlled_shutter.py,sha256=5-SH5HoXp_6P-xAtfDFJKQq6mBDwreubuCULSz78fgw,1852
81
82
  dodal/devices/areadetector/plugins/CAM.py,sha256=sZzJm5Ez3eWfXZi_EB67wluhZmMQm1UyOc2bJFfzd1U,964
82
83
  dodal/devices/areadetector/plugins/MJPG.py,sha256=QTsxCoWbofNpLMGPoOR2hWoM33KyntuLepbF0YmX0KE,3031
84
+ dodal/devices/attenuator/attenuator.py,sha256=eHJpM-E4XQfzy1mxGRk754y3n9q6i3youkCqQg_6SUM,3986
85
+ dodal/devices/attenuator/filter.py,sha256=ZoPsTWXjllyMtKBdSIFLB7Cbc88rGof5k3ymL13VczE,422
86
+ dodal/devices/attenuator/filter_selections.py,sha256=lcmTprCXgSggp2L6uQ6YU0xLMljXvbspAug-WWKCXks,1410
87
+ dodal/devices/current_amplifiers/__init__.py,sha256=-MhT-t-GJ83rrvTDBCoWub_NKYkRtu4sEj8-y5XZBP0,782
88
+ dodal/devices/current_amplifiers/current_amplifier.py,sha256=WwMD8WN479-4nfWoN30R2fWzONlM3haQ2uLMmN2JWRQ,2776
89
+ dodal/devices/current_amplifiers/current_amplifier_detector.py,sha256=IPAMsJpBiI_JP9szTnrN0ejX1Meq5c-29JTeKe96x1U,3961
90
+ dodal/devices/current_amplifiers/femto.py,sha256=gKr5884emKoF-8qyjX_LA5cDjaesLJIdF_AG5wfv9Bo,4572
91
+ dodal/devices/current_amplifiers/sr570.py,sha256=-BT0mLf2phZTpFqjc_CCWd2X0Z-Ucey4KwNwLQs3eZU,7660
92
+ dodal/devices/current_amplifiers/struck_scaler_counter.py,sha256=lMKClJsxsWFX-dtdDN99N6IUHMKcoGlna54wUTYVVmE,2591
83
93
  dodal/devices/detector/__init__.py,sha256=-RdACL3tzc3lLArWOoGNje48UUlv2fElOmGOz9yOuO0,317
84
- dodal/devices/detector/det_dim_constants.py,sha256=LNrVMd0DbFEcnyNFmXosCP-VYaZ71Ajuv6inwo4Mg3U,2299
94
+ dodal/devices/detector/det_dim_constants.py,sha256=arBWvzMwybatdSiCMAiwB4Bq1dX-wkLi54xPPfTfQhY,2772
85
95
  dodal/devices/detector/det_dist_to_beam_converter.py,sha256=7keoqZYfvgayePVx97lHYpcFRTJnQOfAk_PYP4EZTZQ,1951
86
96
  dodal/devices/detector/det_resolution.py,sha256=aQkKp24LpRGiwzPAQM3wLVa4ANw32HdrKc2kftHfKQA,3253
87
97
  dodal/devices/detector/detector.py,sha256=syzkl52kGaMINXCXEviFuYPbgNatm5tioVPDmjgro8s,4768
88
98
  dodal/devices/detector/detector_motion.py,sha256=UGDQriDWRluDZOZh1mDX9w_fPjMD-_BGe11kA36Kezs,1616
89
99
  dodal/devices/i03/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- dodal/devices/i04/transfocator.py,sha256=uieByXIj0JRbmvMB_om5NOAEbEJkzfkCD24bl2aEo1g,3154
100
+ dodal/devices/i03/beamstop.py,sha256=D1-QeGNpNlUE1qtFz-XxgzQGZbvM5bdb09f69yDB7U0,2802
101
+ dodal/devices/i04/transfocator.py,sha256=YrQYSHu9MNI6t4SUg5a-95h7Eh4iateSQm-Rk50chqI,3841
91
102
  dodal/devices/i10/i10_apple2.py,sha256=pEZes8wVCPHiOOcuVhEtqPvtnyphMxqbdp39mDp6xXQ,13165
92
- dodal/devices/i10/i10_setting_data.py,sha256=Pc78L9asOLot9WmKcxkxpaefB3h4FeKIolHcGO4JnOU,161
103
+ dodal/devices/i10/i10_setting_data.py,sha256=69XWgE-YNTiW7C3t67MNcTL5JDDhOo7h-X7DCTpFE5g,164
104
+ dodal/devices/i10/mirrors.py,sha256=E0M5keGI3LGaDHyXQkCCyj6xmixNY1xTSkIaaYwtnP8,794
105
+ dodal/devices/i10/slits.py,sha256=4X50bGiJhTIHxhsOrv-8DATBkQPwQgEaFMNa2OsPrFY,1201
106
+ dodal/devices/i10/rasor/rasor_current_amp.py,sha256=hImaPI3veKiS5YVfYwv-qrQ1AYNBjFVxG_MwTQqtkcc,2368
107
+ dodal/devices/i10/rasor/rasor_motors.py,sha256=0w31rKDuzRL-9tGbLDj0JZljaDjfXvKHQyzMs6fc3sw,1653
108
+ dodal/devices/i10/rasor/rasor_scaler_cards.py,sha256=wchXaIAWKLg_K14Zez4ZUmYLLk5pqL_QXegYLQO_6AY,463
93
109
  dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
110
  dodal/devices/i22/dcm.py,sha256=SQDh-Sj1OvplHZ9yTWblJwv8PJrUqxseDPupZOWmcLo,4701
95
111
  dodal/devices/i22/fswitch.py,sha256=LSMoo9aDkH0SLcojbUh2NxTWIpUXHZxauTqThc3XtSk,3073
@@ -99,8 +115,8 @@ dodal/devices/i24/aperture.py,sha256=XlnOyQsvdTom1dJHVUg8CUSthq3jlBlZFOUaa9b1eZ4
99
115
  dodal/devices/i24/beam_center.py,sha256=c5NRCBjhg9hMjznNMDipIq0M8-T8yM78IzhcRdpNtGw,470
100
116
  dodal/devices/i24/beamstop.py,sha256=89ncXUisia1rn1Faf5iWg3k0QW6Rm99j1vq9A8l9Xv8,1221
101
117
  dodal/devices/i24/dcm.py,sha256=Q3qqlgsiLJga2cgI8L4jczjyUgQixJh6QWg7shrFpTQ,1988
102
- dodal/devices/i24/dual_backlight.py,sha256=mhbM4CzfjWQ883ebnG4oP1PLa1I4BlR30s-Ly5nXXb0,2023
103
- dodal/devices/i24/focus_mirrors.py,sha256=Z5ZSJeKdHa8vGlUNxzZz9fe6pQ1uJUWX6JFHbfPO1JQ,1845
118
+ dodal/devices/i24/dual_backlight.py,sha256=CbQ9mYUNhhozVdNXqR5ac73tEIAWT2RnEpRwXB3EFog,2049
119
+ dodal/devices/i24/focus_mirrors.py,sha256=HO3B4yjV-HMvjkgFd2xTvXft75Qj4lN8d0RNg6HJ4Lo,1857
104
120
  dodal/devices/i24/i24_detector_motion.py,sha256=_HgdsZqFYY0tKqUgMzViHaPEUFXL3WlXXioGvDehRUw,364
105
121
  dodal/devices/i24/pilatus_metadata.py,sha256=fV8AQSBYGx1Qc91Rqj8VhcFPqPLqLCePNpDdmhcrTYM,1827
106
122
  dodal/devices/i24/pmac.py,sha256=lz9FYU_8YN8cC51ddTzdxcUA7MCVTA_ho3P0CHJ9zCo,6837
@@ -119,7 +135,7 @@ dodal/devices/oav/snapshots/grid_overlay.py,sha256=CdvCdTKMCiwMwxm2lV28KpcIUSXls
119
135
  dodal/devices/oav/snapshots/snapshot_with_beam_centre.py,sha256=J77RfE3AGTLNdWc6hvsRn2DUdupzuk_FTDGvdP0jqbU,1962
120
136
  dodal/devices/oav/snapshots/snapshot_with_grid.py,sha256=EBoCtr1NmOKye2yQHqbTBxSg-DsEKFeyBtMFmOeGPRs,2269
121
137
  dodal/devices/p99/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
122
- dodal/devices/p99/sample_stage.py,sha256=B795PAcvrtHo3AZexPyke8R7t-g-0Vr3BhO0fQz_wF8,1189
138
+ dodal/devices/p99/sample_stage.py,sha256=DvHU556Gp0wFiufZiwY3o2W4xmsCL5uSwNnhd8HPAnc,528
123
139
  dodal/devices/training_rig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
140
  dodal/devices/training_rig/sample_stage.py,sha256=jktTp837ij8wor5LidE3AajCk95L7DebJotMlO7QwTE,355
125
141
  dodal/devices/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -128,13 +144,13 @@ dodal/devices/util/epics_util.py,sha256=A8iNL79PnxntuxPTKA9oLGaDRKhnXaaeAVJwS6FN
128
144
  dodal/devices/util/lookup_tables.py,sha256=Bk-wZk7JO5_j_8gbot-8reirVqxvFUg9_SIqEIOVZu0,2025
129
145
  dodal/devices/util/motor_utils.py,sha256=pNY-aUk9LxaIWeDr5rpMS6udiB9j19wcCXkNDLp1uA0,257
130
146
  dodal/devices/util/save_panda.py,sha256=PHFlkerBhkkU0-o5dNEdi2P95_jD9Lk8yYgaqn9R97o,2538
131
- dodal/devices/util/test_utils.py,sha256=VrSFFGLNKOcCAsWFMZOxwhng3wGR5kV8NqqnKfj8Vuw,562
132
- dodal/devices/xspress3/xspress3.py,sha256=pD46vyjbblrzE3xhP2ZGcStmN06cp41gSOLuff_bQTs,4636
147
+ dodal/devices/util/test_utils.py,sha256=x0QVKVeST4T-wpsVSSm-169MyNRXlmybVWnPTefv1as,565
148
+ dodal/devices/xspress3/xspress3.py,sha256=75RdPuHpES4Xi-Lcywz0XUhaN2G3vZSoc-dzgcxfNvs,4636
133
149
  dodal/devices/xspress3/xspress3_channel.py,sha256=w8tAx2lz5kJ_LeJ_eb_4o--Dtt8MRijsYNgDG6oEIVg,1626
134
150
  dodal/devices/zocalo/__init__.py,sha256=dRAZ9o7B9TACqyE7aanT3yzvqWtt019YgV5ZJY7Ylso,517
135
151
  dodal/devices/zocalo/zocalo_constants.py,sha256=vu7Xjz7UNEpBUWEEBxDvP4bVFkZIN6NLGfQDpWbCjH8,98
136
- dodal/devices/zocalo/zocalo_interaction.py,sha256=8V9rAHYgdrFlPURnsxl5pLheEZemsm8cqMpv0E2fOS8,3555
137
- dodal/devices/zocalo/zocalo_results.py,sha256=Mpg8zUPdq5yL9dWODP3KT_pd7kTALM1HSEfhZ43FAp0,15273
152
+ dodal/devices/zocalo/zocalo_interaction.py,sha256=GFukU9xqagQtVSDg5BrL23jxl1w8wjs4b4NLLqdFfpk,3584
153
+ dodal/devices/zocalo/zocalo_results.py,sha256=MCHrhfiD6MGUak3MGLghoKOBskDncVufKx1pT5NJbHQ,16438
138
154
  dodal/parameters/experiment_parameter_base.py,sha256=O7JamfuJ5cYHkPf9tsHJPqn-OMHTAGouigvM1cDFehE,313
139
155
  dodal/plan_stubs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
140
156
  dodal/plan_stubs/check_topup.py,sha256=3gyLHfHNQBCgEWuAg4QE-ONx7y2Do1vVv5HP8ss0Z1I,5371
@@ -143,10 +159,10 @@ dodal/plan_stubs/motor_utils.py,sha256=4c93U_WgjfmX12uNiztVW2oKxGVWa_SKQdJYCUNms
143
159
  dodal/plan_stubs/wrapped.py,sha256=nriHKX4BF010CmrhdoUhY3-txClW5W8TPLz64kE_AXU,4533
144
160
  dodal/plans/__init__.py,sha256=nH1jNxw3DzDMg9O8Uda0kqKIalRVEWBrq07OLY6Ey38,93
145
161
  dodal/plans/scanspec.py,sha256=Q0AcvTKRT401iGMRDSqK-D523UX5_ofiVMZ_rNXKOx8,2074
146
- dodal/plans/wrapped.py,sha256=Cr2iOpQCuk2ORKo5CZOh-zbQXAjoTfaLrfm7r1--GhU,2098
147
- dls_dodal-1.36.2.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
148
- dls_dodal-1.36.2.dist-info/METADATA,sha256=CWBsjskEIuoboOXY_f3RJ4xuoDWdR5c9RhDjsuqNL3w,16655
149
- dls_dodal-1.36.2.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
150
- dls_dodal-1.36.2.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
151
- dls_dodal-1.36.2.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
152
- dls_dodal-1.36.2.dist-info/RECORD,,
162
+ dodal/plans/wrapped.py,sha256=BPMw__RcWvk9v5XnhMsi9_k4KsDEbmXogzD2n1ecbUg,2098
163
+ dls_dodal-1.37.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
164
+ dls_dodal-1.37.0.dist-info/METADATA,sha256=HmPwH3laIqDE6a89MPQeRI_EeC-Oun96q4gGK8vV-AE,16651
165
+ dls_dodal-1.37.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
166
+ dls_dodal-1.37.0.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
167
+ dls_dodal-1.37.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
168
+ dls_dodal-1.37.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
dodal/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '1.36.2'
16
- __version_tuple__ = version_tuple = (1, 36, 2)
15
+ __version__ = version = '1.37.0'
16
+ __version_tuple__ = version_tuple = (1, 37, 0)
@@ -0,0 +1,37 @@
1
+ """Beamline i02-1 is also known as VMXm, or I02J"""
2
+
3
+ from dodal.common.beamlines.beamline_utils import (
4
+ device_factory,
5
+ )
6
+ from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
7
+ from dodal.devices.attenuator.attenuator import EnumFilterAttenuator
8
+ from dodal.devices.attenuator.filter_selections import (
9
+ I02_1FilterFourSelections,
10
+ I02_1FilterOneSelections,
11
+ I02_1FilterThreeSelections,
12
+ I02_1FilterTwoSelections,
13
+ )
14
+ from dodal.log import set_beamline as set_log_beamline
15
+ from dodal.utils import BeamlinePrefix, get_beamline_name
16
+
17
+ BL = get_beamline_name("i02-1")
18
+ PREFIX = BeamlinePrefix(BL, suffix="J")
19
+ set_log_beamline(BL)
20
+ set_utils_beamline(BL)
21
+
22
+
23
+ @device_factory()
24
+ def attenuator() -> EnumFilterAttenuator:
25
+ """Get the i02-1 attenuator device, instantiate it if it hasn't already been.
26
+ If this is called when already instantiated in i02-1, it will return the existing object.
27
+ """
28
+
29
+ return EnumFilterAttenuator(
30
+ f"{PREFIX.beamline_prefix}-OP-ATTN-01:",
31
+ (
32
+ I02_1FilterOneSelections,
33
+ I02_1FilterTwoSelections,
34
+ I02_1FilterThreeSelections,
35
+ I02_1FilterFourSelections,
36
+ ),
37
+ )
dodal/beamlines/i03.py CHANGED
@@ -13,7 +13,7 @@ from dodal.devices.aperturescatterguard import (
13
13
  ApertureScatterguard,
14
14
  load_positions_from_beamline_parameters,
15
15
  )
16
- from dodal.devices.attenuator import Attenuator
16
+ from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
17
17
  from dodal.devices.backlight import Backlight
18
18
  from dodal.devices.cryostream import CryoStream
19
19
  from dodal.devices.dcm import DCM
@@ -24,6 +24,7 @@ from dodal.devices.eiger import EigerDetector
24
24
  from dodal.devices.fast_grid_scan import PandAFastGridScan, ZebraFastGridScan
25
25
  from dodal.devices.flux import Flux
26
26
  from dodal.devices.focusing_mirror import FocusingMirrorWithStripes, MirrorVoltages
27
+ from dodal.devices.i03.beamstop import Beamstop
27
28
  from dodal.devices.motors import XYZPositioner
28
29
  from dodal.devices.oav.oav_detector import OAV
29
30
  from dodal.devices.oav.oav_parameters import OAVConfig
@@ -80,12 +81,12 @@ def aperture_scatterguard(
80
81
 
81
82
  def attenuator(
82
83
  wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
83
- ) -> Attenuator:
84
+ ) -> BinaryFilterAttenuator:
84
85
  """Get the i03 attenuator device, instantiate it if it hasn't already been.
85
86
  If this is called when already instantiated in i03, it will return the existing object.
86
87
  """
87
88
  return device_instantiation(
88
- Attenuator,
89
+ BinaryFilterAttenuator,
89
90
  "attenuator",
90
91
  "-EA-ATTN-01:",
91
92
  wait_for_connection,
@@ -93,6 +94,22 @@ def attenuator(
93
94
  )
94
95
 
95
96
 
97
+ def beamstop(
98
+ wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
99
+ ) -> Beamstop:
100
+ """Get the i03 beamstop device, instantiate it if it hasn't already been.
101
+ If this is called when already instantiated in i03, it will return the existing object.
102
+ """
103
+ return device_instantiation(
104
+ Beamstop,
105
+ "beamstop",
106
+ "-MO-BS-01:",
107
+ wait_for_connection,
108
+ fake_with_ophyd_sim,
109
+ beamline_parameters=get_beamline_parameters(),
110
+ )
111
+
112
+
96
113
  def dcm(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -> DCM:
97
114
  """Get the i03 DCM device, instantiate it if it hasn't already been.
98
115
  If this is called when already instantiated in i03, it will return the existing object.
dodal/beamlines/i04.py CHANGED
@@ -6,7 +6,7 @@ from dodal.devices.aperturescatterguard import (
6
6
  ApertureScatterguard,
7
7
  load_positions_from_beamline_parameters,
8
8
  )
9
- from dodal.devices.attenuator import Attenuator
9
+ from dodal.devices.attenuator.attenuator import BinaryFilterAttenuator
10
10
  from dodal.devices.backlight import Backlight
11
11
  from dodal.devices.dcm import DCM
12
12
  from dodal.devices.detector import DetectorParams
@@ -138,12 +138,12 @@ def sample_shutter(
138
138
 
139
139
  def attenuator(
140
140
  wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
141
- ) -> Attenuator:
141
+ ) -> BinaryFilterAttenuator:
142
142
  """Get the i04 attenuator device, instantiate it if it hasn't already been.
143
143
  If this is called when already instantiated in i04, it will return the existing object.
144
144
  """
145
145
  return device_instantiation(
146
- Attenuator,
146
+ BinaryFilterAttenuator,
147
147
  "attenuator",
148
148
  "-EA-ATTN-01:",
149
149
  wait_for_connection,
dodal/beamlines/i10.py CHANGED
@@ -1,12 +1,13 @@
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,
7
7
  UndulatorJawPhase,
8
8
  UndulatorPhaseAxes,
9
9
  )
10
+ from dodal.devices.current_amplifiers import CurrentAmpDet
10
11
  from dodal.devices.i10.i10_apple2 import (
11
12
  I10Apple2,
12
13
  I10Apple2PGM,
@@ -14,13 +15,27 @@ from dodal.devices.i10.i10_apple2 import (
14
15
  LinearArbitraryAngle,
15
16
  )
16
17
  from dodal.devices.i10.i10_setting_data import I10Grating
18
+ from dodal.devices.i10.mirrors import PiezoMirror
19
+ from dodal.devices.i10.rasor.rasor_current_amp import RasorFemto, RasorSR570
20
+ from dodal.devices.i10.rasor.rasor_motors import (
21
+ DetSlits,
22
+ Diffractometer,
23
+ PaStage,
24
+ PinHole,
25
+ )
26
+ from dodal.devices.i10.rasor.rasor_scaler_cards import RasorScalerCard1
27
+ from dodal.devices.i10.slits import I10PrimarySlits, I10Slits
28
+ from dodal.devices.motors import XYZPositioner
17
29
  from dodal.devices.pgm import PGM
30
+ from dodal.devices.slits import MinimalSlits
18
31
  from dodal.log import set_beamline as set_log_beamline
19
32
  from dodal.utils import BeamlinePrefix, get_beamline_name
20
33
 
21
34
  BL = get_beamline_name("i10")
22
35
  set_log_beamline(BL)
23
36
  set_utils_beamline(BL)
37
+ PREFIX = BeamlinePrefix(BL)
38
+
24
39
 
25
40
  LOOK_UPTABLE_DIR = "/dls_sw/i10/software/gda/workspace_git/gda-diamond.git/configurations/i10-shared/lookupTables/"
26
41
  """
@@ -39,7 +54,7 @@ def idd_gap(
39
54
  return device_instantiation(
40
55
  device_factory=UndulatorGap,
41
56
  name="idd_gap",
42
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
57
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
43
58
  wait=wait_for_connection,
44
59
  fake=fake_with_ophyd_sim,
45
60
  bl_prefix=False,
@@ -52,7 +67,7 @@ def idd_phase_axes(
52
67
  return device_instantiation(
53
68
  device_factory=UndulatorPhaseAxes,
54
69
  name="idd_phase_axes",
55
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
70
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
56
71
  top_outer="RPQ1",
57
72
  top_inner="RPQ2",
58
73
  btm_inner="RPQ3",
@@ -69,7 +84,7 @@ def idd_jaw(
69
84
  return device_instantiation(
70
85
  device_factory=UndulatorJawPhase,
71
86
  name="idd_jaw",
72
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-01:",
87
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-01:",
73
88
  move_pv="RPQ1",
74
89
  wait=wait_for_connection,
75
90
  fake=fake_with_ophyd_sim,
@@ -83,7 +98,7 @@ def idu_gap(
83
98
  return device_instantiation(
84
99
  device_factory=UndulatorGap,
85
100
  name="idu_gap",
86
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-21:",
101
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
87
102
  wait=wait_for_connection,
88
103
  fake=fake_with_ophyd_sim,
89
104
  bl_prefix=False,
@@ -96,7 +111,7 @@ def idu_phase_axes(
96
111
  return device_instantiation(
97
112
  device_factory=UndulatorPhaseAxes,
98
113
  name="idu_phase_axes",
99
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-21:",
114
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
100
115
  top_outer="RPQ1",
101
116
  top_inner="RPQ2",
102
117
  btm_inner="RPQ3",
@@ -113,7 +128,7 @@ def idu_jaw(
113
128
  return device_instantiation(
114
129
  device_factory=UndulatorJawPhase,
115
130
  name="idu_jaw",
116
- prefix=f"{BeamlinePrefix(BL).insertion_prefix}-MO-SERVC-21:",
131
+ prefix=f"{PREFIX.insertion_prefix}-MO-SERVC-21:",
117
132
  move_pv="RPQ1",
118
133
  wait=wait_for_connection,
119
134
  fake=fake_with_ophyd_sim,
@@ -255,3 +270,160 @@ def idd_la_angle(
255
270
  wait=wait_for_connection,
256
271
  fake=fake_with_ophyd_sim,
257
272
  )
273
+
274
+
275
+ @device_factory()
276
+ def first_mirror() -> PiezoMirror:
277
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-COL-01:")
278
+
279
+
280
+ @device_factory()
281
+ def switching_mirror() -> PiezoMirror:
282
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-SWTCH-01:")
283
+
284
+
285
+ @device_factory()
286
+ def slit_1() -> I10PrimarySlits:
287
+ return I10PrimarySlits(
288
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-01:",
289
+ )
290
+
291
+
292
+ @device_factory()
293
+ def slit_2() -> I10Slits:
294
+ return I10Slits(
295
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-02:",
296
+ )
297
+
298
+
299
+ @device_factory()
300
+ def slit_3() -> I10Slits:
301
+ return I10Slits(
302
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-03:",
303
+ )
304
+
305
+
306
+ """Rasor devices"""
307
+
308
+
309
+ @device_factory()
310
+ def focusing_mirror() -> PiezoMirror:
311
+ return PiezoMirror(prefix=f"{PREFIX.beamline_prefix}-OP-FOCS-01:")
312
+
313
+
314
+ @device_factory()
315
+ def slit_4() -> MinimalSlits:
316
+ return MinimalSlits(
317
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-04:",
318
+ x_gap="XSIZE",
319
+ y_gap="YSIZE",
320
+ )
321
+
322
+
323
+ @device_factory()
324
+ def slit_5() -> I10Slits:
325
+ return I10Slits(
326
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-05:",
327
+ )
328
+
329
+
330
+ @device_factory()
331
+ def slit_6() -> I10Slits:
332
+ return I10Slits(
333
+ prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:",
334
+ )
335
+
336
+
337
+ "Rasor devices"
338
+
339
+
340
+ @device_factory()
341
+ def pin_hole() -> PinHole:
342
+ return PinHole(prefix="ME01D-EA-PINH-01:")
343
+
344
+
345
+ @device_factory()
346
+ def det_slits() -> DetSlits:
347
+ return DetSlits(prefix="ME01D-MO-APTR-0")
348
+
349
+
350
+ @device_factory()
351
+ def diffractometer() -> Diffractometer:
352
+ return Diffractometer(prefix="ME01D-MO-DIFF-01:")
353
+
354
+
355
+ @device_factory()
356
+ def pa_stage() -> PaStage:
357
+ return PaStage(prefix="ME01D-MO-POLAN-01:")
358
+
359
+
360
+ @device_factory()
361
+ def simple_stage() -> XYZPositioner:
362
+ return XYZPositioner(prefix="ME01D-MO-CRYO-01:")
363
+
364
+
365
+ @device_factory()
366
+ def rasor_femto() -> RasorFemto:
367
+ return RasorFemto(
368
+ prefix="ME01D-EA-IAMP",
369
+ )
370
+
371
+
372
+ @device_factory()
373
+ def rasor_det_scalers() -> RasorScalerCard1:
374
+ return RasorScalerCard1(prefix="ME01D-EA-SCLR-01:SCALER1")
375
+
376
+
377
+ @device_factory()
378
+ def rasor_sr570() -> RasorSR570:
379
+ return RasorSR570(
380
+ prefix="ME01D-EA-IAMP",
381
+ )
382
+
383
+
384
+ @device_factory()
385
+ def rasor_sr570_pa_scaler_det() -> CurrentAmpDet:
386
+ return CurrentAmpDet(
387
+ current_amp=rasor_sr570().ca1,
388
+ counter=rasor_det_scalers().det,
389
+ )
390
+
391
+
392
+ @device_factory()
393
+ def rasor_femto_pa_scaler_det() -> CurrentAmpDet:
394
+ return CurrentAmpDet(
395
+ current_amp=rasor_femto().ca1,
396
+ counter=rasor_det_scalers().det,
397
+ )
398
+
399
+
400
+ @device_factory()
401
+ def rasor_sr570_fluo_scaler_det() -> CurrentAmpDet:
402
+ return CurrentAmpDet(
403
+ current_amp=rasor_sr570().ca2,
404
+ counter=rasor_det_scalers().fluo,
405
+ )
406
+
407
+
408
+ @device_factory()
409
+ def rasor_femto_fluo_scaler_det() -> CurrentAmpDet:
410
+ return CurrentAmpDet(
411
+ current_amp=rasor_femto().ca2,
412
+ counter=rasor_det_scalers().fluo,
413
+ )
414
+
415
+
416
+ @device_factory()
417
+ def rasor_sr570_drain_scaler_det() -> CurrentAmpDet:
418
+ return CurrentAmpDet(
419
+ current_amp=rasor_sr570().ca3,
420
+ counter=rasor_det_scalers().drain,
421
+ )
422
+
423
+
424
+ @device_factory()
425
+ def rasor_femto_drain_scaler_det() -> CurrentAmpDet:
426
+ return CurrentAmpDet(
427
+ current_amp=rasor_femto().ca3,
428
+ counter=rasor_det_scalers().drain,
429
+ )
dodal/beamlines/i22.py CHANGED
@@ -16,6 +16,7 @@ from dodal.common.crystal_metadata import (
16
16
  make_crystal_metadata_from_material,
17
17
  )
18
18
  from dodal.common.visit import RemoteDirectoryServiceClient, StaticVisitPathProvider
19
+ from dodal.devices.bimorph_mirror import BimorphMirror
19
20
  from dodal.devices.focusing_mirror import FocusingMirror
20
21
  from dodal.devices.i22.dcm import DoubleCrystalMonochromator
21
22
  from dodal.devices.i22.fswitch import FSwitch
@@ -125,6 +126,20 @@ def hfm() -> FocusingMirror:
125
126
  )
126
127
 
127
128
 
129
+ @device_factory()
130
+ def bimorph_hfm() -> BimorphMirror:
131
+ return BimorphMirror(
132
+ prefix=f"{PREFIX.beamline_prefix}-OP-KBM-01:G0:", number_of_channels=12
133
+ )
134
+
135
+
136
+ @device_factory()
137
+ def bimorph_vfm() -> BimorphMirror:
138
+ return BimorphMirror(
139
+ prefix=f"{PREFIX.beamline_prefix}-OP-KBM-01:G1:", number_of_channels=16
140
+ )
141
+
142
+
128
143
  @device_factory()
129
144
  def dcm() -> DoubleCrystalMonochromator:
130
145
  return DoubleCrystalMonochromator(
dodal/beamlines/i24.py CHANGED
@@ -1,6 +1,6 @@
1
1
  from dodal.common.beamlines.beamline_utils import BL, device_instantiation
2
2
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
3
- from dodal.devices.attenuator import ReadOnlyAttenuator
3
+ from dodal.devices.attenuator.attenuator import ReadOnlyAttenuator
4
4
  from dodal.devices.detector import DetectorParams
5
5
  from dodal.devices.eiger import EigerDetector
6
6
  from dodal.devices.hutch_shutter import HutchShutter
@@ -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/gda_9_34/config/xml/jCameraManZoomLevels.xml"
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