Source code for ophyd_async.epics.adcore._plan_stubs
from collections.abc import Sequence
import bluesky.plan_stubs as bps
from bluesky.utils import plan
from ._detector import AreaDetector
from ._io import NDArrayBaseIO, NDStatsIO
from ._ndattribute import (
NDAttributeDataType,
NDAttributeParam,
NDAttributePv,
ndattributes_to_xml,
)
[docs]
@plan
def setup_ndattributes(
device: NDArrayBaseIO,
ndattributes: Sequence[NDAttributeParam | NDAttributePv],
):
xml = ndattributes_to_xml(ndattributes)
yield from bps.abs_set(
device.nd_attributes_file,
xml,
wait=True,
)
[docs]
@plan
def setup_ndstats_sum(detector: AreaDetector, stats_name: str = "stats"):
"""Set up nd stats sum nd attribute for a detector."""
stats = detector.get_plugin(stats_name, NDStatsIO)
yield from (
setup_ndattributes(
stats,
[
NDAttributeParam(
name=f"{detector.name}-sum",
param="TOTAL",
datatype=NDAttributeDataType.DOUBLE,
description="Sum of the array",
)
],
)
)