class SC(ophyd.areadetector.cam.SimDetectorCam): pool_max_buffers = None class IP(ophyd.ImagePlugin): pool_max_buffers = None class Detector(ophyd.SimDetector): image1 = ophyd.Component(IP, 'image1:') cam = ophyd.Component(SC, 'cam1:') pvproperty_with_rbv = get_pv_pair_wrapper(setpoint_suffix='', readback_suffix='_RBV') # -- DetectorGroup -- class DetectorGroup(PVGroup): # configuration_names = pvproperty(name=None, dtype=str) class SimDetectorCamGroup(PVGroup): # configuration_names = pvproperty(name=None, dtype=str) array_counter = pvproperty_with_rbv(name='ArrayCounter', dtype=int) array_rate = pvproperty(name='ArrayRate_RBV', dtype=float, read_only=True) asyn_io = pvproperty(name='AsynIO', dtype=int) nd_attributes_file = pvproperty(name='NDAttributesFile', dtype=str,
#!/usr/bin/env python3 from caproto.server import (pvproperty, PVGroup, ioc_arg_parser, run, SubGroup, get_pv_pair_wrapper) from caproto import ChannelType pvproperty_with_rbv = get_pv_pair_wrapper(setpoint_suffix='', readback_suffix='_RBV') unknown = int class MCAROIGroup(PVGroup): label = pvproperty(value='label', name='NM') count = pvproperty(value=1, name='', read_only=True) net_count = pvproperty(name='N', dtype=unknown, read_only=True) preset_count = pvproperty(name='P', dtype=unknown) is_preset = pvproperty(name='IP', dtype=unknown) bkgnd_chans = pvproperty(name='BG', dtype=unknown) hi_chan = pvproperty(name='HI', dtype=unknown) lo_chan = pvproperty(name='LO', dtype=unknown) class EpicsMCAGroup(PVGroup): stop_signal = pvproperty(name='Stop', dtype=unknown) preset_real_time = pvproperty(name='.PRTM', dtype=unknown) preset_live_time = pvproperty(name='.PLTM', dtype=unknown) elapsed_real_time = pvproperty(name='.ERTM', dtype=unknown, read_only=True) elapsed_live_time = pvproperty(name='.ELTM', dtype=unknown, read_only=True) spectrum = pvproperty(name='', dtype=float, read_only=True) background = pvproperty(name='.BG', dtype=unknown, read_only=True) mode = pvproperty(value='List', name='.MODE', dtype=str)