84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
# EPICS Database for streamdevice support 1st gen systems with 8 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
|
|
|
|
################################################################################
|
|
# Status Variables
|
|
|
|
record(longout, "$(INSTR)$(NAME):MONITOR-CHANNEL")
|
|
{
|
|
field(DESC, "PRESET-COUNT Monitors this channel")
|
|
field(VAL, 1)
|
|
field(DRVL, 0) # Smallest Monitor Channel (should really be 1)
|
|
field(DRVH, 1) # Largest Monitor Channel
|
|
field(DISP, 1)
|
|
}
|
|
|
|
record(longin, "$(INSTR)$(NAME):MONITOR-CHANNEL_RBV")
|
|
{
|
|
field(DESC, "PRESET-COUNT Monitors this channel")
|
|
field(VAL, 1)
|
|
field(DISP, 1)
|
|
}
|
|
|
|
record(ai, "$(INSTR)$(NAME):HW_MT")
|
|
{
|
|
field(DESC, "Monitor threshold to actually use")
|
|
field(INP, "$(INSTR)$(NAME):CH1_PRESET NPP")
|
|
}
|
|
|
|
record(dfanout,"$(INSTR)$(NAME):RESET_HW_MT")
|
|
{
|
|
field(OMSL, "supervisory")
|
|
field(SELM, "All")
|
|
field(OUTA, "$(INSTR)$(NAME):CH1_PRESET PP")
|
|
field(OUTB, "$(INSTR)$(NAME):CH2_PRESET PP")
|
|
field(OUTC, "$(INSTR)$(NAME):CH3_PRESET PP")
|
|
field(OUTD, "$(INSTR)$(NAME):CH4_PRESET PP")
|
|
field(OUTE, "$(INSTR)$(NAME):CH5_PRESET PP")
|
|
field(OUTF, "$(INSTR)$(NAME):CH6_PRESET PP")
|
|
field(OUTG, "$(INSTR)$(NAME):CH7_PRESET PP")
|
|
field(OUTH, "$(INSTR)$(NAME):CH8_PRESET PP")
|
|
}
|
|
|
|
record(dfanout,"$(INSTR)$(NAME):CMONITORS")
|
|
{
|
|
field(SELM, "All")
|
|
field(OMSL, "supervisory")
|
|
field(OUTA, "$(INSTR)$(NAME):CH1_CLEAR PP")
|
|
field(OUTB, "$(INSTR)$(NAME):CH2_CLEAR PP")
|
|
field(OUTC, "$(INSTR)$(NAME):CH3_CLEAR PP")
|
|
field(OUTD, "$(INSTR)$(NAME):CH4_CLEAR PP")
|
|
field(OUTE, "$(INSTR)$(NAME):CH5_CLEAR PP")
|
|
field(OUTF, "$(INSTR)$(NAME):CH6_CLEAR PP")
|
|
field(OUTG, "$(INSTR)$(NAME):CH7_CLEAR PP")
|
|
field(OUTH, "$(INSTR)$(NAME):CH8_CLEAR PP")
|
|
}
|
|
|
|
################################################################################
|
|
# Count Commands
|
|
|
|
# The hardware stores a separate threshold for each channel, which is somewhat
|
|
# unintuitive for the user, as only one can actually be made use of at a time.
|
|
# So, we just write the threshold value to all channels when it is changed.
|
|
record(dfanout,"$(INSTR)$(NAME):THRESHOLD-F")
|
|
{
|
|
field(OMSL, "supervisory")
|
|
field(SELM, "All")
|
|
field(OUTA, "$(INSTR)$(NAME):CH1_THRESH PP")
|
|
field(OUTB, "$(INSTR)$(NAME):CH2_THRESH PP")
|
|
field(OUTC, "$(INSTR)$(NAME):CH3_THRESH PP")
|
|
field(OUTD, "$(INSTR)$(NAME):CH4_THRESH PP")
|
|
field(OUTE, "$(INSTR)$(NAME):CH5_THRESH PP")
|
|
field(OUTF, "$(INSTR)$(NAME):CH6_THRESH PP")
|
|
field(OUTG, "$(INSTR)$(NAME):CH7_THRESH PP")
|
|
field(OUTH, "$(INSTR)$(NAME):CH8_THRESH PP")
|
|
}
|
|
|
|
################################################################################
|
|
# Read all monitors values
|