Skip to content

Commit eb24df3

Browse files
committed
Add to doc strings and seperate logic
1 parent a05ab37 commit eb24df3

File tree

4 files changed

+82
-0
lines changed

4 files changed

+82
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
"""Support for the ADAravis areaDetector driver.
2+
3+
https://github.com/areaDetector/ADSimDetector
4+
"""
5+
6+
from ._sim import SimDetector
7+
from ._sim_controller import SimController
8+
from ._sim_io import SimDriverIO
9+
10+
__all__ = [
11+
"SimDriverIO",
12+
"SimController",
13+
"SimDetector",
14+
]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from collections.abc import Sequence
2+
3+
from ophyd_async.core import PathProvider, SignalR
4+
from ophyd_async.epics import adcore
5+
6+
from ._sim_controller import SimController
7+
from ._sim_io import SimDriverIO
8+
9+
10+
class SimDetector(adcore.AreaDetector[SimController]):
11+
"""Detector for simulated Areadetector."""
12+
13+
def __init__(
14+
self,
15+
prefix: str,
16+
path_provider: PathProvider,
17+
drv_suffix="cam1:",
18+
writer_cls: type[adcore.ADWriter] = adcore.ADHDFWriter,
19+
fileio_suffix: str | None = None,
20+
name="",
21+
config_sigs: Sequence[SignalR] = (),
22+
plugins: dict[str, adcore.NDPluginBaseIO] | None = None,
23+
):
24+
driver = SimDriverIO(prefix + drv_suffix)
25+
controller = SimController(driver)
26+
27+
writer = writer_cls.with_io(
28+
prefix,
29+
path_provider,
30+
dataset_source=driver,
31+
fileio_suffix=fileio_suffix,
32+
plugins=plugins,
33+
)
34+
35+
super().__init__(
36+
controller=controller,
37+
writer=writer,
38+
plugins=plugins,
39+
name=name,
40+
config_sigs=config_sigs,
41+
)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from ophyd_async.epics import adcore
2+
3+
from ._sim_io import SimDriverIO
4+
5+
6+
class SimController(adcore.ADBaseController[SimDriverIO]):
7+
"""Controller for simulated Areadetector."""
8+
9+
def __init__(
10+
self,
11+
driver: SimDriverIO,
12+
good_states: frozenset[adcore.ADState] = adcore.DEFAULT_GOOD_STATES,
13+
) -> None:
14+
super().__init__(driver, good_states=good_states)
15+
16+
def get_deadtime(self, exposure: float | None) -> float:
17+
return 0.001
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
from ophyd_async.epics import adcore
2+
3+
4+
class SimDriverIO(adcore.ADBaseIO):
5+
"""Base class for driving simulated Areadetector IO.
6+
7+
This mirrors the interface provided by ADSimDetector/db/simDetector.template.
8+
"""
9+
10+
pass

0 commit comments

Comments
 (0)