Files
sinqDAQ/db/daq_8ch.db
T
wall_e a413fecc43
Example Action / Lint (push) Successful in 9s
Example Action / BuildAndTest (push) Failing after 14s
adds software time preset, improves preset monitor switching logic
2026-05-11 10:41:04 +02:00

98 lines
2.9 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):MT1 NPP")
}
record(dfanout,"$(INSTR)$(NAME):RESET_HW_MT")
{
field(OMSL, "supervisory")
field(SELM, "All")
field(OUTA, "$(INSTR)$(NAME):MT1 PP")
field(OUTB, "$(INSTR)$(NAME):MT2 PP")
field(OUTC, "$(INSTR)$(NAME):MT3 PP")
field(OUTD, "$(INSTR)$(NAME):MT4 PP")
field(OUTE, "$(INSTR)$(NAME):MT5 PP")
field(OUTF, "$(INSTR)$(NAME):MT6 PP")
field(OUTG, "$(INSTR)$(NAME):MT7 PP")
field(OUTH, "$(INSTR)$(NAME):MT8 PP")
}
# record(dfanout,"$(INSTR)$(NAME):RESET_MT")
# {
# field(OMSL, "supervisory")
# field(SELM, "All")
# field(OUTA, "$(INSTR)$(NAME):RESET_MT1 PP")
# field(OUTB, "$(INSTR)$(NAME):RESET_MT2 PP")
# field(OUTC, "$(INSTR)$(NAME):RESET_MT3 PP")
# field(OUTD, "$(INSTR)$(NAME):RESET_MT4 PP")
# field(OUTE, "$(INSTR)$(NAME):RESET_MT5 PP")
# field(OUTF, "$(INSTR)$(NAME):RESET_MT6 PP")
# field(OUTG, "$(INSTR)$(NAME):RESET_MT7 PP")
# field(OUTH, "$(INSTR)$(NAME):RESET_MT8 PP")
# }
record(dfanout,"$(INSTR)$(NAME):CMONITORS")
{
field(SELM, "All")
field(OMSL, "supervisory")
field(OUTA, "$(INSTR)$(NAME):C1 PP")
field(OUTB, "$(INSTR)$(NAME):C2 PP")
field(OUTC, "$(INSTR)$(NAME):C3 PP")
field(OUTD, "$(INSTR)$(NAME):C4 PP")
field(OUTE, "$(INSTR)$(NAME):C5 PP")
field(OUTF, "$(INSTR)$(NAME):C6 PP")
field(OUTG, "$(INSTR)$(NAME):C7 PP")
field(OUTH, "$(INSTR)$(NAME):C8 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):THRESH1 PP")
field(OUTB, "$(INSTR)$(NAME):THRESH2 PP")
field(OUTC, "$(INSTR)$(NAME):THRESH3 PP")
field(OUTD, "$(INSTR)$(NAME):THRESH4 PP")
field(OUTE, "$(INSTR)$(NAME):THRESH5 PP")
field(OUTF, "$(INSTR)$(NAME):THRESH6 PP")
field(OUTG, "$(INSTR)$(NAME):THRESH7 PP")
field(OUTH, "$(INSTR)$(NAME):THRESH8 PP")
}
################################################################################
# Read all monitors values