Exemple #1
0
]

from ophyd.scaler import ScalerCH
from ..session_logs import logger

logger.info(__file__)

scaler = ScalerCH("sky:scaler1", name="scaler", labels=("detectors", ))

if len(scaler.channels.chan01.chname.get()) == 0:
    scaler.channels.chan01.chname.put("clock")
    scaler.channels.chan02.chname.put("I0")
    scaler.channels.chan03.chname.put("scint")
    scaler.channels.chan05.chname.put("diode")
    scaler.channels.chan08.chname.put("I0Mon")
    scaler.channels.chan10.chname.put("ROI1")
    scaler.channels.chan11.chname.put("ROI2")
scaler.select_channels(None)

# name some channels for convenience
clock = scaler.channels.chan01.s
I0 = scaler.channels.chan02.s
scint = scaler.channels.chan03.s
diode = scaler.channels.chan05.s
I0Mon = scaler.channels.chan08.s
ROI1 = scaler.channels.chan10.s
ROI2 = scaler.channels.chan11.s

for obj in (clock, I0, scint, diode, I0Mon, ROI1, ROI2):
    obj._ophyd_labels_ = set(list(obj._ophyd_labels_) + ["counter"])
scaler1.wait_for_connection()

if not len(scaler1.channels.chan01.chname.get()):
    # CAUTION: define channel names JUST for this simulation.
    # For a real instrument, the names are assigned when the
    # detector pulse cables are connected to the scaler channels.
    logger.info(
        f"{scaler1.name} has no channel names.  Assigning channel names.")
    scaler1.channels.chan01.chname.put("timebase")
    scaler1.channels.chan02.chname.put("I0")
    scaler1.channels.chan03.chname.put("scint")
    scaler1.channels.chan04.chname.put("diode")
    scaler1.channels.chan05.chname.put("I000")
    scaler1.channels.chan06.chname.put("I00")
    time.sleep(1)  # wait for IOC

# choose just the channels with EPICS names
scaler1.select_channels()

# examples: make shortcuts to specific channels assigned in EPICS

timebase = scaler1.channels.chan01.s
I0 = scaler1.channels.chan02.s
scint = scaler1.channels.chan03.s
diode = scaler1.channels.chan04.s
I000 = scaler1.channels.chan05.s
I00 = scaler1.channels.chan06.s

for item in (timebase, I0, I00, I000, scint, diode):
    item._ophyd_labels_ = set(["channel", "counter"])