Hi,
I have an unusual issue I haven’t seen before. I have a mode selector, activation bo, directed through a fanout (single output with SELL), which finally sends out a read command, like this:
record(mbbo, "$(D):MODE_CMD_SWEEP"){
field(ZRST, "Fullsweep")
field(ZRVL, "0")
field(ONST, "Fullsweep4") <- SELECTED
field(ONVL, "1")
field(TWST, "Simulsweep4")
field(TWVL, "2")
}
#User presses this to execute a scan, stays high for 0.5s
record(bo, "$(D):SWEEP_CMD_EXSC"){
field(ZNAM, "Idle")
field(ONAM, "Sweep")
field(HIGH, "0.5")
field(VAL, "0")
field(FLNK, "_$(D):SWEEP_EXSC")
}
record(fanout, "_$(D):SWEEP_EXSC"){
field(SELM, "Specified")
field(SELL, "$(D):MODE_CMD_SWEEP")
field(LNK0, "_$(D):SWEEP_CMD_DBG")
field(LNK1, "_$(D):SWEEP_CMD_EXSC") <- SELECTED
field(LNK2, "_$(D):SWEEP_CMD_SIM")
}
record(calcout, "_$(D):SWEEP_CMD_EXSC"){
field(DTYP, "stream")
field(INPA, "$(D):SWEEP_CMD_EXSC")
field(INPB, "$(D):PAT_CSET_SWEEP")
field(CALC, "A")
field(OOPT, "Transition To Non-zero")
field(OUT, "@sram.proto fullsweep4($(D)) $(HOST)")
}
The protocol file entry looks like this:
fullsweep4{
ReadTimeout=2000;
InTerminator="\r\0\n\r\0\n>";
out "fullsweep4 c %(_\$1:SWEEP_CMD_EXSC.B)#x";
in "\r\0\n\r\0\nChip: 0\r\0\n# of Events: %(\$1:EVT_RD_CHIP0)d\r\0\nChip: 1\r\0\n# of Events: %(\$1:EVT_RD_CHIP1)d\r\0\nChip: 2\r\0\n# of Events: %(\$1:EVT_RD_CHIP2)d\r\0\nChip: 3\r\0\n# of Events:
%(\$1:EVT_RD_CHIP3)d";
}
it wants a message of the form:
Chip: 0
# of Events: 131072
Chip: 1
# of Events: 131072
Chip: 2
# of Events: 131072
Chip: 3
# of Events: 131072
>
But, the last record (calcout) _SWEEP_CMD_EXSC only fires every other time I activate the bo SWEEP_CMD_EXSC, and wireshark confirms it’s only sending out the inquiry every other click as well. Setting TPRO shows:
epics> ca:daykin@diag-cam: dbProcess of '_SRAM_TEST:SWEEP_CMD_EXSC'
cbLow: dbProcess of '_SRAM_TEST:SWEEP_CMD_EXSC' <- Nothing actually happened, nothing in wireshark, readback records don’t update
ca:daykin@diag-cam: dbProcess of '_SRAM_TEST:SWEEP_CMD_EXSC'
cbLow: dbProcess of Active '_SRAM_TEST:SWEEP_CMD_EXSC' with RPRO=0
<- Record fired correctly, readback records update
What does this indicate? What is RPRO doing?
Thank you,
Evan