# EPICS Database for streamdevice specific to gating channels # # Macros # INSTR - Prefix # NAME - the device name, e.g. EL737 # PROTO - Stream device protocol file # ASYN_PORT - Low level Asyn IP Port to DAQ # CHANNEL - the number associated with the measurment channel ################################################################################ # Records for configuring gating settings record(mbbo, "$(INSTR)$(NAME):GATE-$(CHANNEL)") { field(DESC, "Sets the current gate state") field(DTYP, "Soft Channel") field(OUT, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SET PP") field(ZRST, "Disabled") field(ONST, "Trigger Low") field(TWST, "Trigger High") } record(dfanout, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SET") { field(OUTA, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SEL.SELN PP") field(OUTB, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SEL2.SELN PP") } record(seq, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SEL") { field(SELM, "Specified") field(DO0, 0) field(LNK0, "$(INSTR)$(NAME):GATE-$(CHANNEL)-ENABLE PP") field(DO1, 1) field(LNK1, "$(INSTR)$(NAME):GATE-$(CHANNEL)-ENABLE PP") field(DO2, 1) field(LNK2, "$(INSTR)$(NAME):GATE-$(CHANNEL)-ENABLE PP") } record(bo, "$(INSTR)$(NAME):GATE-$(CHANNEL)-ENABLE") { field(DESC, "Enable Gating Channel") field(ZNAM, "Disabled") field(ONAM, "Enabled") field(DTYP, "stream") field(OUT, "@$(PROTO) setGateStatus($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)") } record(seq, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SEL2") { field(SELM, "Specified") field(DO1, 0) field(LNK1, "$(INSTR)$(NAME):GATE-$(CHANNEL)-TRIG PP") field(DO2, 1) field(LNK2, "$(INSTR)$(NAME):GATE-$(CHANNEL)-TRIG PP") } record(bo, "$(INSTR)$(NAME):GATE-$(CHANNEL)-TRIG") { field(DESC, "Set Count when first Gate high/low") field(ZNAM, "Low") field(ONAM, "High") field(DTYP, "stream") field(OUT, "@$(PROTO) setGateStatus($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)") } # Records for reading configured gating settings record(mbbi, "$(INSTR)$(NAME):GATE-$(CHANNEL)_RBV") { field(DESC, "The current gate state") field(ZRST, "Disabled") field(ONST, "Trigger Low") field(TWST, "Trigger High") } record(calcout, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SEL_RBV") { field(INPA, "$(INSTR)$(NAME):GATE-$(CHANNEL)-ENABLE_RBV NPP") field(INPB, "$(INSTR)$(NAME):GATE-$(CHANNEL)-TRIG_RBV NPP") field(CALC, "A=0?0:B=0?1:2") field(OOPT, "On Change") field(OUT, "$(INSTR)$(NAME):GATE-$(CHANNEL)_RBV PP") field(FLNK, "$(INSTR)$(NAME):GATE-$(CHANNEL)_RBV") } record(bi, "$(INSTR)$(NAME):GATE-$(CHANNEL)-ENABLE_RBV") { field(DESC, "Is Gating Channel Enabled") field(ZNAM, "Disabled") field(ONAM, "Enabled") field(DTYP, "stream") field(INP, "@$(PROTO) getGateStatus($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)") field(SCAN, "2 second") field(FLNK, "$(INSTR)$(NAME):GATE-$(CHANNEL)-SEL_RBV") } record(bi, "$(INSTR)$(NAME):GATE-$(CHANNEL)-TRIG_RBV") { field(DESC, "Count when first Gate high/low") field(ZNAM, "Low") field(ONAM, "High") }