78 lines
2.1 KiB
Plaintext
78 lines
2.1 KiB
Plaintext
# EPICS Database for streamdevice specific to measurement 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
|
|
|
|
################################################################################
|
|
# 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")
|
|
}
|
|
|
|
# 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")
|
|
}
|
|
|
|
################################################################################
|
|
# Count Commands
|
|
|
|
record(longout, "$(INSTR)$(NAME):C$(CHANNEL)")
|
|
{
|
|
field(DESC, "Clear the current channel count")
|
|
field(DTYP, "stream")
|
|
field(OUT, "@$(PROTO) clearChannel($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
|
|
field(FLNK, "$(INSTR)$(NAME):T$(CHANNEL)")
|
|
}
|
|
|
|
record(ao,"$(INSTR)$(NAME):THRESH$(CHANNEL)")
|
|
{
|
|
field(DESC, "Sets minimum rate for counting to proceed")
|
|
field(OMSL, "supervisory")
|
|
field(OROC, "0")
|
|
field(OUT, "@$(PROTO) setMinRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
|
|
field(DTYP, "stream")
|
|
}
|
|
|
|
################################################################################
|
|
# Read all monitors values
|
|
|
|
record(longin, "$(INSTR)$(NAME):M$(CHANNEL)")
|
|
{
|
|
field(DESC, "DAQ CH$(CHANNEL)")
|
|
field(EGU, "cts")
|
|
field(FLNK, "$(INSTR)$(NAME):O$(CHANNEL)")
|
|
}
|
|
|
|
record(ai, "$(INSTR)$(NAME):R$(CHANNEL)")
|
|
{
|
|
field(DESC, "Rate of DAQ CH$(CHANNEL)")
|
|
field(INP, "@$(PROTO) readRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
|
|
field(DTYP, "stream")
|
|
field(EGU, "cts/sec")
|
|
field(SCAN, "1 second")
|
|
}
|