From 440320e64cc9aeb45bc6560f18d6e50597c38a71 Mon Sep 17 00:00:00 2001 From: Edward Wall Date: Tue, 4 Aug 2026 13:15:34 +0200 Subject: [PATCH] all forward links --- db/channels.db | 25 ++++++++++-------- db/daq_common.db | 67 +++++++++++++++++++++++++++++------------------- db/time.db | 8 +++--- 3 files changed, 58 insertions(+), 42 deletions(-) diff --git a/db/channels.db b/db/channels.db index 4b2f807..d2075e5 100644 --- a/db/channels.db +++ b/db/channels.db @@ -15,7 +15,8 @@ record(int64in, "$(INSTR)$(NAME):CH$(CHANNEL)") { field(DESC, "DAQ CH$(CHANNEL) Counts") field(EGU, "cts") - field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_POLL") + # field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_POLL") + field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_HWCS") } record(ai, "$(INSTR)$(NAME):CH$(CHANNEL)_RATE") @@ -42,16 +43,16 @@ record(ao, "$(INSTR)$(NAME):CH$(CHANNEL)_THRESH") ################################################################################ # Poll Loop -record(dfanout, "$(INSTR)$(NAME):CH$(CHANNEL)_POLL") -{ - field(DESC, "Channel $(CHANNEL) poll sequence") - field(SELM, "All") - field(OMSL, "closed_loop") - field(DOL, 1) - field(OUTA, "$(INSTR)$(NAME):CH$(CHANNEL)_HWCS.PROC") - field(OUTB, "$(INSTR)$(NAME):CH$(CHANNEL)_STS_RAW.PROC") - field(OUTC, "$(INSTR)$(NAME):CH$(CHANNEL)_REACHED.PROC") -} +# record(dfanout, "$(INSTR)$(NAME):CH$(CHANNEL)_POLL") +# { +# field(DESC, "Channel $(CHANNEL) poll sequence") +# field(SELM, "All") +# field(OMSL, "closed_loop") +# field(DOL, 1) +# field(OUTA, "$(INSTR)$(NAME):CH$(CHANNEL)_HWCS.PROC") +# field(OUTB, "$(INSTR)$(NAME):CH$(CHANNEL)_STS_RAW.PROC") +# field(OUTC, "$(INSTR)$(NAME):CH$(CHANNEL)_REACHED.PROC") +# } ################################################################################ # Clearing Channel Counts @@ -72,6 +73,7 @@ record(seq, "$(INSTR)$(NAME):CH$(CHANNEL)_HWCS") field(SELL, "$(INSTR)$(NAME):CH$(CHANNEL).VAL") field(DO0, 0) field(LNK0, "$(INSTR)$(NAME):CH$(CHANNEL)_CLEARED PP") + field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_STS_RAW.PROC") } record(dfanout, "$(INSTR)$(NAME):CH$(CHANNEL)_CLEAR") @@ -115,6 +117,7 @@ record(mbbi, "$(INSTR)$(NAME):CH$(CHANNEL)_STS") field(ZRST, "Idle") field(ONVL, "1") field(ONST, "Busy") + field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_REACHED") } ################################################################################ diff --git a/db/daq_common.db b/db/daq_common.db index 4823f71..c196cf1 100644 --- a/db/daq_common.db +++ b/db/daq_common.db @@ -149,6 +149,7 @@ record(mbbi, "$(INSTR)$(NAME):STATUS") # 4 should never happen, if it does it means the DAQ reports undocumented statusbits field(FRVL, "4") field(FRST, "INVALID") + field(FLNK, "$(INSTR)$(NAME):PRESET_TYPE_CLEAR") } ################################################################################ @@ -171,7 +172,8 @@ record(bo,"$(INSTR)$(NAME):PAUSE") field(DTYP, "stream") field(OUT, "@$(PROTO) pauseCount($(INSTR)$(NAME):) $(ASYN_PORT)") field(VAL, "0") - field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + # field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + field(FLNK, "$(INSTR)$(NAME):RAW_STATUS") } record(bo,"$(INSTR)$(NAME):CONTINUE") @@ -180,7 +182,8 @@ record(bo,"$(INSTR)$(NAME):CONTINUE") field(DTYP, "stream") field(OUT, "@$(PROTO) continueCount($(INSTR)$(NAME):) $(ASYN_PORT)") field(VAL, "0") - field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + # field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + field(FLNK, "$(INSTR)$(NAME):RAW_STATUS") } record(longout, "$(INSTR)$(NAME):STOP") @@ -188,38 +191,40 @@ record(longout, "$(INSTR)$(NAME):STOP") field(DESC, "Stop the current counting operation") field(DTYP, "stream") field(OUT, "@$(PROTO) stopCount($(INSTR)$(NAME):) $(ASYN_PORT)") - field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + # field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + field(FLNK, "$(INSTR)$(NAME):RAW_STATUS") } ################################################################################ # Poll Loop -record(bo, "$(INSTR)$(NAME):HW_POLL") +record(bi, "$(INSTR)$(NAME):HW_POLL") { - field(OMSL, "closed_loop") - field(DOL, 1) + # field(OMSL, "closed_loop") + # field(DOL, 1) field(SCAN, "$(POLL_FREQ=.5 second)") - field(OUT, "$(INSTR)$(NAME):HW_POLL_SEQ.PROC") + field(FLNK, "$(INSTR)$(NAME):RAW_STATUS") + # field(OUT, "$(INSTR)$(NAME):HW_POLL_SEQ.PROC") } -record(dfanout, "$(INSTR)$(NAME):HW_POLL_SEQ") -{ - field(DESC, "Time channel poll sequence") - field(SELM, "All") - field(OMSL, "closed_loop") - field(DOL, 1) - # This order is important, to ensure that the status - # can't change whichout having first updated the time - # and count records to their final values - field(OUTA, "$(INSTR)$(NAME):RAW_STATUS.PROC") - field(OUTB, "$(INSTR)$(NAME):READALL.PROC") - field(OUTC, "$(INSTR)$(NAME):MAP_STATUS.PROC") - field(OUTD, "$(INSTR)$(NAME):STATUS.PROC") - field(OUTE, "$(INSTR)$(NAME):PRESET_TYPE_CLEAR.PROC") - field(OUTF, "$(INSTR)$(NAME):T_PRESET_CLEAR.PROC") - field(OUTG, "$(INSTR)$(NAME):PRESET_CLEAR.PROC") - field(OUTH, "$(INSTR)$(NAME):CLEAR_WAIT_HW.PROC") -} +# record(dfanout, "$(INSTR)$(NAME):HW_POLL_SEQ") +# { +# field(DESC, "Time channel poll sequence") +# field(SELM, "All") +# field(OMSL, "closed_loop") +# field(DOL, 1) +# # This order is important, to ensure that the status +# # can't change whichout having first updated the time +# # and count records to their final values +# field(OUTA, "$(INSTR)$(NAME):RAW_STATUS.PROC") +# field(OUTB, "$(INSTR)$(NAME):READALL.PROC") +# field(OUTC, "$(INSTR)$(NAME):MAP_STATUS.PROC") +# field(OUTD, "$(INSTR)$(NAME):STATUS.PROC") +# field(OUTE, "$(INSTR)$(NAME):PRESET_TYPE_CLEAR.PROC") +# field(OUTF, "$(INSTR)$(NAME):T_PRESET_CLEAR.PROC") +# field(OUTG, "$(INSTR)$(NAME):PRESET_CLEAR.PROC") +# field(OUTH, "$(INSTR)$(NAME):CLEAR_WAIT_HW.PROC") +# } # The status can be interpreted as follows # @@ -233,6 +238,7 @@ record(mbbiDirect, "$(INSTR)$(NAME):RAW_STATUS") field(DESC, "Raw returned status value") field(DTYP, "stream") field(INP, "@$(PROTO) readStatus($(INSTR)$(NAME):) $(ASYN_PORT)") + field(FLNK, "$(INSTR)$(NAME):READALL") } record(calc, "$(INSTR)$(NAME):MAP_STATUS") @@ -246,6 +252,7 @@ record(calc, "$(INSTR)$(NAME):MAP_STATUS") field(INPF, "$(INSTR)$(NAME):IS_PAUSED PP MS") field(INPG, "$(INSTR)$(NAME):WAIT_HW NPP MS") field(CALC, "(A=1||B=1)?4:(F=1)?3:(C=0&&D=0&&G<=0)?0:(E=1)?2:1") + field(FLNK, "$(INSTR)$(NAME):STATUS") } record(calcout, "$(INSTR)$(NAME):PRESET_TYPE_CLEAR") @@ -256,6 +263,7 @@ record(calcout, "$(INSTR)$(NAME):PRESET_TYPE_CLEAR") field(DOPT, "Use OCAL") field(OCAL, "0") field(OUT, "$(INSTR)$(NAME):PRESET_TYPE PP") + field(FLNK, "$(INSTR)$(NAME):T_PRESET_CLEAR") } record(calcout, "$(INSTR)$(NAME):T_PRESET_CLEAR") @@ -266,6 +274,7 @@ record(calcout, "$(INSTR)$(NAME):T_PRESET_CLEAR") field(DOPT, "Use OCAL") field(OCAL, "0") field(OUT, "$(INSTR)$(NAME):T_PRESET PP") + field(FLNK, "$(INSTR)$(NAME):PRESET_CLEAR") } record(calcout, "$(INSTR)$(NAME):PRESET_CLEAR") @@ -276,6 +285,7 @@ record(calcout, "$(INSTR)$(NAME):PRESET_CLEAR") field(DOPT, "Use OCAL") field(OCAL, "0") field(OUT, "$(INSTR)$(NAME):CH_PRESET_CLEAR PP") + field(FLNK, "$(INSTR)$(NAME):CLEAR_WAIT_HW") } record(calcout, "$(INSTR)$(NAME):CLEAR_WAIT_HW") @@ -325,7 +335,8 @@ record(ao,"$(INSTR)$(NAME):PRESET_TIME") field(OUT, "@$(PROTO) startWithTimePreset$(CHANNELS)($(INSTR)$(NAME):) $(ASYN_PORT)") field(PREC, 2) field(EGU, "seconds") - field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + # field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + field(FLNK, "$(INSTR)$(NAME):RAW_STATUS") } record(ao,"$(INSTR)$(NAME):PRESET_COUNT") @@ -336,7 +347,8 @@ record(ao,"$(INSTR)$(NAME):PRESET_COUNT") field(DOL, "$(INSTR)$(NAME):CH_PRESET PP") field(OUT, "@$(PROTO) startWithCountPreset$(CHANNELS)($(INSTR)$(NAME):) $(ASYN_PORT)") field(PREC, 0) - field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + # field(FLNK, "$(INSTR)$(NAME):HW_POLL_SEQ") + field(FLNK, "$(INSTR)$(NAME):RAW_STATUS") } record(longout, "$(INSTR)$(NAME):SET_WAIT_HW") @@ -408,4 +420,5 @@ record(ai, "$(INSTR)$(NAME):READALL") field(DESC, "Reads monitors and elapsed time") field(INP, "@$(PROTO) readAll$(CHANNELS)($(INSTR)$(NAME):) $(ASYN_PORT)") field(DTYP, "stream") + field(FLNK, "$(INSTR)$(NAME):MAP_STATUS") } diff --git a/db/time.db b/db/time.db index 2ee4a67..d8e8499 100644 --- a/db/time.db +++ b/db/time.db @@ -14,7 +14,7 @@ record(ai,"$(INSTR)$(NAME):T") { field(DESC, "DAQ Measured Time") field(EGU, "sec") - field(FLNK, "$(INSTR)$(NAME):T_POLL") + field(FLNK, "$(INSTR)$(NAME):T_HWCS") } ################################################################################ @@ -51,6 +51,7 @@ record(seq, "$(INSTR)$(NAME):T_HWCS") field(DO0, 0) field(SELM, "Specified") field(SELL, "$(INSTR)$(NAME):T.VAL") + field(FLNK, "$(INSTR)$(NAME):T_STS_RAW") } # Trigger a change in status as clearing @@ -94,14 +95,13 @@ record(mbbi, "$(INSTR)$(NAME):T_STS") field(ZRST, "Idle") field(ONVL, "1") field(ONST, "Busy") + field(FLNK, "$(INSTR)$(NAME):TIME_REACHED") } ################################################################################ # Time Channel Preset -# If set, stop count once preset reached -# TODO type -record(int64in, "$(INSTR)$(NAME):T_PRESET") +record(ai, "$(INSTR)$(NAME):T_PRESET") { field(DESC, "Time Preset") field(VAL, 0)