ophyd-async 0.3rc2__py3-none-any.whl → 0.3.1a1__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.
- ophyd_async/_version.py +2 -2
- ophyd_async/core/detector.py +15 -10
- ophyd_async/core/mock_signal_utils.py +16 -2
- ophyd_async/core/standard_readable.py +2 -0
- ophyd_async/epics/areadetector/controllers/pilatus_controller.py +18 -5
- ophyd_async/epics/areadetector/drivers/pilatus_driver.py +2 -2
- ophyd_async/epics/areadetector/pilatus.py +21 -4
- ophyd_async/panda/_hdf_panda.py +0 -1
- ophyd_async/plan_stubs/fly.py +4 -0
- ophyd_async/sim/sim_pattern_generator.py +0 -2
- {ophyd_async-0.3rc2.dist-info → ophyd_async-0.3.1a1.dist-info}/METADATA +2 -2
- {ophyd_async-0.3rc2.dist-info → ophyd_async-0.3.1a1.dist-info}/RECORD +16 -16
- {ophyd_async-0.3rc2.dist-info → ophyd_async-0.3.1a1.dist-info}/LICENSE +0 -0
- {ophyd_async-0.3rc2.dist-info → ophyd_async-0.3.1a1.dist-info}/WHEEL +0 -0
- {ophyd_async-0.3rc2.dist-info → ophyd_async-0.3.1a1.dist-info}/entry_points.txt +0 -0
- {ophyd_async-0.3rc2.dist-info → ophyd_async-0.3.1a1.dist-info}/top_level.txt +0 -0
ophyd_async/_version.py
CHANGED
ophyd_async/core/detector.py
CHANGED
|
@@ -63,6 +63,8 @@ class TriggerInfo:
|
|
|
63
63
|
deadtime: float
|
|
64
64
|
#: What is the maximum high time of the triggers
|
|
65
65
|
livetime: float
|
|
66
|
+
#: What is the maximum timeout on waiting for a frame
|
|
67
|
+
frame_timeout: float | None = None
|
|
66
68
|
|
|
67
69
|
|
|
68
70
|
class DetectorControl(ABC):
|
|
@@ -162,7 +164,6 @@ class StandardDetector(
|
|
|
162
164
|
writer: DetectorWriter,
|
|
163
165
|
config_sigs: Sequence[AsyncReadable] = (),
|
|
164
166
|
name: str = "",
|
|
165
|
-
writer_timeout: float = DEFAULT_TIMEOUT,
|
|
166
167
|
) -> None:
|
|
167
168
|
"""
|
|
168
169
|
Constructor
|
|
@@ -173,16 +174,11 @@ class StandardDetector(
|
|
|
173
174
|
config_sigs: Signals to read when describe and read
|
|
174
175
|
configuration are called. Defaults to ().
|
|
175
176
|
name: Device name. Defaults to "".
|
|
176
|
-
writer_timeout: Timeout for frame writing to start, if the
|
|
177
|
-
timeout is reached, ophyd-async assumes the detector
|
|
178
|
-
has a problem and raises an error.
|
|
179
|
-
Defaults to DEFAULT_TIMEOUT.
|
|
180
177
|
"""
|
|
181
178
|
self._controller = controller
|
|
182
179
|
self._writer = writer
|
|
183
180
|
self._describe: Dict[str, DataKey] = {}
|
|
184
181
|
self._config_sigs = list(config_sigs)
|
|
185
|
-
self._frame_writing_timeout = writer_timeout
|
|
186
182
|
# For prepare
|
|
187
183
|
self._arm_status: Optional[AsyncStatus] = None
|
|
188
184
|
self._trigger_info: Optional[TriggerInfo] = None
|
|
@@ -245,17 +241,21 @@ class StandardDetector(
|
|
|
245
241
|
|
|
246
242
|
@AsyncStatus.wrap
|
|
247
243
|
async def trigger(self) -> None:
|
|
244
|
+
# set default trigger_info
|
|
245
|
+
self._trigger_info = TriggerInfo(
|
|
246
|
+
num=1, trigger=DetectorTrigger.internal, deadtime=0.0, livetime=0.0
|
|
247
|
+
)
|
|
248
248
|
# Arm the detector and wait for it to finish.
|
|
249
249
|
indices_written = await self.writer.get_indices_written()
|
|
250
250
|
written_status = await self.controller.arm(
|
|
251
|
-
num=
|
|
252
|
-
trigger=
|
|
251
|
+
num=self._trigger_info.num,
|
|
252
|
+
trigger=self._trigger_info.trigger,
|
|
253
253
|
)
|
|
254
254
|
await written_status
|
|
255
255
|
end_observation = indices_written + 1
|
|
256
256
|
|
|
257
257
|
async for index in self.writer.observe_indices_written(
|
|
258
|
-
self.
|
|
258
|
+
DEFAULT_TIMEOUT + self._trigger_info.livetime + self._trigger_info.deadtime
|
|
259
259
|
):
|
|
260
260
|
if index >= end_observation:
|
|
261
261
|
break
|
|
@@ -309,7 +309,12 @@ class StandardDetector(
|
|
|
309
309
|
assert self._arm_status, "Prepare not run"
|
|
310
310
|
assert self._trigger_info
|
|
311
311
|
async for index in self.writer.observe_indices_written(
|
|
312
|
-
self.
|
|
312
|
+
self._trigger_info.frame_timeout
|
|
313
|
+
or (
|
|
314
|
+
DEFAULT_TIMEOUT
|
|
315
|
+
+ self._trigger_info.livetime
|
|
316
|
+
+ self._trigger_info.deadtime
|
|
317
|
+
)
|
|
313
318
|
):
|
|
314
319
|
yield WatcherUpdate(
|
|
315
320
|
name=self.name,
|
|
@@ -79,8 +79,22 @@ class _SetValuesIterator:
|
|
|
79
79
|
return next_value
|
|
80
80
|
|
|
81
81
|
def __del__(self):
|
|
82
|
-
if self.require_all_consumed
|
|
83
|
-
|
|
82
|
+
if self.require_all_consumed:
|
|
83
|
+
# Values is cast to a list here because the user has supplied
|
|
84
|
+
# require_all_consumed=True, we can therefore assume they
|
|
85
|
+
# supplied a finite list.
|
|
86
|
+
# In the case of require_all_consumed=False, an infinite
|
|
87
|
+
# iterble is permitted
|
|
88
|
+
values = list(self.values)
|
|
89
|
+
if self.index != len(values):
|
|
90
|
+
# Report the values consumed and the values yet to be
|
|
91
|
+
# consumed
|
|
92
|
+
consumed = values[0 : self.index]
|
|
93
|
+
to_be_consumed = values[self.index :]
|
|
94
|
+
raise AssertionError(
|
|
95
|
+
f"{self.signal.name}: {consumed} were consumed "
|
|
96
|
+
f"but {to_be_consumed} were not consumed"
|
|
97
|
+
)
|
|
84
98
|
|
|
85
99
|
|
|
86
100
|
def set_mock_values(
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
from typing import Optional
|
|
3
3
|
|
|
4
|
+
from ophyd_async.core import DEFAULT_TIMEOUT, wait_for_value
|
|
4
5
|
from ophyd_async.core.async_status import AsyncStatus
|
|
5
6
|
from ophyd_async.core.detector import DetectorControl, DetectorTrigger
|
|
6
7
|
from ophyd_async.epics.areadetector.drivers.ad_base import (
|
|
@@ -23,14 +24,13 @@ class PilatusController(DetectorControl):
|
|
|
23
24
|
def __init__(
|
|
24
25
|
self,
|
|
25
26
|
driver: PilatusDriver,
|
|
27
|
+
readout_time: float,
|
|
26
28
|
) -> None:
|
|
27
29
|
self._drv = driver
|
|
30
|
+
self._readout_time = readout_time
|
|
28
31
|
|
|
29
32
|
def get_deadtime(self, exposure: float) -> float:
|
|
30
|
-
|
|
31
|
-
"""The required minimum time difference between ExpPeriod and ExpTime
|
|
32
|
-
(readout time) is 2.28 ms"""
|
|
33
|
-
return 2.28e-3
|
|
33
|
+
return self._readout_time
|
|
34
34
|
|
|
35
35
|
async def arm(
|
|
36
36
|
self,
|
|
@@ -45,7 +45,20 @@ class PilatusController(DetectorControl):
|
|
|
45
45
|
self._drv.num_images.set(999_999 if num == 0 else num),
|
|
46
46
|
self._drv.image_mode.set(ImageMode.multiple),
|
|
47
47
|
)
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
# Standard arm the detector and wait for the acquire PV to be True
|
|
50
|
+
idle_status = await start_acquiring_driver_and_ensure_status(self._drv)
|
|
51
|
+
|
|
52
|
+
# The pilatus has an additional PV that goes True when the camserver
|
|
53
|
+
# is actually ready. Should wait for that too or we risk dropping
|
|
54
|
+
# a frame
|
|
55
|
+
await wait_for_value(
|
|
56
|
+
self._drv.armed_for_triggers,
|
|
57
|
+
True,
|
|
58
|
+
timeout=DEFAULT_TIMEOUT,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
return idle_status
|
|
49
62
|
|
|
50
63
|
@classmethod
|
|
51
64
|
def _get_trigger_mode(cls, trigger: DetectorTrigger) -> PilatusTriggerMode:
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
from enum import Enum
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
|
|
3
|
+
from ...signal import epics_signal_r, epics_signal_rw_rbv
|
|
5
4
|
from .ad_base import ADBase
|
|
6
5
|
|
|
7
6
|
|
|
@@ -18,4 +17,5 @@ class PilatusDriver(ADBase):
|
|
|
18
17
|
self.trigger_mode = epics_signal_rw_rbv(
|
|
19
18
|
PilatusTriggerMode, prefix + "TriggerMode"
|
|
20
19
|
)
|
|
20
|
+
self.armed_for_triggers = epics_signal_r(bool, prefix + "Armed")
|
|
21
21
|
super().__init__(prefix, name)
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from enum import Enum
|
|
2
|
+
|
|
1
3
|
from bluesky.protocols import Hints
|
|
2
4
|
|
|
3
5
|
from ophyd_async.core import DirectoryProvider
|
|
@@ -11,6 +13,20 @@ from ophyd_async.epics.areadetector.writers.hdf_writer import HDFWriter
|
|
|
11
13
|
from ophyd_async.epics.areadetector.writers.nd_file_hdf import NDFileHDF
|
|
12
14
|
|
|
13
15
|
|
|
16
|
+
#: Cite: https://media.dectris.com/User_Manual-PILATUS2-V1_4.pdf
|
|
17
|
+
#: The required minimum time difference between ExpPeriod and ExpTime
|
|
18
|
+
#: (readout time) is 2.28 ms
|
|
19
|
+
#: We provide an option to override for newer Pilatus models
|
|
20
|
+
class PilatusReadoutTime(float, Enum):
|
|
21
|
+
"""Pilatus readout time per model in ms"""
|
|
22
|
+
|
|
23
|
+
# Cite: https://media.dectris.com/User_Manual-PILATUS2-V1_4.pdf
|
|
24
|
+
pilatus2 = 2.28e-3
|
|
25
|
+
|
|
26
|
+
# Cite: https://media.dectris.com/user-manual-pilatus3-2020.pdf
|
|
27
|
+
pilatus3 = 0.95e-3
|
|
28
|
+
|
|
29
|
+
|
|
14
30
|
class PilatusDetector(StandardDetector):
|
|
15
31
|
"""A Pilatus StandardDetector writing HDF files"""
|
|
16
32
|
|
|
@@ -21,15 +37,16 @@ class PilatusDetector(StandardDetector):
|
|
|
21
37
|
self,
|
|
22
38
|
prefix: str,
|
|
23
39
|
directory_provider: DirectoryProvider,
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
40
|
+
readout_time: PilatusReadoutTime = PilatusReadoutTime.pilatus3,
|
|
41
|
+
drv_suffix: str = "cam1:",
|
|
42
|
+
hdf_suffix: str = "HDF1:",
|
|
43
|
+
name: str = "",
|
|
27
44
|
):
|
|
28
45
|
self.drv = PilatusDriver(prefix + drv_suffix)
|
|
29
46
|
self.hdf = NDFileHDF(prefix + hdf_suffix)
|
|
30
47
|
|
|
31
48
|
super().__init__(
|
|
32
|
-
PilatusController(self.drv),
|
|
49
|
+
PilatusController(self.drv, readout_time=readout_time.value),
|
|
33
50
|
HDFWriter(
|
|
34
51
|
self.hdf,
|
|
35
52
|
directory_provider,
|
ophyd_async/panda/_hdf_panda.py
CHANGED
ophyd_async/plan_stubs/fly.py
CHANGED
|
@@ -18,6 +18,7 @@ def prepare_static_seq_table_flyer_and_detectors_with_same_trigger(
|
|
|
18
18
|
shutter_time: float,
|
|
19
19
|
repeats: int = 1,
|
|
20
20
|
period: float = 0.0,
|
|
21
|
+
frame_timeout: float | None = None,
|
|
21
22
|
):
|
|
22
23
|
"""Prepare a hardware triggered flyable and one or more detectors.
|
|
23
24
|
|
|
@@ -39,6 +40,7 @@ def prepare_static_seq_table_flyer_and_detectors_with_same_trigger(
|
|
|
39
40
|
trigger=DetectorTrigger.constant_gate,
|
|
40
41
|
deadtime=deadtime,
|
|
41
42
|
livetime=exposure,
|
|
43
|
+
frame_timeout=frame_timeout,
|
|
42
44
|
)
|
|
43
45
|
trigger_time = number_of_frames * (exposure + deadtime)
|
|
44
46
|
pre_delay = max(period - 2 * shutter_time - trigger_time, 0)
|
|
@@ -120,6 +122,7 @@ def time_resolved_fly_and_collect_with_static_seq_table(
|
|
|
120
122
|
shutter_time: float,
|
|
121
123
|
repeats: int = 1,
|
|
122
124
|
period: float = 0.0,
|
|
125
|
+
frame_timeout: float | None = None,
|
|
123
126
|
):
|
|
124
127
|
"""Run a scan wth a flyer and multiple detectors.
|
|
125
128
|
|
|
@@ -144,6 +147,7 @@ def time_resolved_fly_and_collect_with_static_seq_table(
|
|
|
144
147
|
shutter_time=shutter_time,
|
|
145
148
|
repeats=repeats,
|
|
146
149
|
period=period,
|
|
150
|
+
frame_timeout=frame_timeout,
|
|
147
151
|
)
|
|
148
152
|
# Run the fly scan
|
|
149
153
|
yield from fly_and_collect(stream_name, flyer, detectors)
|
|
@@ -16,7 +16,6 @@ class SimPatternDetector(StandardDetector):
|
|
|
16
16
|
path: Path,
|
|
17
17
|
config_sigs: Sequence[AsyncReadable] = [],
|
|
18
18
|
name: str = "sim_pattern_detector",
|
|
19
|
-
writer_timeout: float = 1,
|
|
20
19
|
) -> None:
|
|
21
20
|
self.directory_provider: DirectoryProvider = StaticDirectoryProvider(path)
|
|
22
21
|
self.pattern_generator = PatternGenerator()
|
|
@@ -33,5 +32,4 @@ class SimPatternDetector(StandardDetector):
|
|
|
33
32
|
writer=writer,
|
|
34
33
|
config_sigs=config_sigs,
|
|
35
34
|
name=name,
|
|
36
|
-
writer_timeout=writer_timeout,
|
|
37
35
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: ophyd-async
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1a1
|
|
4
4
|
Summary: Asynchronous Bluesky hardware abstraction code, compatible with control systems like EPICS and Tango
|
|
5
5
|
Author-email: Tom Cobb <tom.cobb@diamond.ac.uk>
|
|
6
6
|
License: BSD 3-Clause License
|
|
@@ -96,7 +96,7 @@ Requires-Dist: p4p ; extra == 'pva'
|
|
|
96
96
|
|
|
97
97
|
# ophyd-async
|
|
98
98
|
|
|
99
|
-
Asynchronous Bluesky hardware abstraction code, compatible with control systems like EPICS and Tango
|
|
99
|
+
Asynchronous Bluesky hardware abstraction code, compatible with control systems like EPICS and Tango.
|
|
100
100
|
|
|
101
101
|
| Source | <https://github.com/bluesky/ophyd-async> |
|
|
102
102
|
| :-----------: | :-----------------------------------------------: |
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
ophyd_async/__init__.py,sha256=v-rRiDOgZ3sQSMQKq0vgUQZvpeOkoHFXissAx6Ktg84,61
|
|
2
2
|
ophyd_async/__main__.py,sha256=G-Zcv_G9zK7Nhx6o5L5w-wyhMxdl_WgyMELu8IMFqAE,328
|
|
3
|
-
ophyd_async/_version.py,sha256=
|
|
3
|
+
ophyd_async/_version.py,sha256=39a0mpBwpK0E4r9y1sT8m6uZMtoy7wbaTItax3Zomyc,413
|
|
4
4
|
ophyd_async/log.py,sha256=DbMjt0bkfUOLHIinZYt0Q0FHZmCXXi5x8y0uFiEmqoQ,3587
|
|
5
5
|
ophyd_async/protocols.py,sha256=EF2W9nfElV-0QNMYrX1zusL1PqDJR3kNsjlalR29j0I,3412
|
|
6
6
|
ophyd_async/core/__init__.py,sha256=znjVeRfrDVJbGLEkUczeKMW46kV6HDrlE4lV0SqvZt4,2952
|
|
7
7
|
ophyd_async/core/_providers.py,sha256=LrlTMPHKXWOPVkpAOw-pqBq0kip-c3C9ZZPoFfiaV4M,2212
|
|
8
8
|
ophyd_async/core/async_status.py,sha256=9TOgOXIAuH62RDo5t-Y5GdjrJ76d_6TFlBxYv-5_a88,4367
|
|
9
|
-
ophyd_async/core/detector.py,sha256=
|
|
9
|
+
ophyd_async/core/detector.py,sha256=NMX8y_yiViHbv3CaJ7LxzXYkH6tCWI3LocpQ3w4lGEQ,11176
|
|
10
10
|
ophyd_async/core/device.py,sha256=280zFnLCoiMZAA-Dh1_AjUSnhxUfKYGgj4H_2S1njOA,7086
|
|
11
11
|
ophyd_async/core/device_save_loader.py,sha256=RXA3dPUPihAR2ZGDStlGiA-TAsr_xqL0snsCjMsMnfA,9138
|
|
12
12
|
ophyd_async/core/flyer.py,sha256=bIjzBkrl8HVAlKgsZ_FF0WL69Qvksyzp9ZWmTLl8Yrw,2304
|
|
13
13
|
ophyd_async/core/mock_signal_backend.py,sha256=Ug6jK72wm9vM6EueoUrYgcXtiFzdPUEISRe86LdyYKc,2844
|
|
14
|
-
ophyd_async/core/mock_signal_utils.py,sha256=
|
|
14
|
+
ophyd_async/core/mock_signal_utils.py,sha256=LE8VxNq3jfaTePnHHpZpKCi1vwKi8EIg-g1jfw-Q5bQ,4726
|
|
15
15
|
ophyd_async/core/signal.py,sha256=FbTb5qDPLhVxEbh6gimqXfkZwcqB4ymHTEYVXZVZYrk,16456
|
|
16
16
|
ophyd_async/core/signal_backend.py,sha256=fT3q0WED3JHmNKYCs7PzDLCK4cUPVin3wQjDNPdHqAY,1525
|
|
17
17
|
ophyd_async/core/soft_signal_backend.py,sha256=56zvcEi4c8n1yYbafTbp7X0VhSkhoehm3L8RBhu2fik,5596
|
|
18
|
-
ophyd_async/core/standard_readable.py,sha256=
|
|
18
|
+
ophyd_async/core/standard_readable.py,sha256=fhq_WAZtLYWrw6DvvrFRYRAPOUP2_IcX4qLucoEEeOg,9049
|
|
19
19
|
ophyd_async/core/utils.py,sha256=3oZcXNqAUHX4ZWMBH5gSuK6cFWEhSkZ9GSDYv0pf8jc,5783
|
|
20
20
|
ophyd_async/epics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
21
|
ophyd_async/epics/_backend/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -25,7 +25,7 @@ ophyd_async/epics/_backend/common.py,sha256=16mAuxDwA3eZFjUW8DHMabaW3CtEI0Qe8DLp
|
|
|
25
25
|
ophyd_async/epics/areadetector/__init__.py,sha256=ViKzx-wUxkRyNR33wfpL11QB97o0J47_KMyI2C_NphI,510
|
|
26
26
|
ophyd_async/epics/areadetector/aravis.py,sha256=YklN4V0loqUQBs4swVX304N49JIGPvrNOk8iA5EWofg,2127
|
|
27
27
|
ophyd_async/epics/areadetector/kinetix.py,sha256=7rE2MLnz9DEmeiN9pCekDfpXuZ2DErnMajRp_9eoLZY,1359
|
|
28
|
-
ophyd_async/epics/areadetector/pilatus.py,sha256=
|
|
28
|
+
ophyd_async/epics/areadetector/pilatus.py,sha256=hs3v8QUIwTHNg7i1mRSg9SbIIsoUZg90OxJ740gEKpo,2044
|
|
29
29
|
ophyd_async/epics/areadetector/single_trigger_det.py,sha256=U92dqhioIfnve3jtCThq9gXBCdEzzqzY4ezk6rZV19g,1182
|
|
30
30
|
ophyd_async/epics/areadetector/utils.py,sha256=p66UbVdKRFj6Sm1Qvm23kmlVyBMMqIvXFxA3x17YnSk,2824
|
|
31
31
|
ophyd_async/epics/areadetector/vimba.py,sha256=IxG8KLzfb84iLtzf6ZoX9JikqZLP49lwkWu33bkDV9Y,1291
|
|
@@ -33,13 +33,13 @@ ophyd_async/epics/areadetector/controllers/__init__.py,sha256=af58ci7X2z2s_FyUwR
|
|
|
33
33
|
ophyd_async/epics/areadetector/controllers/ad_sim_controller.py,sha256=mthZ6WxajMEgUKptq3bnkIctbLhjzTagV66i1auB8cg,1587
|
|
34
34
|
ophyd_async/epics/areadetector/controllers/aravis_controller.py,sha256=CIfnZdq_NobO_UMC2TJoAfUEP9GlzZg5z5bz6Dn1DxY,2669
|
|
35
35
|
ophyd_async/epics/areadetector/controllers/kinetix_controller.py,sha256=9QmydX85QOXfQL_UX49M9EQ2b2hUZPVzLxgGQn-A9Oc,1611
|
|
36
|
-
ophyd_async/epics/areadetector/controllers/pilatus_controller.py,sha256=
|
|
36
|
+
ophyd_async/epics/areadetector/controllers/pilatus_controller.py,sha256=jJdY97JATz-bWtEPtmnyQ-Zyjvhy2M78i0wUuXO2dtE,2617
|
|
37
37
|
ophyd_async/epics/areadetector/controllers/vimba_controller.py,sha256=Eh4Hr9rWgq1mKvE93JzgixntjPHxF3_07GTFqiOdZqE,2123
|
|
38
38
|
ophyd_async/epics/areadetector/drivers/__init__.py,sha256=-Ib0Lz4fFQQmB7K0uFxMDvAerkLxadMQERH7lNAvrs4,495
|
|
39
39
|
ophyd_async/epics/areadetector/drivers/ad_base.py,sha256=18WFAiWEUg0H2LcvTQHrKYj2wThGafQzDpiyAWki6vo,3411
|
|
40
40
|
ophyd_async/epics/areadetector/drivers/aravis_driver.py,sha256=PmIygsVNoxxYHvZZzFAbAm2DXmXFc13nAzL_DJB6YSU,1464
|
|
41
41
|
ophyd_async/epics/areadetector/drivers/kinetix_driver.py,sha256=yIV23BkGBJ4i0VskLiLL7AFbadCCR6Ch1UwUDJ9r2YM,743
|
|
42
|
-
ophyd_async/epics/areadetector/drivers/pilatus_driver.py,sha256=
|
|
42
|
+
ophyd_async/epics/areadetector/drivers/pilatus_driver.py,sha256=0DBBuiR_FtwzVVdDW0ifdSrdKZtnprWuy87g66o8RlQ,619
|
|
43
43
|
ophyd_async/epics/areadetector/drivers/vimba_driver.py,sha256=J54VtWkOklfbSqZYxGWH1e6Uzm9_Gph_ZbCf9Zax0LU,1713
|
|
44
44
|
ophyd_async/epics/areadetector/writers/__init__.py,sha256=tpPcrYd1hs8WS7C0gmCnR2EBwjE5RzCljI7WwZ2V_LM,191
|
|
45
45
|
ophyd_async/epics/areadetector/writers/_hdfdataset.py,sha256=E0C9VgsPyY35h7k0mvcIhjsIVNavApLxizqNWlM388w,167
|
|
@@ -60,7 +60,7 @@ ophyd_async/epics/signal/_epics_transport.py,sha256=DEIL0iYUAWssysVEgWGu1fHSM1l-
|
|
|
60
60
|
ophyd_async/epics/signal/signal.py,sha256=M8ZVG_zLdYJfroCRX-u_w8c3yIhswSRw8e3RkW2szio,3166
|
|
61
61
|
ophyd_async/panda/__init__.py,sha256=FuSnvp-RtdA0X4RcHEF0nTiXymRts2MNdFmF_1_i41w,775
|
|
62
62
|
ophyd_async/panda/_common_blocks.py,sha256=n0PPc1rar43oDSIA-yNubTc8fR5YCW1tyjQU58whsg0,1038
|
|
63
|
-
ophyd_async/panda/_hdf_panda.py,sha256=
|
|
63
|
+
ophyd_async/panda/_hdf_panda.py,sha256=TWzBnyJcLmltQyOr5nXbCAZdVRqY633ogBX6pY06p3g,1375
|
|
64
64
|
ophyd_async/panda/_panda_controller.py,sha256=dIqcjmaIHVrki8UXSoDx46kk6I2Lhpe2o3sXNg5f-RQ,1238
|
|
65
65
|
ophyd_async/panda/_table.py,sha256=dLoRP4zYNOkD_s0Vkp2wVYAwkjVG8nNdf8-FaXOTfPo,5655
|
|
66
66
|
ophyd_async/panda/_trigger.py,sha256=tBH8uq_4o1ASG9yofVxq3tjf5v8LPzniDTRL4yjramI,1195
|
|
@@ -70,17 +70,17 @@ ophyd_async/panda/writers/_hdf_writer.py,sha256=vnyIg3JmlzMIIq75o0IDMfGzBm_GJAhO
|
|
|
70
70
|
ophyd_async/panda/writers/_panda_hdf_file.py,sha256=42iHaTax4JjOBpNC7d4nkNL9SM14OTnFPTIcXv2jg-4,1759
|
|
71
71
|
ophyd_async/plan_stubs/__init__.py,sha256=nO9ELG9J7fYwfVTVRWVorz4kffeszYpwk1ROh6Ha--w,405
|
|
72
72
|
ophyd_async/plan_stubs/ensure_connected.py,sha256=1MkDu8UqVRPHLnW9IXRn-QvKiG8-rCV8T4KDbjf9K6w,557
|
|
73
|
-
ophyd_async/plan_stubs/fly.py,sha256=
|
|
73
|
+
ophyd_async/plan_stubs/fly.py,sha256=fQwBeLw57-NeBsroVxKDa8kpuu6fgTWYWimbsatCL28,4999
|
|
74
74
|
ophyd_async/sim/__init__.py,sha256=ScjH1g7FMo5yPACfJRZE6xGBWCHU4bKDzNQk1tqObnA,366
|
|
75
75
|
ophyd_async/sim/pattern_generator.py,sha256=pvSk2zb82D08j2jiKAMqMAfRohGnYd_rpjUraLrCD6c,10640
|
|
76
76
|
ophyd_async/sim/sim_pattern_detector_control.py,sha256=Ypz8IuRYAY2J243IhVbNyGr_Z-XtpJZ1qxma6NR3TgM,1838
|
|
77
77
|
ophyd_async/sim/sim_pattern_detector_writer.py,sha256=ESpcVyHd1TP7Cojznv2hJAwLinu3XbgAiVKfX12FCII,1237
|
|
78
|
-
ophyd_async/sim/sim_pattern_generator.py,sha256=
|
|
78
|
+
ophyd_async/sim/sim_pattern_generator.py,sha256=L4jTnEVUFBRXIWq_UMHqx00YDdbGO2pjo_IuuVwpzXE,1258
|
|
79
79
|
ophyd_async/sim/demo/__init__.py,sha256=9mxKpslrL89cfSj4g3og8Br3O--pMj3hhWZS-Xu6kyA,56
|
|
80
80
|
ophyd_async/sim/demo/sim_motor.py,sha256=a2p5wnHXjF-V5zOFai7jnszk4kbGmrZRnUqBtkOgEfQ,3733
|
|
81
|
-
ophyd_async-0.
|
|
82
|
-
ophyd_async-0.
|
|
83
|
-
ophyd_async-0.
|
|
84
|
-
ophyd_async-0.
|
|
85
|
-
ophyd_async-0.
|
|
86
|
-
ophyd_async-0.
|
|
81
|
+
ophyd_async-0.3.1a1.dist-info/LICENSE,sha256=pU5shZcsvWgz701EbT7yjFZ8rMvZcWgRH54CRt8ld_c,1517
|
|
82
|
+
ophyd_async-0.3.1a1.dist-info/METADATA,sha256=UzvVcuHH--IPgAEy0SCsfaBBUXHs6QcDJkzuw4l3eDs,6287
|
|
83
|
+
ophyd_async-0.3.1a1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
84
|
+
ophyd_async-0.3.1a1.dist-info/entry_points.txt,sha256=O0YNJTEufO0w9BozXi-JurTy2U1_o0ypeCgJLQ727Jk,58
|
|
85
|
+
ophyd_async-0.3.1a1.dist-info/top_level.txt,sha256=-hjorMsv5Rmjo3qrgqhjpal1N6kW5vMxZO3lD4iEaXs,12
|
|
86
|
+
ophyd_async-0.3.1a1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|