# EPICS Database for streamdevice specific to measurement channels # # Macros # INSTR - Prefix # NAME - the device name, e.g. EL737 # PORT - StreamGenerator Port # CHANNEL - the number associated with the measurment channel ################################################################################ # Status Variables # Trigger a change in status as clearing record(bo, "$(INSTR)$(NAME):T$(CHANNEL)") { field(DESC, "Trigger Clearing Status") field(VAL, 1) field(OUT, "$(INSTR)$(NAME):S$(CHANNEL) PP") } # Trigger a change in status as value returned to 0 record(seq, "$(INSTR)$(NAME):O$(CHANNEL)") { field(DESC, "Trigger Returned to 0 Status") field(LNK0, "$(INSTR)$(NAME):S$(CHANNEL) PP") field(DO0, 0) field(SELM, "Specified") field(SELL, "$(INSTR)$(NAME):M$(CHANNEL).VAL") field(SCAN, ".1 second") } # Current Status of Channel, i.e. is it ready to count? record(bi, "$(INSTR)$(NAME):S$(CHANNEL)") { field(DESC, "Channel Status") field(VAL, 0) field(ZNAM, "OK") field(ONAM, "CLEARING") field(PINI, 1) } ################################################################################ # Count Commands record(longout, "$(INSTR)$(NAME):C$(CHANNEL)") { field(DESC, "Clear the current channel count") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),0,$(TIMEOUT=1)) C_$(CHANNEL)") field(FLNK, "$(INSTR)$(NAME):T$(CHANNEL)") } ################################################################################ # Read all monitors values record(int64in, "$(INSTR)$(NAME):M$(CHANNEL)") { field(DESC, "DAQ CH$(CHANNEL)") field(EGU, "cts") field(DTYP, "asynInt64") field(INP, "@asyn($(PORT),0,$(TIMEOUT=1)) COUNTS$(CHANNEL)") # This is probably too fast. We could trigger things the same as sinqDAQ to ensure the db is update in the same order # field(SCAN, "I/O Intr") field(PINI, "YES") } record(ai, "$(INSTR)$(NAME):R$(CHANNEL)") { field(DESC, "Rate of DAQ CH$(CHANNEL)") field(EGU, "cts/sec") field(DTYP, "asynFloat64") field(INP, "@asyn($(PORT),0,$(TIMEOUT=1)) RATE$(CHANNEL)") field(SCAN, ".5 second") field(PREC, 2) # field(SCAN, "I/O Intr") field(PINI, "YES") }