File tree Expand file tree Collapse file tree 4 files changed +82
-0
lines changed
src/ophyd_async/epics/adsim Expand file tree Collapse file tree 4 files changed +82
-0
lines changed Original file line number Diff line number Diff line change 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+ ]
Original file line number Diff line number Diff line change 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+ )
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments