Source code for ophyd_async.fastcs.panda._hdf_panda
from __future__ import annotations
from collections.abc import Sequence
from ophyd_async.core import PathProvider, SignalR, StandardDetector
from ophyd_async.fastcs.core import fastcs_connector
from ._block import CommonPandaBlocks
from ._control import PandaPcapController
from ._writer import PandaHDFWriter
MINIMUM_PANDA_IOC = "0.11.4"
[docs]
class HDFPanda(
CommonPandaBlocks, StandardDetector[PandaPcapController, PandaHDFWriter]
):
"""PandA with common blocks for standard HDF writing."""
def __init__(
self,
prefix: str,
path_provider: PathProvider,
config_sigs: Sequence[SignalR] = (),
name: str = "",
):
error_hint = f"Is PandABlocks-ioc at least version {MINIMUM_PANDA_IOC}?"
# This has to be first so we make self.pcap
connector = fastcs_connector(self, prefix, error_hint)
controller = PandaPcapController(pcap=self.pcap)
writer = PandaHDFWriter(
path_provider=path_provider,
name_provider=lambda: name,
panda_data_block=self.data,
)
super().__init__(
controller=controller,
writer=writer,
config_sigs=config_sigs,
name=name,
connector=connector,
)