diff --git a/db/daq.proto b/db/daq.proto index fd3f2ee..18f9fe0 100644 --- a/db/daq.proto +++ b/db/daq.proto @@ -119,7 +119,9 @@ setMinRate{ readMinRate{ out "DL %(\$1THRESHOLD-MONITOR_RBV)d"; in "%f"; - @mismatch{in "%(\$1MsgTxt)s";} + @init{ + # This is a trick to avoid UDF and initialize to whatever is set in the VAL field + } } setRateMonitor{ diff --git a/db/daq_common.db b/db/daq_common.db index 433e5f6..f7b68af 100644 --- a/db/daq_common.db +++ b/db/daq_common.db @@ -238,8 +238,8 @@ record(ai,"$(INSTR)$(NAME):THRESHOLD_RBV") { field(DESC, "Minimum rate for counting to proceed") field(INP, "@$(PROTO) readMinRate($(INSTR)$(NAME):) $(ASYN_PORT)") + field(VAL, 0) field(DTYP, "stream") - field(SCAN, "1 second") field(EGU, "cts/sec") } @@ -260,6 +260,16 @@ record(longin,"$(INSTR)$(NAME):THRESHOLD-MONITOR_RBV") field(DTYP, "stream") field(SCAN, "1 second") field(EGU, "CH") + field(FLNK, "$(INSTR)$(NAME):THRESHOLD-MONITOR-FLNK") +} + +record(calcout, "$(INSTR)$(NAME):THRESHOLD-MONITOR-FLNK") +{ + field(DESC, "Only process Threshold when Non-Zero") + field(CALC, "A") + field(INPA, "$(INSTR)$(NAME):THRESHOLD-MONITOR_RBV") + field(OOPT, "When Non-zero") + field(OUT, "$(INSTR)$(NAME):THRESHOLD_RBV.PROC PP") } record(longout, "$(INSTR)$(NAME):CT")