Kind of working, but time based count doesn't work from nicos
This commit is contained in:
@@ -3,6 +3,19 @@
|
||||
# This is created to be able reuse the SinqDAQ interface
|
||||
# in Nicos, to avoid having more code to maintain there.
|
||||
#
|
||||
# Commands that has no actual relevant value that needs to be written to them:
|
||||
# * Pause
|
||||
# * Continue
|
||||
# * Stop
|
||||
# * Full reset
|
||||
# * Reset elapsed time
|
||||
# * Reset the counter/monitor value
|
||||
# Are all implemented as seq records. Due to how the existing
|
||||
# interface worked, they were being written 1 from nicos.
|
||||
# It just so turns out that seq record's VAL field triggers processing,
|
||||
# but a calcout records VAL field doesn't. seq record was the only option
|
||||
# to emulate these features with only 1 record per command.
|
||||
#
|
||||
# This requires following macros to specified:
|
||||
# INSTR: Instrument prefix, e.g. "SQAMOR:"
|
||||
# NAME: Name of the DAQ, e.g. "PROTONDAQ"
|
||||
@@ -86,40 +99,36 @@ record(longout, "$(INSTR)$(NAME):PRESET-TIME-TRIG")
|
||||
field(FLNK, "$(INSTR)$(NAME):COUNT-TYPE")
|
||||
}
|
||||
|
||||
record(longout, "$(INSTR)$(NAME):PAUSE")
|
||||
record(seq, "$(INSTR)$(NAME):PAUSE")
|
||||
{
|
||||
field(DESC, "Pause the current count")
|
||||
field(VAL, 3)
|
||||
field(DRVL, 3)
|
||||
field(DRVH, 3)
|
||||
field(OUT, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
field(SELM, "All")
|
||||
field(DO0, 3)
|
||||
field(LNK0, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
}
|
||||
|
||||
record(longout, "$(INSTR)$(NAME):CONTINUE")
|
||||
record(seq, "$(INSTR)$(NAME):CONTINUE")
|
||||
{
|
||||
field(DESC, "Continue with a count that was paused")
|
||||
field(VAL, 4)
|
||||
field(DRVL, 4)
|
||||
field(DRVH, 4)
|
||||
field(OUT, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
field(SELM, "All")
|
||||
field(DO0, 4)
|
||||
field(LNK0, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
}
|
||||
|
||||
record(longout, "$(INSTR)$(NAME):STOP")
|
||||
record(seq, "$(INSTR)$(NAME):STOP")
|
||||
{
|
||||
field(DESC, "Stop the current counting operation")
|
||||
field(VAL, 5)
|
||||
field(DRVL, 5)
|
||||
field(DRVH, 5)
|
||||
field(OUT, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
field(SELM, "All")
|
||||
field(DO0, 5)
|
||||
field(LNK0, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
}
|
||||
|
||||
record(longout, "$(INSTR)$(NAME):FULL-RESET")
|
||||
record(seq, "$(INSTR)$(NAME):FULL-RESET")
|
||||
{
|
||||
field(DESC, "Perform full reset")
|
||||
field(VAL, 6)
|
||||
field(DRVL, 6)
|
||||
field(DRVH, 6)
|
||||
field(OUT, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
field(SELM, "All")
|
||||
field(DO0, 6)
|
||||
field(LNK0, "$(INSTR)$(NAME):COMMAND-TRIG PP")
|
||||
}
|
||||
|
||||
# Emulate Reset elapsed time
|
||||
@@ -190,22 +199,9 @@ record(ai,"$(INSTR)$(NAME):ELAPSED-TIME")
|
||||
{
|
||||
field(DESC, "DAQ Measured Time")
|
||||
field(EGU, "sec")
|
||||
# We need to process ETS to signal to client
|
||||
# field(FLNK, "$(INSTR)$(NAME):ETO")
|
||||
}
|
||||
|
||||
# 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 elapsed time
|
||||
# This is only to satify the interface.
|
||||
record(bi, "$(INSTR)$(NAME):ETS")
|
||||
{
|
||||
field(DESC, "Channel Status")
|
||||
|
||||
Reference in New Issue
Block a user