Hi all,
Today I encountered something kind of interesting and would like to get some outside opinions.
To begin with, I have an IOC for an instrument that I shall call DemoInstr. I have a “setter” and “getter” record for one of its properties. The two records are shown below.
record(ao, “SET_PROP”)
{
field(SCAN, “Passive”)
field(DTYP, “stream”)
field(PRIO, "HIGH")
field(OUT, "@DemoInstr.proto setProp $(PORT)")
field(FLNK, “GET_PROP”)
}
record(ai, “GET_PROP”)
{
field(SCAN, “Passive”)
field(DTYP, “stream”)
field(INP, "@DemoInstr.proto getProp $(PORT)")
}
In a separate IOC that I shall call Setup, I declared a SEQ record called “WRITE_INST” that should write a value into “setProp” when it is processed. Then, “PROCESS_INST”, a SSEQ record, will process because it is forward-linked to “WRITE_INST”.
“PROCESS_INST” should wait for a completion callback with the way it is written. However, when “PRINT_SET_AND_GET” processes, it reports that GET_PROP still contains the previous value. Shouldn’t GET_PROP have been updated because of the completion callback?
I feel like I am missing something in my understanding of completion callbacks.
record(ao, “VAL”)
{
field(SCAN, “Passive”)
}
record(seq, "WRITE_INST")
{
field(SCAN, "Passive")
field(SELM, "All")
field(DOL1, “VAL")
field(LNK1, "SET_PROP")
field(FLNK, “PROCESS_INST ")
}
record(sseq, “PROCESS_INST")
{
field(SCAN, "Passive")
field(SELM, "All")
field(LNK1, "SET_PROP.PROC CA")
field(WAIT1, "Wait")
field(FLNK, “PRINT_SET_AND_GET”)
}
record(aSub, “PRINT_SET_AND_GET")
{
field(SCAN, "Passive")
field(SNAM, “print_set_and_get”)
field(INPA, “SET_PROP”)
field(INPB, “GET_PROP”)
}
Thank you,
Andy
Purple ribbon awareness