dls-dodal 1.48.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.
- {dls_dodal-1.48.0.dist-info → dls_dodal-1.49.0.dist-info}/METADATA +2 -1
- {dls_dodal-1.48.0.dist-info → dls_dodal-1.49.0.dist-info}/RECORD +39 -29
- dodal/_version.py +2 -2
- dodal/beamlines/aithre.py +15 -0
- dodal/beamlines/b16.py +65 -0
- dodal/beamlines/b18.py +38 -0
- dodal/beamlines/i10.py +41 -233
- dodal/beamlines/k11.py +35 -0
- dodal/common/beamlines/device_helpers.py +1 -0
- dodal/devices/apple2_undulator.py +257 -136
- dodal/devices/b16/__init__.py +0 -0
- dodal/devices/b16/detector.py +34 -0
- dodal/devices/bimorph_mirror.py +29 -36
- dodal/devices/electron_analyser/__init__.py +12 -2
- dodal/devices/electron_analyser/abstract/base_detector.py +3 -128
- dodal/devices/electron_analyser/abstract/base_driver_io.py +8 -3
- dodal/devices/electron_analyser/abstract/base_region.py +6 -3
- dodal/devices/electron_analyser/detector.py +141 -0
- dodal/devices/electron_analyser/enums.py +6 -0
- dodal/devices/electron_analyser/specs/__init__.py +2 -0
- dodal/devices/electron_analyser/specs/detector.py +1 -1
- dodal/devices/electron_analyser/specs/driver_io.py +4 -5
- dodal/devices/electron_analyser/specs/enums.py +8 -0
- dodal/devices/electron_analyser/specs/region.py +3 -2
- dodal/devices/electron_analyser/types.py +30 -4
- dodal/devices/electron_analyser/util.py +1 -1
- dodal/devices/electron_analyser/vgscienta/__init__.py +2 -0
- dodal/devices/electron_analyser/vgscienta/detector.py +1 -1
- dodal/devices/electron_analyser/vgscienta/driver_io.py +2 -1
- dodal/devices/electron_analyser/vgscienta/enums.py +19 -0
- dodal/devices/electron_analyser/vgscienta/region.py +7 -22
- dodal/devices/i10/__init__.py +0 -0
- dodal/devices/i10/i10_apple2.py +181 -126
- dodal/devices/i22/nxsas.py +1 -1
- dodal/devices/oav/oav_detector.py +45 -7
- {dls_dodal-1.48.0.dist-info → dls_dodal-1.49.0.dist-info}/WHEEL +0 -0
- {dls_dodal-1.48.0.dist-info → dls_dodal-1.49.0.dist-info}/entry_points.txt +0 -0
- {dls_dodal-1.48.0.dist-info → dls_dodal-1.49.0.dist-info}/licenses/LICENSE +0 -0
- {dls_dodal-1.48.0.dist-info → dls_dodal-1.49.0.dist-info}/top_level.txt +0 -0
|
@@ -6,6 +6,7 @@ from ophyd_async.core import (
|
|
|
6
6
|
AsyncStatus,
|
|
7
7
|
LazyMock,
|
|
8
8
|
SignalR,
|
|
9
|
+
SignalRW,
|
|
9
10
|
StandardReadable,
|
|
10
11
|
derived_signal_r,
|
|
11
12
|
soft_signal_rw,
|
|
@@ -36,7 +37,21 @@ def _get_correct_zoom_string(zoom: str) -> str:
|
|
|
36
37
|
return zoom
|
|
37
38
|
|
|
38
39
|
|
|
39
|
-
class
|
|
40
|
+
class BaseZoomController(StandardReadable, Movable[str]):
|
|
41
|
+
level: SignalRW[str]
|
|
42
|
+
percentage: SignalRW[float]
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
class NullZoomController(BaseZoomController):
|
|
46
|
+
def __init__(self):
|
|
47
|
+
self.level = soft_signal_rw(str, "1.0x")
|
|
48
|
+
self.percentage = soft_signal_rw(float, 100)
|
|
49
|
+
|
|
50
|
+
def set(self, value):
|
|
51
|
+
raise Exception("Attempting to set zoom level of a null zoom controller")
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class ZoomController(BaseZoomController):
|
|
40
55
|
"""
|
|
41
56
|
Device to control the zoom level. This should be set like
|
|
42
57
|
o = OAV(name="oav")
|
|
@@ -62,12 +77,24 @@ class OAV(StandardReadable):
|
|
|
62
77
|
beam_centre_i: SignalR[int]
|
|
63
78
|
beam_centre_j: SignalR[int]
|
|
64
79
|
|
|
65
|
-
def __init__(
|
|
80
|
+
def __init__(
|
|
81
|
+
self,
|
|
82
|
+
prefix: str,
|
|
83
|
+
config: OAVConfigBase,
|
|
84
|
+
name: str = "",
|
|
85
|
+
zoom_controller: BaseZoomController | None = None,
|
|
86
|
+
):
|
|
66
87
|
self.oav_config = config
|
|
67
88
|
self._prefix = prefix
|
|
68
89
|
self._name = name
|
|
69
90
|
_bl_prefix = prefix.split("-")[0]
|
|
70
|
-
|
|
91
|
+
|
|
92
|
+
if not zoom_controller:
|
|
93
|
+
self.zoom_controller = ZoomController(
|
|
94
|
+
f"{_bl_prefix}-EA-OAV-01:FZOOM:", name
|
|
95
|
+
)
|
|
96
|
+
else:
|
|
97
|
+
self.zoom_controller = zoom_controller
|
|
71
98
|
|
|
72
99
|
self.cam = Cam(f"{prefix}CAM:", name=name)
|
|
73
100
|
with self.add_children_as_readables():
|
|
@@ -121,8 +148,14 @@ class OAVBeamCentreFile(OAV):
|
|
|
121
148
|
centre values are stored.
|
|
122
149
|
"""
|
|
123
150
|
|
|
124
|
-
def __init__(
|
|
125
|
-
|
|
151
|
+
def __init__(
|
|
152
|
+
self,
|
|
153
|
+
prefix: str,
|
|
154
|
+
config: OAVConfigBeamCentre,
|
|
155
|
+
name: str = "",
|
|
156
|
+
zoom_controller: BaseZoomController | None = None,
|
|
157
|
+
):
|
|
158
|
+
super().__init__(prefix, config, name, zoom_controller)
|
|
126
159
|
|
|
127
160
|
with self.add_children_as_readables():
|
|
128
161
|
self.beam_centre_i = derived_signal_r(
|
|
@@ -152,7 +185,12 @@ class OAVBeamCentrePV(OAV):
|
|
|
152
185
|
"""OAV device that reads its beam centre values from PVs."""
|
|
153
186
|
|
|
154
187
|
def __init__(
|
|
155
|
-
self,
|
|
188
|
+
self,
|
|
189
|
+
prefix: str,
|
|
190
|
+
config: OAVConfig,
|
|
191
|
+
name: str = "",
|
|
192
|
+
zoom_controller: BaseZoomController | None = None,
|
|
193
|
+
overlay_channel: int = 1,
|
|
156
194
|
):
|
|
157
195
|
with self.add_children_as_readables():
|
|
158
196
|
self.beam_centre_i = epics_signal_r(
|
|
@@ -161,4 +199,4 @@ class OAVBeamCentrePV(OAV):
|
|
|
161
199
|
self.beam_centre_j = epics_signal_r(
|
|
162
200
|
int, prefix + f"OVER:{overlay_channel}:CenterY"
|
|
163
201
|
)
|
|
164
|
-
super().__init__(prefix, config, name)
|
|
202
|
+
super().__init__(prefix, config, name, zoom_controller)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|