dls-dodal 1.36.3__py3-none-any.whl → 1.38.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 (58) hide show
  1. {dls_dodal-1.36.3.dist-info → dls_dodal-1.38.0.dist-info}/METADATA +4 -3
  2. {dls_dodal-1.36.3.dist-info → dls_dodal-1.38.0.dist-info}/RECORD +58 -38
  3. {dls_dodal-1.36.3.dist-info → dls_dodal-1.38.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 +34 -5
  7. dodal/beamlines/i04.py +16 -5
  8. dodal/beamlines/i10.py +105 -0
  9. dodal/beamlines/i13_1.py +20 -2
  10. dodal/beamlines/i22.py +15 -0
  11. dodal/beamlines/i24.py +14 -2
  12. dodal/beamlines/p99.py +6 -2
  13. dodal/beamlines/training_rig.py +10 -1
  14. dodal/common/crystal_metadata.py +3 -3
  15. dodal/common/udc_directory_provider.py +3 -1
  16. dodal/devices/aperturescatterguard.py +3 -0
  17. dodal/devices/{attenuator.py → attenuator/attenuator.py} +29 -1
  18. dodal/devices/attenuator/filter.py +11 -0
  19. dodal/devices/attenuator/filter_selections.py +72 -0
  20. dodal/devices/bimorph_mirror.py +151 -0
  21. dodal/devices/current_amplifiers/__init__.py +34 -0
  22. dodal/devices/current_amplifiers/current_amplifier.py +103 -0
  23. dodal/devices/current_amplifiers/current_amplifier_detector.py +109 -0
  24. dodal/devices/current_amplifiers/femto.py +143 -0
  25. dodal/devices/current_amplifiers/sr570.py +214 -0
  26. dodal/devices/current_amplifiers/struck_scaler_counter.py +79 -0
  27. dodal/devices/detector/det_dim_constants.py +15 -0
  28. dodal/devices/eiger_odin.py +3 -3
  29. dodal/devices/fast_grid_scan.py +8 -3
  30. dodal/devices/flux.py +10 -3
  31. dodal/devices/i03/beamstop.py +85 -0
  32. dodal/devices/i04/transfocator.py +67 -53
  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/i13_1/__init__.py +0 -0
  37. dodal/devices/i13_1/merlin.py +33 -0
  38. dodal/devices/i13_1/merlin_controller.py +52 -0
  39. dodal/devices/i13_1/merlin_io.py +17 -0
  40. dodal/devices/i24/beam_center.py +1 -1
  41. dodal/devices/p45.py +31 -20
  42. dodal/devices/p99/sample_stage.py +2 -28
  43. dodal/devices/robot.py +2 -2
  44. dodal/devices/s4_slit_gaps.py +8 -4
  45. dodal/devices/undulator_dcm.py +9 -11
  46. dodal/devices/util/lookup_tables.py +14 -10
  47. dodal/devices/zebra/__init__.py +0 -0
  48. dodal/devices/{zebra.py → zebra/zebra.py} +9 -33
  49. dodal/devices/zebra/zebra_constants_mapping.py +96 -0
  50. dodal/devices/zocalo/zocalo_interaction.py +2 -1
  51. dodal/devices/zocalo/zocalo_results.py +22 -2
  52. dodal/log.py +2 -2
  53. dodal/plans/wrapped.py +3 -3
  54. {dls_dodal-1.36.3.dist-info → dls_dodal-1.38.0.dist-info}/LICENSE +0 -0
  55. {dls_dodal-1.36.3.dist-info → dls_dodal-1.38.0.dist-info}/entry_points.txt +0 -0
  56. {dls_dodal-1.36.3.dist-info → dls_dodal-1.38.0.dist-info}/top_level.txt +0 -0
  57. /dodal/devices/{zebra_controlled_shutter.py → zebra/zebra_controlled_shutter.py} +0 -0
  58. /dodal/{devices/util → plans}/save_panda.py +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.3
3
+ Version: 1.38.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
@@ -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
@@ -237,6 +237,7 @@ Requires-Dist: scanspec>=0.7.3
237
237
  Provides-Extra: dev
238
238
  Requires-Dist: black; extra == "dev"
239
239
  Requires-Dist: diff-cover; extra == "dev"
240
+ Requires-Dist: import-linter; extra == "dev"
240
241
  Requires-Dist: mypy; extra == "dev"
241
242
  Requires-Dist: myst-parser; extra == "dev"
242
243
  Requires-Dist: ophyd_async[sim]; extra == "dev"
@@ -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=zCUFph3NXnWsNVGniqwz8NKCDOFFa-siapasQGlkWD4,413
3
+ dodal/_version.py,sha256=j09VNHKdlg-z35f-tcp_3JKPr5SFOeDelj6hrHQ_smI,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=4VrbkRFi1HdNrXN_ItMWOROrx1BRbid-ZbtwcgMWP9w,9129
16
- dodal/beamlines/i13_1.py,sha256=csXHrdwUh4sXTmb4X6ZiiSS_XxRkNShsVoBMxYI6rG0,1833
13
+ dodal/beamlines/i02_1.py,sha256=d2IyqFMgeaSEyZYm7GMSjTKr7_02SakyC_oARx-XwnY,1204
14
+ dodal/beamlines/i03.py,sha256=kAyStqsODSzg0kr27X63jm_nikWMCserMjJEOzRH2F4,19002
15
+ dodal/beamlines/i04.py,sha256=3_cMBAnRuLkzC9ELf0-a-Rq2c76YPNTIJomHqIjys5U,14926
16
+ dodal/beamlines/i10.py,sha256=lkn_xg0pt-vFuWkUGyl62A0xT-Rzs71JztJ1EeQkMi0,11487
17
+ dodal/beamlines/i13_1.py,sha256=MYl2TLomSXvAdEAEMWbNfEIcX46elaugbKtkehLvB8Q,2371
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=bV1OqQP0KdJDM5SLsru6TGYLSxwXSy2GExpG44Qfo0w,8539
21
+ dodal/beamlines/i24.py,sha256=tao1YIZS0amhS8EHYOQ7-22twmPujC8fAvcGncDsm0A,8851
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/training_rig.py,sha256=qAsUV4X1hxQFIjuQG92UMwYtE0nu1_hL4cP1zSiCe3Y,1698
24
+ dodal/beamlines/p99.py,sha256=k24QhYpoOHBd0188Fu3wvmpT6dsu8okiIVqVVckdBkw,1063
25
+ dodal/beamlines/training_rig.py,sha256=74lrNa_qNksA1eOsSZnhhcwAXcMJdw4fBc0a-w4IV5M,1897
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,30 +39,30 @@ 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/aperturescatterguard.py,sha256=T0ddbX_SH4Aru5XxhrrhEDQAG4Mzq_sZBMofNIIz8tc,9055
42
43
  dodal/devices/apple2_undulator.py,sha256=ls_qGM_nGsZdo4I_Zs_stFjUc1oZE6zB1puWrV8-2Wg,22470
43
- dodal/devices/attenuator.py,sha256=SEDnnNeUpwBArJbPcwHyr5BwkHO1Jvgsrw1bpFz5u-o,2894
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
- dodal/devices/flux.py,sha256=RtPStHw7Mad0igVKntKWVZfuZn2clokVJqH14HLix6M,198
53
+ dodal/devices/flux.py,sha256=1CDsq9yU2-ho8MfYBl50Tl9ABZwpUBHnV486PQXKNoQ,462
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
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
- dodal/devices/p45.py,sha256=jzBW2fGRhIbGzSRs5Fgupxro6aqE611n1RTcrTTG-yY,1047
60
+ dodal/devices/p45.py,sha256=hNCfWb8xubuHO8uJ5MpHPurp-r1ss7JMgbZQwHVJg-w,1743
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/s4_slit_gaps.py,sha256=j3kgF9WfGFaU9xdUuiAh-QqI5u_vhiAftaDVINt91SM,243
64
+ dodal/devices/robot.py,sha256=Pw6k8rFGr2-hkM2TVkQw2Y_dYIdXdXN7QtqjSglkp3g,5289
65
+ dodal/devices/s4_slit_gaps.py,sha256=4KdarIQoRqX4ry3LUS1Km7fkjUFahA0VuTd2DvYEqQ8,446
65
66
  dodal/devices/scatterguard.py,sha256=jx03in9QgaThWxD4t1S8_Llent2kWrn_hThJ9KkUWTk,330
66
67
  dodal/devices/scintillator.py,sha256=PlD6cnJ39PTB_e7QrRspPliLYE4kL_K7ziJURzuxgdA,365
67
68
  dodal/devices/slits.py,sha256=b_7ku2sHlzhMHTvWrwiRwee6ufrbxNX9JB_Z0lvk15o,1105
@@ -72,33 +73,48 @@ 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=cOcohj57eDKWgd-747EsL1ypPQWrOVc68EB_9D4L8CI,9474
80
- dodal/devices/zebra_controlled_shutter.py,sha256=5-SH5HoXp_6P-xAtfDFJKQq6mBDwreubuCULSz78fgw,1852
81
80
  dodal/devices/areadetector/plugins/CAM.py,sha256=sZzJm5Ez3eWfXZi_EB67wluhZmMQm1UyOc2bJFfzd1U,964
82
81
  dodal/devices/areadetector/plugins/MJPG.py,sha256=QTsxCoWbofNpLMGPoOR2hWoM33KyntuLepbF0YmX0KE,3031
82
+ dodal/devices/attenuator/attenuator.py,sha256=eHJpM-E4XQfzy1mxGRk754y3n9q6i3youkCqQg_6SUM,3986
83
+ dodal/devices/attenuator/filter.py,sha256=ZoPsTWXjllyMtKBdSIFLB7Cbc88rGof5k3ymL13VczE,422
84
+ dodal/devices/attenuator/filter_selections.py,sha256=lcmTprCXgSggp2L6uQ6YU0xLMljXvbspAug-WWKCXks,1410
85
+ dodal/devices/current_amplifiers/__init__.py,sha256=-MhT-t-GJ83rrvTDBCoWub_NKYkRtu4sEj8-y5XZBP0,782
86
+ dodal/devices/current_amplifiers/current_amplifier.py,sha256=WwMD8WN479-4nfWoN30R2fWzONlM3haQ2uLMmN2JWRQ,2776
87
+ dodal/devices/current_amplifiers/current_amplifier_detector.py,sha256=IPAMsJpBiI_JP9szTnrN0ejX1Meq5c-29JTeKe96x1U,3961
88
+ dodal/devices/current_amplifiers/femto.py,sha256=gKr5884emKoF-8qyjX_LA5cDjaesLJIdF_AG5wfv9Bo,4572
89
+ dodal/devices/current_amplifiers/sr570.py,sha256=-BT0mLf2phZTpFqjc_CCWd2X0Z-Ucey4KwNwLQs3eZU,7660
90
+ dodal/devices/current_amplifiers/struck_scaler_counter.py,sha256=lMKClJsxsWFX-dtdDN99N6IUHMKcoGlna54wUTYVVmE,2591
83
91
  dodal/devices/detector/__init__.py,sha256=-RdACL3tzc3lLArWOoGNje48UUlv2fElOmGOz9yOuO0,317
84
- dodal/devices/detector/det_dim_constants.py,sha256=LNrVMd0DbFEcnyNFmXosCP-VYaZ71Ajuv6inwo4Mg3U,2299
92
+ dodal/devices/detector/det_dim_constants.py,sha256=arBWvzMwybatdSiCMAiwB4Bq1dX-wkLi54xPPfTfQhY,2772
85
93
  dodal/devices/detector/det_dist_to_beam_converter.py,sha256=7keoqZYfvgayePVx97lHYpcFRTJnQOfAk_PYP4EZTZQ,1951
86
94
  dodal/devices/detector/det_resolution.py,sha256=aQkKp24LpRGiwzPAQM3wLVa4ANw32HdrKc2kftHfKQA,3253
87
95
  dodal/devices/detector/detector.py,sha256=syzkl52kGaMINXCXEviFuYPbgNatm5tioVPDmjgro8s,4768
88
96
  dodal/devices/detector/detector_motion.py,sha256=UGDQriDWRluDZOZh1mDX9w_fPjMD-_BGe11kA36Kezs,1616
89
97
  dodal/devices/i03/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
- dodal/devices/i04/transfocator.py,sha256=uieByXIj0JRbmvMB_om5NOAEbEJkzfkCD24bl2aEo1g,3154
98
+ dodal/devices/i03/beamstop.py,sha256=D1-QeGNpNlUE1qtFz-XxgzQGZbvM5bdb09f69yDB7U0,2802
99
+ dodal/devices/i04/transfocator.py,sha256=YrQYSHu9MNI6t4SUg5a-95h7Eh4iateSQm-Rk50chqI,3841
91
100
  dodal/devices/i10/i10_apple2.py,sha256=pEZes8wVCPHiOOcuVhEtqPvtnyphMxqbdp39mDp6xXQ,13165
92
101
  dodal/devices/i10/i10_setting_data.py,sha256=69XWgE-YNTiW7C3t67MNcTL5JDDhOo7h-X7DCTpFE5g,164
93
102
  dodal/devices/i10/mirrors.py,sha256=E0M5keGI3LGaDHyXQkCCyj6xmixNY1xTSkIaaYwtnP8,794
94
103
  dodal/devices/i10/slits.py,sha256=4X50bGiJhTIHxhsOrv-8DATBkQPwQgEaFMNa2OsPrFY,1201
104
+ dodal/devices/i10/rasor/rasor_current_amp.py,sha256=hImaPI3veKiS5YVfYwv-qrQ1AYNBjFVxG_MwTQqtkcc,2368
105
+ dodal/devices/i10/rasor/rasor_motors.py,sha256=0w31rKDuzRL-9tGbLDj0JZljaDjfXvKHQyzMs6fc3sw,1653
106
+ dodal/devices/i10/rasor/rasor_scaler_cards.py,sha256=wchXaIAWKLg_K14Zez4ZUmYLLk5pqL_QXegYLQO_6AY,463
107
+ dodal/devices/i13_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
+ dodal/devices/i13_1/merlin.py,sha256=Pi-nEqk6OOv3oOBYVb5lemQJiM03KsFbbR7pBAFg5Wg,982
109
+ dodal/devices/i13_1/merlin_controller.py,sha256=8uf9r-2RwpFy7DPT_rmv6AjfHPF_QyfHhIS0dqX73UM,1673
110
+ dodal/devices/i13_1/merlin_io.py,sha256=0To4dzeg1GNRTlsdKL7RbF2aXFyLlACGh9ZhEvIOhUc,531
95
111
  dodal/devices/i20_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
96
112
  dodal/devices/i22/dcm.py,sha256=SQDh-Sj1OvplHZ9yTWblJwv8PJrUqxseDPupZOWmcLo,4701
97
113
  dodal/devices/i22/fswitch.py,sha256=LSMoo9aDkH0SLcojbUh2NxTWIpUXHZxauTqThc3XtSk,3073
98
114
  dodal/devices/i22/nxsas.py,sha256=a8oJXl5uhkh9zcb9rSZmVooU-SplzzO3EsAaHJZRfrQ,6086
99
115
  dodal/devices/i24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
100
116
  dodal/devices/i24/aperture.py,sha256=XlnOyQsvdTom1dJHVUg8CUSthq3jlBlZFOUaa9b1eZ4,837
101
- dodal/devices/i24/beam_center.py,sha256=c5NRCBjhg9hMjznNMDipIq0M8-T8yM78IzhcRdpNtGw,470
117
+ dodal/devices/i24/beam_center.py,sha256=m6LWsG9e_lhtPfZ8pc_hoLNyTYQQGGdRNav8J_2scTo,483
102
118
  dodal/devices/i24/beamstop.py,sha256=89ncXUisia1rn1Faf5iWg3k0QW6Rm99j1vq9A8l9Xv8,1221
103
119
  dodal/devices/i24/dcm.py,sha256=Q3qqlgsiLJga2cgI8L4jczjyUgQixJh6QWg7shrFpTQ,1988
104
120
  dodal/devices/i24/dual_backlight.py,sha256=CbQ9mYUNhhozVdNXqR5ac73tEIAWT2RnEpRwXB3EFog,2049
@@ -121,22 +137,25 @@ dodal/devices/oav/snapshots/grid_overlay.py,sha256=CdvCdTKMCiwMwxm2lV28KpcIUSXls
121
137
  dodal/devices/oav/snapshots/snapshot_with_beam_centre.py,sha256=J77RfE3AGTLNdWc6hvsRn2DUdupzuk_FTDGvdP0jqbU,1962
122
138
  dodal/devices/oav/snapshots/snapshot_with_grid.py,sha256=EBoCtr1NmOKye2yQHqbTBxSg-DsEKFeyBtMFmOeGPRs,2269
123
139
  dodal/devices/p99/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
- dodal/devices/p99/sample_stage.py,sha256=v2-KSvuxCmpreVUh0p2OLGj6d1MR_li56cvMBWbvF9g,1189
140
+ dodal/devices/p99/sample_stage.py,sha256=DvHU556Gp0wFiufZiwY3o2W4xmsCL5uSwNnhd8HPAnc,528
125
141
  dodal/devices/training_rig/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
142
  dodal/devices/training_rig/sample_stage.py,sha256=jktTp837ij8wor5LidE3AajCk95L7DebJotMlO7QwTE,355
127
143
  dodal/devices/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
144
  dodal/devices/util/adjuster_plans.py,sha256=XpJ1YJKoOCFzj2sonkZYJAdewi3jRaok_2gOmNsfeS0,956
129
145
  dodal/devices/util/epics_util.py,sha256=A8iNL79PnxntuxPTKA9oLGaDRKhnXaaeAVJwS6FNAWA,4687
130
- dodal/devices/util/lookup_tables.py,sha256=Bk-wZk7JO5_j_8gbot-8reirVqxvFUg9_SIqEIOVZu0,2025
146
+ dodal/devices/util/lookup_tables.py,sha256=3gU9cOBhHBu1S6XqXHWNjCNkV7F4Z-eDlDfesvKbMg4,2185
131
147
  dodal/devices/util/motor_utils.py,sha256=pNY-aUk9LxaIWeDr5rpMS6udiB9j19wcCXkNDLp1uA0,257
132
- dodal/devices/util/save_panda.py,sha256=PHFlkerBhkkU0-o5dNEdi2P95_jD9Lk8yYgaqn9R97o,2538
133
148
  dodal/devices/util/test_utils.py,sha256=x0QVKVeST4T-wpsVSSm-169MyNRXlmybVWnPTefv1as,565
134
149
  dodal/devices/xspress3/xspress3.py,sha256=75RdPuHpES4Xi-Lcywz0XUhaN2G3vZSoc-dzgcxfNvs,4636
135
150
  dodal/devices/xspress3/xspress3_channel.py,sha256=w8tAx2lz5kJ_LeJ_eb_4o--Dtt8MRijsYNgDG6oEIVg,1626
151
+ dodal/devices/zebra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ dodal/devices/zebra/zebra.py,sha256=_OA34T9CcgwXxyajVKai2jz4nHVDaEvMkb5eG5eAYKw,9192
153
+ dodal/devices/zebra/zebra_constants_mapping.py,sha256=DCWMvBFvmN90rBpZ4aOVF_hbKm4K6QWubsG811R-MK8,4170
154
+ dodal/devices/zebra/zebra_controlled_shutter.py,sha256=5-SH5HoXp_6P-xAtfDFJKQq6mBDwreubuCULSz78fgw,1852
136
155
  dodal/devices/zocalo/__init__.py,sha256=dRAZ9o7B9TACqyE7aanT3yzvqWtt019YgV5ZJY7Ylso,517
137
156
  dodal/devices/zocalo/zocalo_constants.py,sha256=vu7Xjz7UNEpBUWEEBxDvP4bVFkZIN6NLGfQDpWbCjH8,98
138
- dodal/devices/zocalo/zocalo_interaction.py,sha256=8V9rAHYgdrFlPURnsxl5pLheEZemsm8cqMpv0E2fOS8,3555
139
- dodal/devices/zocalo/zocalo_results.py,sha256=Mpg8zUPdq5yL9dWODP3KT_pd7kTALM1HSEfhZ43FAp0,15273
157
+ dodal/devices/zocalo/zocalo_interaction.py,sha256=GFukU9xqagQtVSDg5BrL23jxl1w8wjs4b4NLLqdFfpk,3584
158
+ dodal/devices/zocalo/zocalo_results.py,sha256=MCHrhfiD6MGUak3MGLghoKOBskDncVufKx1pT5NJbHQ,16438
140
159
  dodal/parameters/experiment_parameter_base.py,sha256=O7JamfuJ5cYHkPf9tsHJPqn-OMHTAGouigvM1cDFehE,313
141
160
  dodal/plan_stubs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
161
  dodal/plan_stubs/check_topup.py,sha256=3gyLHfHNQBCgEWuAg4QE-ONx7y2Do1vVv5HP8ss0Z1I,5371
@@ -144,11 +163,12 @@ dodal/plan_stubs/data_session.py,sha256=33wPwbs0mtMnle0H76mH_RNTc5omld7gNSJ9BvRd
144
163
  dodal/plan_stubs/motor_utils.py,sha256=4c93U_WgjfmX12uNiztVW2oKxGVWa_SKQdJYCUNmsGU,4653
145
164
  dodal/plan_stubs/wrapped.py,sha256=nriHKX4BF010CmrhdoUhY3-txClW5W8TPLz64kE_AXU,4533
146
165
  dodal/plans/__init__.py,sha256=nH1jNxw3DzDMg9O8Uda0kqKIalRVEWBrq07OLY6Ey38,93
166
+ dodal/plans/save_panda.py,sha256=PHFlkerBhkkU0-o5dNEdi2P95_jD9Lk8yYgaqn9R97o,2538
147
167
  dodal/plans/scanspec.py,sha256=Q0AcvTKRT401iGMRDSqK-D523UX5_ofiVMZ_rNXKOx8,2074
148
- dodal/plans/wrapped.py,sha256=Cr2iOpQCuk2ORKo5CZOh-zbQXAjoTfaLrfm7r1--GhU,2098
149
- dls_dodal-1.36.3.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
150
- dls_dodal-1.36.3.dist-info/METADATA,sha256=kxGKgtp3OTCkpiOdg7edQ8FCV9G8Hw4klZobJMmibSA,16655
151
- dls_dodal-1.36.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
152
- dls_dodal-1.36.3.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
153
- dls_dodal-1.36.3.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
154
- dls_dodal-1.36.3.dist-info/RECORD,,
168
+ dodal/plans/wrapped.py,sha256=BPMw__RcWvk9v5XnhMsi9_k4KsDEbmXogzD2n1ecbUg,2098
169
+ dls_dodal-1.38.0.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
170
+ dls_dodal-1.38.0.dist-info/METADATA,sha256=H2_nchEL12FW1s-A-pmX4-m05TcWsK3F6dkJjsnueqA,16696
171
+ dls_dodal-1.38.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
172
+ dls_dodal-1.38.0.dist-info/entry_points.txt,sha256=bycw_EKUzup_rxfCetOwcauXV4kLln_OPpPT8jEnr-I,94
173
+ dls_dodal-1.38.0.dist-info/top_level.txt,sha256=xIozdmZk_wmMV4wugpq9-6eZs0vgADNUKz3j2UAwlhc,6
174
+ dls_dodal-1.38.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.3'
16
- __version_tuple__ = version_tuple = (1, 36, 3)
15
+ __version__ = version = '1.38.0'
16
+ __version_tuple__ = version_tuple = (1, 38, 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
@@ -39,8 +40,13 @@ from dodal.devices.undulator_dcm import UndulatorDCM
39
40
  from dodal.devices.webcam import Webcam
40
41
  from dodal.devices.xbpm_feedback import XBPMFeedback
41
42
  from dodal.devices.xspress3.xspress3 import Xspress3
42
- from dodal.devices.zebra import Zebra
43
- from dodal.devices.zebra_controlled_shutter import ZebraShutter
43
+ from dodal.devices.zebra.zebra import Zebra
44
+ from dodal.devices.zebra.zebra_constants_mapping import (
45
+ ZebraMapping,
46
+ ZebraSources,
47
+ ZebraTTLOutputs,
48
+ )
49
+ from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter
44
50
  from dodal.devices.zocalo import ZocaloResults
45
51
  from dodal.log import set_beamline as set_log_beamline
46
52
  from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device
@@ -57,6 +63,12 @@ set_utils_beamline(BL)
57
63
 
58
64
  set_path_provider(PandASubpathProvider())
59
65
 
66
+ I03_ZEBRA_MAPPING = ZebraMapping(
67
+ outputs=ZebraTTLOutputs(TTL_DETECTOR=1, TTL_SHUTTER=2, TTL_XSPRESS3=3, TTL_PANDA=4),
68
+ sources=ZebraSources(),
69
+ AND_GATE_FOR_AUTO_SHUTTER=2,
70
+ )
71
+
60
72
 
61
73
  def aperture_scatterguard(
62
74
  wait_for_connection: bool = True,
@@ -80,12 +92,12 @@ def aperture_scatterguard(
80
92
 
81
93
  def attenuator(
82
94
  wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
83
- ) -> Attenuator:
95
+ ) -> BinaryFilterAttenuator:
84
96
  """Get the i03 attenuator device, instantiate it if it hasn't already been.
85
97
  If this is called when already instantiated in i03, it will return the existing object.
86
98
  """
87
99
  return device_instantiation(
88
- Attenuator,
100
+ BinaryFilterAttenuator,
89
101
  "attenuator",
90
102
  "-EA-ATTN-01:",
91
103
  wait_for_connection,
@@ -93,6 +105,22 @@ def attenuator(
93
105
  )
94
106
 
95
107
 
108
+ def beamstop(
109
+ wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
110
+ ) -> Beamstop:
111
+ """Get the i03 beamstop device, instantiate it if it hasn't already been.
112
+ If this is called when already instantiated in i03, it will return the existing object.
113
+ """
114
+ return device_instantiation(
115
+ Beamstop,
116
+ "beamstop",
117
+ "-MO-BS-01:",
118
+ wait_for_connection,
119
+ fake_with_ophyd_sim,
120
+ beamline_parameters=get_beamline_parameters(),
121
+ )
122
+
123
+
96
124
  def dcm(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -> DCM:
97
125
  """Get the i03 DCM device, instantiate it if it hasn't already been.
98
126
  If this is called when already instantiated in i03, it will return the existing object.
@@ -351,6 +379,7 @@ def zebra(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -
351
379
  "-EA-ZEBRA-01:",
352
380
  wait_for_connection,
353
381
  fake_with_ophyd_sim,
382
+ mapping=I03_ZEBRA_MAPPING,
354
383
  )
355
384
 
356
385
 
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
@@ -28,8 +28,13 @@ from dodal.devices.synchrotron import Synchrotron
28
28
  from dodal.devices.thawer import Thawer
29
29
  from dodal.devices.undulator import Undulator
30
30
  from dodal.devices.xbpm_feedback import XBPMFeedback
31
- from dodal.devices.zebra import Zebra
32
- from dodal.devices.zebra_controlled_shutter import ZebraShutter
31
+ from dodal.devices.zebra.zebra import Zebra
32
+ from dodal.devices.zebra.zebra_constants_mapping import (
33
+ ZebraMapping,
34
+ ZebraSources,
35
+ ZebraTTLOutputs,
36
+ )
37
+ from dodal.devices.zebra.zebra_controlled_shutter import ZebraShutter
33
38
  from dodal.log import set_beamline as set_log_beamline
34
39
  from dodal.utils import BeamlinePrefix, get_beamline_name, skip_device
35
40
 
@@ -47,6 +52,11 @@ BL = get_beamline_name("s04")
47
52
  set_log_beamline(BL)
48
53
  set_utils_beamline(BL)
49
54
 
55
+ I04_ZEBRA_MAPPING = ZebraMapping(
56
+ outputs=(ZebraTTLOutputs(TTL_DETECTOR=1, TTL_FAST_SHUTTER=2, TTL_XSPRESS3=3)),
57
+ sources=ZebraSources(),
58
+ )
59
+
50
60
 
51
61
  def smargon(
52
62
  wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
@@ -138,12 +148,12 @@ def sample_shutter(
138
148
 
139
149
  def attenuator(
140
150
  wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
141
- ) -> Attenuator:
151
+ ) -> BinaryFilterAttenuator:
142
152
  """Get the i04 attenuator device, instantiate it if it hasn't already been.
143
153
  If this is called when already instantiated in i04, it will return the existing object.
144
154
  """
145
155
  return device_instantiation(
146
- Attenuator,
156
+ BinaryFilterAttenuator,
147
157
  "attenuator",
148
158
  "-EA-ATTN-01:",
149
159
  wait_for_connection,
@@ -341,6 +351,7 @@ def zebra(wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False) -
341
351
  "-EA-ZEBRA-01:",
342
352
  wait_for_connection,
343
353
  fake_with_ophyd_sim,
354
+ mapping=I04_ZEBRA_MAPPING,
344
355
  )
345
356
 
346
357
 
dodal/beamlines/i10.py CHANGED
@@ -7,6 +7,7 @@ from dodal.devices.apple2_undulator import (
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,
@@ -15,7 +16,16 @@ from dodal.devices.i10.i10_apple2 import (
15
16
  )
16
17
  from dodal.devices.i10.i10_setting_data import I10Grating
17
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
18
27
  from dodal.devices.i10.slits import I10PrimarySlits, I10Slits
28
+ from dodal.devices.motors import XYZPositioner
19
29
  from dodal.devices.pgm import PGM
20
30
  from dodal.devices.slits import MinimalSlits
21
31
  from dodal.log import set_beamline as set_log_beamline
@@ -322,3 +332,98 @@ def slit_6() -> I10Slits:
322
332
  return I10Slits(
323
333
  prefix=f"{PREFIX.beamline_prefix}-AL-SLITS-06:",
324
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/i13_1.py CHANGED
@@ -8,7 +8,8 @@ from dodal.common.beamlines.beamline_utils import (
8
8
  set_path_provider,
9
9
  )
10
10
  from dodal.common.beamlines.beamline_utils import set_beamline as set_utils_beamline
11
- from dodal.common.visit import StaticVisitPathProvider
11
+ from dodal.common.visit import LocalDirectoryServiceClient, StaticVisitPathProvider
12
+ from dodal.devices.i13_1.merlin import Merlin
12
13
  from dodal.devices.motors import XYZPositioner
13
14
  from dodal.log import set_beamline as set_log_beamline
14
15
  from dodal.utils import get_beamline_name
@@ -19,7 +20,8 @@ set_utils_beamline(BL)
19
20
  set_path_provider(
20
21
  StaticVisitPathProvider(
21
22
  BL,
22
- Path("/data/2024/cm37257-4/"), # latest commissioning visit
23
+ Path("/dls/i13-1/data/2024/cm37257-5/tmp/"), # latest commissioning visit
24
+ client=LocalDirectoryServiceClient(),
23
25
  )
24
26
  )
25
27
 
@@ -64,3 +66,19 @@ def side_camera(
64
66
  wait=wait_for_connection,
65
67
  fake=fake_with_ophyd_sim,
66
68
  )
69
+
70
+
71
+ def merlin(
72
+ wait_for_connection: bool = True, fake_with_ophyd_sim: bool = False
73
+ ) -> Merlin:
74
+ return device_instantiation(
75
+ Merlin,
76
+ prefix="BL13J-EA-DET-04:",
77
+ name="merlin",
78
+ bl_prefix=False,
79
+ drv_suffix="CAM:",
80
+ hdf_suffix="HDF5:",
81
+ path_provider=get_path_provider(),
82
+ wait=wait_for_connection,
83
+ fake=fake_with_ophyd_sim,
84
+ )
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(