changes to play nicer with the nicos detector interface and with caproto

This commit is contained in:
2025-05-23 11:51:57 +02:00
parent 5066cafc07
commit f31e7c1e23
2 changed files with 64 additions and 3 deletions

View File

@ -10,14 +10,42 @@
################################################################################ ################################################################################
# Status Variables # 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 # Count Commands
record(bo, "$(INSTR)$(NAME):C$(CHANNEL)") record(longout, "$(INSTR)$(NAME):C$(CHANNEL)")
{ {
field(DESC, "Clear the current channel count") field(DESC, "Clear the current channel count")
field(DTYP, "stream") field(DTYP, "stream")
field(OUT, "@$(PROTO) clearChannel($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)") field(OUT, "@$(PROTO) clearChannel($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
field(FLNK, "$(INSTR)$(NAME):T$(CHANNEL)")
} }
################################################################################ ################################################################################
@ -26,6 +54,8 @@ record(bo, "$(INSTR)$(NAME):C$(CHANNEL)")
record(longin, "$(INSTR)$(NAME):M$(CHANNEL)") record(longin, "$(INSTR)$(NAME):M$(CHANNEL)")
{ {
field(DESC, "DAQ CH$(CHANNEL)") field(DESC, "DAQ CH$(CHANNEL)")
field(EGU, "cts")
field(FLNK, "$(INSTR)$(NAME):O$(CHANNEL)")
} }
record(ai, "$(INSTR)$(NAME):R$(CHANNEL)") record(ai, "$(INSTR)$(NAME):R$(CHANNEL)")
@ -33,5 +63,6 @@ record(ai, "$(INSTR)$(NAME):R$(CHANNEL)")
field(DESC, "Rate of DAQ CH$(CHANNEL)") field(DESC, "Rate of DAQ CH$(CHANNEL)")
field(INP, "@$(PROTO) readRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)") field(INP, "@$(PROTO) readRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
field(DTYP, "stream") field(DTYP, "stream")
field(EGU, "cts/sec")
field(SCAN, "1 second") field(SCAN, "1 second")
} }

View File

@ -98,6 +98,32 @@ record(longin, "$(INSTR)$(NAME):CHANNELS")
field(DISP, 1) field(DISP, 1)
} }
# Trigger a change in status as clearing
record(bo, "$(INSTR)$(NAME):ETT")
{
field(DESC, "Trigger Clearing Status")
field(VAL, 1)
field(OUT, "$(INSTR)$(NAME):ETS PP")
}
# Trigger a change in status as value returned to 0
record(seq, "$(INSTR)$(NAME):ETO")
{
field(DESC, "Trigger Returned to 0 Status")
field(LNK0, "$(INSTR)$(NAME):ETS PP")
field(DO0, 0)
field(SELM, "Specified")
field(SELL, "$(INSTR)$(NAME):ELAPSED-TIME.VAL")
}
# Current Status of Channel, i.e. is it ready to count?
record(bi, "$(INSTR)$(NAME):ETS")
{
field(DESC, "Channel Status")
field(VAL, 0)
field(ZNAM, "OK")
field(ONAM, "CLEARING")
}
################################################################################ ################################################################################
# Count Commands # Count Commands
@ -167,6 +193,7 @@ record(ai,"$(INSTR)$(NAME):THRESHOLD_RBV")
field(INP, "@$(PROTO) readMinRate($(INSTR)$(NAME):) $(ASYN_PORT)") field(INP, "@$(PROTO) readMinRate($(INSTR)$(NAME):) $(ASYN_PORT)")
field(DTYP, "stream") field(DTYP, "stream")
field(SCAN, "1 second") field(SCAN, "1 second")
field(EGU, "cts/sec")
} }
record(longout,"$(INSTR)$(NAME):THRESHOLD-MONITOR") record(longout,"$(INSTR)$(NAME):THRESHOLD-MONITOR")
@ -185,13 +212,15 @@ record(longin,"$(INSTR)$(NAME):THRESHOLD-MONITOR_RBV")
field(INP, "@$(PROTO) readRateMonitor($(INSTR)$(NAME):) $(ASYN_PORT)") field(INP, "@$(PROTO) readRateMonitor($(INSTR)$(NAME):) $(ASYN_PORT)")
field(DTYP, "stream") field(DTYP, "stream")
field(SCAN, "1 second") field(SCAN, "1 second")
field(EGU, "CH")
} }
record(bo, "$(INSTR)$(NAME):CT") record(longout, "$(INSTR)$(NAME):CT")
{ {
field(DESC, "Clear the timer") field(DESC, "Clear the timer")
field(DTYP, "stream") field(DTYP, "stream")
field(OUT, "@$(PROTO) clearTimer($(INSTR)$(NAME):) $(ASYN_PORT)") field(OUT, "@$(PROTO) clearTimer($(INSTR)$(NAME):) $(ASYN_PORT)")
field(FLNK, "$(INSTR)$(NAME):ETT")
} }
################################################################################ ################################################################################
@ -208,5 +237,6 @@ record(ai, "$(INSTR)$(NAME):READALL")
record(ai,"$(INSTR)$(NAME):ELAPSED-TIME") record(ai,"$(INSTR)$(NAME):ELAPSED-TIME")
{ {
field(DESC, "DAQ Measured Time") field(DESC, "DAQ Measured Time")
field(EGU, "seconds") field(EGU, "sec")
field(FLNK, "$(INSTR)$(NAME):ETO")
} }