rename/refactor channels.db #9
+144
-118
@@ -8,87 +8,151 @@
|
||||
# CHANNEL - the number associated with the measurment channel
|
||||
|
||||
################################################################################
|
||||
# Status Variables
|
||||
# Channel Specific
|
||||
|
||||
# record(dfanout, "$(INSTR)$(NAME):RESET_MT$(CHANNEL)")
|
||||
# {
|
||||
# field(DESC, "Resets Internal Variables")
|
||||
# field(SELM, "All")
|
||||
# field(OMSL, "supervisory")
|
||||
# field(OUTA, "$(INSTR)$(NAME):M$(CHANNEL)_CLEARED PP")
|
||||
# field(OUTB, "$(INSTR)$(NAME):M$(CHANNEL)_PRESET PP")
|
||||
# }
|
||||
|
||||
# Trigger a change in status as clearing
|
||||
record(bo, "$(INSTR)$(NAME):T$(CHANNEL)")
|
||||
# Updated by READALL, at POLL_FREQ frequency
|
||||
record(int64in, "$(INSTR)$(NAME):CH$(CHANNEL)")
|
||||
{
|
||||
field(DESC, "Trigger Clearing Status")
|
||||
field(VAL, 1)
|
||||
field(OUT, "$(INSTR)$(NAME):M$(CHANNEL)_CLEARED PP")
|
||||
field(DESC, "DAQ CH$(CHANNEL) Counts")
|
||||
field(EGU, "cts")
|
||||
field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_POLL")
|
||||
}
|
||||
|
||||
# Trigger a change in status as value returned to 0
|
||||
record(seq, "$(INSTR)$(NAME):O$(CHANNEL)")
|
||||
record(ai, "$(INSTR)$(NAME):CH$(CHANNEL)_RATE")
|
||||
{
|
||||
field(DESC, "Trigger Returned to 0 Status")
|
||||
field(DO0, 0)
|
||||
field(LNK0, "$(INSTR)$(NAME):M$(CHANNEL)_CLEARED PP")
|
||||
field(SELM, "Specified")
|
||||
field(SELL, "$(INSTR)$(NAME):M$(CHANNEL).VAL")
|
||||
field(FLNK, "$(INSTR)$(NAME):S$(CHANNEL)")
|
||||
field(DESC, "Rate of DAQ CH$(CHANNEL)")
|
||||
field(INP, "@$(PROTO) readRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
|
||||
field(DTYP, "stream")
|
||||
field(EGU, "cts/sec")
|
||||
field(SCAN, "1 second")
|
||||
}
|
||||
|
||||
record(bi, "$(INSTR)$(NAME):M$(CHANNEL)_CLEARED")
|
||||
record(ao, "$(INSTR)$(NAME):CH$(CHANNEL)_THRESH")
|
||||
{
|
||||
field(DESC, "Channel Status")
|
||||
field(VAL, 0)
|
||||
field(ZNAM, "OK")
|
||||
field(ONAM, "CLEARING")
|
||||
# Rate for this channel only applies, if
|
||||
# $(INSTR)$(NAME):THRESHOLD-MONITOR == $(CHANNEL)
|
||||
field(DESC, "Sets min rate for counting to proceed")
|
||||
field(OMSL, "supervisory")
|
||||
field(OROC, "0")
|
||||
field(OUT, "@$(PROTO) setMinRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
|
||||
field(DTYP, "stream")
|
||||
field(EGU, "cts/sec")
|
||||
}
|
||||
|
||||
# Current Status of Channel, i.e. is it ready for a new operation?
|
||||
record(calc, "$(INSTR)$(NAME):S$(CHANNEL)")
|
||||
{
|
||||
field(DESC, "Stupid Nicos Stuff")
|
||||
field(INPA, "$(INSTR)$(NAME):STATUS NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):M$(CHANNEL)_CLEARED NPP")
|
||||
field(INPC, "$(INSTR)$(NAME):M$(CHANNEL)_PRESET NPP")
|
||||
field(CALC, "A == 1 || B || C")
|
||||
field(FLNK, "$(INSTR)$(NAME):MTS$(CHANNEL)")
|
||||
}
|
||||
################################################################################
|
||||
# Poll Loop
|
||||
|
||||
# If set, stop count once threshold reached
|
||||
record(int64in, "$(INSTR)$(NAME):MT$(CHANNEL)")
|
||||
record(dfanout, "$(INSTR)$(NAME):CH$(CHANNEL)_POLL")
|
||||
{
|
||||
field(DESC, "Monitor Count Threshold")
|
||||
field(VAL, 0)
|
||||
field(FLNK, "$(INSTR)$(NAME):M$(CHANNEL)_SET")
|
||||
}
|
||||
|
||||
# Stop the count, if threshold is reached
|
||||
record(calcout, "$(INSTR)$(NAME):MTS$(CHANNEL)")
|
||||
{
|
||||
field(INPA, "$(INSTR)$(NAME):M$(CHANNEL) NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):MT$(CHANNEL) NPP")
|
||||
field(CALC, "B > 0 && A >= B")
|
||||
field(OOPT, "When Non-zero")
|
||||
field(OUT, "$(INSTR)$(NAME):STOP.PROC")
|
||||
}
|
||||
|
||||
record(dfanout, "$(INSTR)$(NAME):M$(CHANNEL)_SET")
|
||||
{
|
||||
field(DESC, "Trigger setting HW preset")
|
||||
field(DESC, "Channel $(CHANNEL) poll sequence")
|
||||
field(SELM, "All")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, 1)
|
||||
field(OUTA, "$(INSTR)$(NAME):M$(CHANNEL)_PRESET PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):SET-TYPE-MON$(CHANNEL).PROC PP")
|
||||
field(OUTA, "$(INSTR)$(NAME):CH$(CHANNEL)_HWCS.PROC")
|
||||
field(OUTB, "$(INSTR)$(NAME):CH$(CHANNEL)_STSRAW.PROC")
|
||||
field(OUTC, "$(INSTR)$(NAME):CH$(CHANNEL)_REACHED.PROC")
|
||||
}
|
||||
|
||||
record(calcout, "$(INSTR)$(NAME):M$(CHANNEL)_CHECK_SET")
|
||||
################################################################################
|
||||
# Clearing Channel Counts
|
||||
|
||||
record(bi, "$(INSTR)$(NAME):CH$(CHANNEL)_CLEARED")
|
||||
{
|
||||
field(VAL, 0)
|
||||
field(ZNAM, "Cleared")
|
||||
field(ONAM, "Clearing")
|
||||
}
|
||||
|
||||
# Trigger a change in status as value returned to 0
|
||||
record(seq, "$(INSTR)$(NAME):CH$(CHANNEL)_HWCS")
|
||||
{
|
||||
field(DESC, "Trigger Returned to 0 Status")
|
||||
field(SELM, "Specified")
|
||||
field(SELL, "$(INSTR)$(NAME):CH$(CHANNEL).VAL")
|
||||
field(DO0, 0)
|
||||
field(LNK0, "$(INSTR)$(NAME):CH$(CHANNEL)_CLEARED PP")
|
||||
}
|
||||
|
||||
record(dfanout, "$(INSTR)$(NAME):CH$(CHANNEL)_CLEAR")
|
||||
{
|
||||
field(DESC, "Clears the current channel count")
|
||||
field(SELM, "All")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, 1)
|
||||
field(OUTA, "$(INSTR)$(NAME):CH$(CHANNEL)_CLEARED PP PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):CH$(CHANNEL)_HWC.PROC PP")
|
||||
}
|
||||
|
||||
record(longout, "$(INSTR)$(NAME):CH$(CHANNEL)_HWC")
|
||||
{
|
||||
field(DESC, "Clear in Hardware")
|
||||
field(DTYP, "stream")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, "$(INSTR)$(NAME):CH$(CHANNEL)_BM NPP")
|
||||
field(OUT, "@$(PROTO) clearChannel($(INSTR)$(NAME):) $(ASYN_PORT)")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Determining Channel Status
|
||||
|
||||
record(calc, "$(INSTR)$(NAME):CH$(CHANNEL)_STSRAW")
|
||||
{
|
||||
field(DESC, "Channel Status")
|
||||
field(INPA, "$(INSTR)$(NAME):STATUS NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):CH$(CHANNEL)_CLEARED NPP")
|
||||
field(INPC, "$(INSTR)$(NAME):CH$(CHANNEL)_SET NPP")
|
||||
field(CALC, "A == 1 || B || C")
|
||||
field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_STS")
|
||||
}
|
||||
|
||||
# Current Status of Channel, i.e. is it ready for a new operation?
|
||||
record(mbbi, "$(INSTR)$(NAME):CH$(CHANNEL)_STS")
|
||||
{
|
||||
field(DESC, "Channel Status")
|
||||
field(INP, "$(INSTR)$(NAME):CH$(CHANNEL)_STSRAW NPP MS")
|
||||
field(ZRVL, "0")
|
||||
field(ZRST, "Idle")
|
||||
field(ONVL, "1")
|
||||
field(ONST, "Busy")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Channel Preset
|
||||
|
||||
# If set, stop count once preset reached
|
||||
record(int64in, "$(INSTR)$(NAME):CH$(CHANNEL)_PRESET")
|
||||
{
|
||||
field(DESC, "Monitor Count Preset")
|
||||
field(VAL, 0)
|
||||
field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_SETTING")
|
||||
}
|
||||
|
||||
record(calcout, "$(INSTR)$(NAME):CH$(CHANNEL)_REACHED")
|
||||
{
|
||||
field(DESC, "Stop if preset reached")
|
||||
field(INPA, "$(INSTR)$(NAME):CH$(CHANNEL) NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):CH$(CHANNEL)_PRESET NPP")
|
||||
field(CALC, "B > 0 && A >= B")
|
||||
field(OOPT, "When Non-zero")
|
||||
field(OUT, "$(INSTR)$(NAME):STOP.PROC")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Setting Channel Preset
|
||||
|
||||
record(bi, "$(INSTR)$(NAME):CH$(CHANNEL)_SET")
|
||||
{
|
||||
field(DESC, "Channel Status")
|
||||
field(VAL, 0)
|
||||
field(ZNAM, "Set")
|
||||
field(ONAM, "Setting")
|
||||
}
|
||||
|
||||
record(calcout, "$(INSTR)$(NAME):CH$(CHANNEL)_CHECK_SET")
|
||||
{
|
||||
field(DESC, "Was preset fully configured")
|
||||
field(SCAN, ".1 second")
|
||||
field(INPA, "$(INSTR)$(NAME):M$(CHANNEL)_PRESET NPP")
|
||||
field(INPA, "$(INSTR)$(NAME):CH$(CHANNEL)_SET NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):MONITOR-CHANNEL NPP")
|
||||
field(INPC, "$(INSTR)$(NAME):MONITOR-CHANNEL_RBV NPP")
|
||||
field(CALC, "A && ( ($(CHANNEL) # B) || (B = C) )")
|
||||
@@ -96,43 +160,46 @@ record(calcout, "$(INSTR)$(NAME):M$(CHANNEL)_CHECK_SET")
|
||||
field(DOPT, "Use OCAL")
|
||||
field(OCAL, "0")
|
||||
# This is just a delay, as otherwise, Nicos will not see
|
||||
# the $(INSTR)$(NAME):M$(CHANNEL)_PRESET state change
|
||||
# the $(INSTR)$(NAME):CH$(CHANNEL)_SET state change
|
||||
# when not changing which monitor channel the preset
|
||||
# applies to. Is there a better way?
|
||||
field(ODLY, .5)
|
||||
field(OUT, "$(INSTR)$(NAME):M$(CHANNEL)_PRESET PP")
|
||||
field(OUT, "$(INSTR)$(NAME):CH$(CHANNEL)_SET PP")
|
||||
}
|
||||
|
||||
record(bi, "$(INSTR)$(NAME):M$(CHANNEL)_PRESET")
|
||||
record(dfanout, "$(INSTR)$(NAME):CH$(CHANNEL)_SETTING")
|
||||
{
|
||||
field(DESC, "Channel Status")
|
||||
field(VAL, 0)
|
||||
field(ZNAM, "OK")
|
||||
field(ONAM, "SETTING")
|
||||
field(DESC, "Trigger setting HW preset")
|
||||
field(SELM, "All")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, 1)
|
||||
field(OUTA, "$(INSTR)$(NAME):CH$(CHANNEL)_SET PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):CH$(CHANNEL)_IN_HW.PROC PP")
|
||||
}
|
||||
|
||||
record(calcout, "$(INSTR)$(NAME):SET-TYPE-MON$(CHANNEL)")
|
||||
record(calcout, "$(INSTR)$(NAME):CH$(CHANNEL)_IN_HW")
|
||||
{
|
||||
field(DESC, "Set to HW Mon Type if possible")
|
||||
field(DESC, "Possible to configure in HW")
|
||||
field(INPA, "$(INSTR)$(NAME):PRESET-TYPE NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):MT$(CHANNEL) NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):CH$(CHANNEL)_PRESET NPP")
|
||||
field(INPC, "$(INSTR)$(NAME):MONITOR-CHANNEL.DRVH NPP")
|
||||
field(CALC, "A=0 && B>0 && $(CHANNEL)<=C")
|
||||
field(OOPT, "When Non-zero")
|
||||
field(DOPT, "Use OCAL")
|
||||
field(OCAL, "1")
|
||||
field(OUT, "$(INSTR)$(NAME):SET-HW-CHANNEL$(CHANNEL).PROC")
|
||||
field(OUT, "$(INSTR)$(NAME):CH$(CHANNEL)_HW_CONF.PROC")
|
||||
}
|
||||
|
||||
record(ao, "$(INSTR)$(NAME):SET-HW-CHANNEL$(CHANNEL)")
|
||||
record(ao, "$(INSTR)$(NAME):CH$(CHANNEL)_HW_CONF")
|
||||
{
|
||||
field(DESC, "Configure in HW")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, $(CHANNEL))
|
||||
field(OUT, "$(INSTR)$(NAME):MONITOR-CHANNEL PP")
|
||||
field(FLNK, "$(INSTR)$(NAME):SET-TYPE-MON2$(CHANNEL) PP")
|
||||
field(FLNK, "$(INSTR)$(NAME):CH$(CHANNEL)_SET_PTYPE PP")
|
||||
}
|
||||
|
||||
record(ao, "$(INSTR)$(NAME):SET-TYPE-MON2$(CHANNEL)")
|
||||
record(ao, "$(INSTR)$(NAME):CH$(CHANNEL)_SET_PTYPE")
|
||||
{
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, 2)
|
||||
@@ -140,8 +207,6 @@ record(ao, "$(INSTR)$(NAME):SET-TYPE-MON2$(CHANNEL)")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Count Commands
|
||||
|
||||
# Unfortunately, clearing the channels is somewhat complicated as a result of
|
||||
# the addition of more channels over time and minimal changes to the underlying interface
|
||||
#
|
||||
@@ -165,49 +230,10 @@ record(ao, "$(INSTR)$(NAME):SET-TYPE-MON2$(CHANNEL)")
|
||||
# CC 5 setzt gleichzeitig die Zähler der Channels 1 und 3 zurück
|
||||
# CC 16 ist gleichbedeutend wie CT (Timer zurücksetzen)
|
||||
# CC 511 setzt gleichzeitig die Zähler aller Kanäle (auch des Timers) zurück.
|
||||
|
||||
record(calc, "$(INSTR)$(NAME):BM$(CHANNEL)")
|
||||
record(calc, "$(INSTR)$(NAME):CH$(CHANNEL)_BM")
|
||||
{
|
||||
field(DESC, "Bit Mask for Channel")
|
||||
field(INPA, $(CHANNEL))
|
||||
field(CALC, "A > 4 ? 2 ^ A : 2 ^ (A-1)")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(longout, "$(INSTR)$(NAME):C$(CHANNEL)")
|
||||
{
|
||||
field(DESC, "Clear the current channel count")
|
||||
field(DTYP, "stream")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, "$(INSTR)$(NAME):BM$(CHANNEL) NPP")
|
||||
field(OUT, "@$(PROTO) clearChannel($(INSTR)$(NAME):) $(ASYN_PORT)")
|
||||
field(FLNK, "$(INSTR)$(NAME):T$(CHANNEL)")
|
||||
}
|
||||
|
||||
record(ao,"$(INSTR)$(NAME):THRESH$(CHANNEL)")
|
||||
{
|
||||
field(DESC, "Sets min rate for counting to proceed")
|
||||
field(OMSL, "supervisory")
|
||||
field(OROC, "0")
|
||||
field(OUT, "@$(PROTO) setMinRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
|
||||
field(DTYP, "stream")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
# Read all monitors values
|
||||
|
||||
record(int64in, "$(INSTR)$(NAME):M$(CHANNEL)")
|
||||
{
|
||||
field(DESC, "DAQ CH$(CHANNEL)")
|
||||
field(EGU, "cts")
|
||||
field(FLNK, "$(INSTR)$(NAME):O$(CHANNEL)")
|
||||
}
|
||||
|
||||
record(ai, "$(INSTR)$(NAME):R$(CHANNEL)")
|
||||
{
|
||||
field(DESC, "Rate of DAQ CH$(CHANNEL)")
|
||||
field(INP, "@$(PROTO) readRate($(INSTR)$(NAME):, $(CHANNEL)) $(ASYN_PORT)")
|
||||
field(DTYP, "stream")
|
||||
field(EGU, "cts/sec")
|
||||
field(SCAN, "1 second")
|
||||
}
|
||||
|
||||
+48
-45
@@ -45,46 +45,49 @@ record(sel, "$(INSTR)$(NAME):HW_MT")
|
||||
field(SELM, "Specified")
|
||||
field(NVL, "$(INSTR)$(NAME):MONITOR-CHANNEL_RBV.VAL NPP")
|
||||
# Skip A as it corresponds to 0
|
||||
field(INPB, "$(INSTR)$(NAME):MT1 NPP")
|
||||
field(INPC, "$(INSTR)$(NAME):MT2 NPP")
|
||||
field(INPD, "$(INSTR)$(NAME):MT3 NPP")
|
||||
field(INPE, "$(INSTR)$(NAME):MT4 NPP")
|
||||
field(INPF, "$(INSTR)$(NAME):MT5 NPP")
|
||||
field(INPG, "$(INSTR)$(NAME):MT6 NPP")
|
||||
field(INPH, "$(INSTR)$(NAME):MT7 NPP")
|
||||
field(INPI, "$(INSTR)$(NAME):MT8 NPP")
|
||||
field(INPJ, "$(INSTR)$(NAME):MT9 NPP")
|
||||
field(INPK, "$(INSTR)$(NAME):MT10 NPP")
|
||||
field(INPB, "$(INSTR)$(NAME):CH1_PRESET NPP")
|
||||
field(INPC, "$(INSTR)$(NAME):CH2_PRESET NPP")
|
||||
field(INPD, "$(INSTR)$(NAME):CH3_PRESET NPP")
|
||||
field(INPE, "$(INSTR)$(NAME):CH4_PRESET NPP")
|
||||
field(INPF, "$(INSTR)$(NAME):CH5_PRESET NPP")
|
||||
field(INPG, "$(INSTR)$(NAME):CH6_PRESET NPP")
|
||||
field(INPH, "$(INSTR)$(NAME):CH7_PRESET NPP")
|
||||
field(INPI, "$(INSTR)$(NAME):CH8_PRESET NPP")
|
||||
field(INPJ, "$(INSTR)$(NAME):CH9_PRESET NPP")
|
||||
field(INPK, "$(INSTR)$(NAME):CH10_PRESET NPP")
|
||||
}
|
||||
|
||||
record(dfanout,"$(INSTR)$(NAME):RESET_HW_MT")
|
||||
{
|
||||
field(SELM, "All")
|
||||
field(OMSL, "supervisory")
|
||||
field(OUTA, "$(INSTR)$(NAME):RESET_HW_MT1 PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):RESET_HW_MT2 PP")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, 1)
|
||||
field(OUTA, "$(INSTR)$(NAME):RESET_HW_MT1.PROC")
|
||||
field(OUTB, "$(INSTR)$(NAME):RESET_HW_MT2.PROC")
|
||||
}
|
||||
|
||||
record(dfanout,"$(INSTR)$(NAME):RESET_HW_MT1")
|
||||
{
|
||||
field(SELM, "All")
|
||||
field(OMSL, "supervisory")
|
||||
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")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, 0)
|
||||
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):RESET_HW_MT2")
|
||||
{
|
||||
field(SELM, "All")
|
||||
field(OMSL, "supervisory")
|
||||
field(OUTA, "$(INSTR)$(NAME):MT9 PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):MT10 PP")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, 0)
|
||||
field(OUTA, "$(INSTR)$(NAME):CH9_PRESET PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):CH10_PRESET PP")
|
||||
}
|
||||
|
||||
# record(dfanout,"$(INSTR)$(NAME):RESET_MT")
|
||||
@@ -130,22 +133,22 @@ record(dfanout,"$(INSTR)$(NAME):CMONITORS1")
|
||||
{
|
||||
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")
|
||||
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")
|
||||
}
|
||||
|
||||
record(dfanout,"$(INSTR)$(NAME):CMONITORS2")
|
||||
{
|
||||
field(SELM, "All")
|
||||
field(OMSL, "supervisory")
|
||||
field(OUTA, "$(INSTR)$(NAME):C9 PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):C10 PP")
|
||||
field(OUTA, "$(INSTR)$(NAME):CH9_CLEAR PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):CH10_CLEAR PP")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
@@ -166,22 +169,22 @@ record(dfanout,"$(INSTR)$(NAME):THRESHOLD-F1")
|
||||
{
|
||||
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")
|
||||
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")
|
||||
}
|
||||
|
||||
record(dfanout,"$(INSTR)$(NAME):THRESHOLD-F2")
|
||||
{
|
||||
field(OMSL, "supervisory")
|
||||
field(SELM, "All")
|
||||
field(OUTA, "$(INSTR)$(NAME):THRESH9 PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):THRESH10 PP")
|
||||
field(OUTA, "$(INSTR)$(NAME):CH9_THRESH PP")
|
||||
field(OUTB, "$(INSTR)$(NAME):CH10_THRESH PP")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
||||
+13
-23
@@ -28,37 +28,27 @@ record(longin, "$(INSTR)$(NAME):MONITOR-CHANNEL_RBV")
|
||||
record(ai, "$(INSTR)$(NAME):HW_MT")
|
||||
{
|
||||
field(DESC, "Monitor threshold to actually use")
|
||||
field(INP, "$(INSTR)$(NAME):MT1 NPP")
|
||||
field(INP, "$(INSTR)$(NAME):CH1_PRESET 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(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")
|
||||
}
|
||||
|
||||
# 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")
|
||||
# }
|
||||
|
||||
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(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")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
@@ -71,10 +61,10 @@ 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(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")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
||||
+25
-39
@@ -28,49 +28,35 @@ record(longin, "$(INSTR)$(NAME):MONITOR-CHANNEL_RBV")
|
||||
record(ai, "$(INSTR)$(NAME):HW_MT")
|
||||
{
|
||||
field(DESC, "Monitor threshold to actually use")
|
||||
field(INP, "$(INSTR)$(NAME):MT1 NPP")
|
||||
field(INP, "$(INSTR)$(NAME):CH1_PRESET 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")
|
||||
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):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")
|
||||
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")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
@@ -83,14 +69,14 @@ 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")
|
||||
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")
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
||||
+4
-3
@@ -5,6 +5,7 @@
|
||||
# NAME - the device name, e.g. EL737
|
||||
# PROTO - Stream device protocol file
|
||||
# ASYN_PORT - Low level Asyn IP Port to EL737
|
||||
# POLL_FREQ - Scan string defining main status-loop polling frequency (default .5 second)
|
||||
|
||||
# Send initial initialisation commands
|
||||
record(bo, "$(INSTR)$(NAME):INIT-CONF")
|
||||
@@ -85,8 +86,8 @@ record(mbbiDirect, "$(INSTR)$(NAME):RAW-STATUS")
|
||||
{
|
||||
field(DESC, "Raw returned status value")
|
||||
field(DTYP, "stream")
|
||||
field(SCAN, ".5 second")
|
||||
field(INP, "@$(PROTO) readStatus($(INSTR)$(NAME):) $(ASYN_PORT)")
|
||||
field(SCAN, "$(POLL_FREQ=.5 second)")
|
||||
field(INP, "@$(PROTO) readStatus($(INSTR)$(NAME):) $(ASYN_PORT)")
|
||||
field(FLNK, "$(INSTR)$(NAME):READALL")
|
||||
}
|
||||
|
||||
@@ -340,7 +341,7 @@ record(ao, "$(INSTR)$(NAME):FAKE-HW-COUNT")
|
||||
{
|
||||
field(DESC, "Count forever :)")
|
||||
field(OMSL, "closed_loop")
|
||||
field(DOL, "15768000") # Half a year
|
||||
field(DOL, "15768000") # Half a year :)
|
||||
field(OUT, "$(INSTR)$(NAME):HW_ETT")
|
||||
field(FLNK, "$(INSTR)$(NAME):PRESET-TIME")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user