Hi Michael,
Thanks for your answer!
I'm using EPICS base 3.15.6 in this case + stream device 2.8.8 + asyn R4-35.
I'm controlling the number of points of my waveform by writing into another record that changes the number
of points in my instrument.
I'm using this record for the waveform:
record(waveform, "$(P)$(R)Trace-Mon") {
field(DESC, "Get trace waveform")
field(SCAN, ".002 second")
field(SDIS, "$(P)$(R)GetSpectrum-Sel.RVAL")
field(DISV, "0")
field(MPST, "On Change")
field(APST, "On Change")
field(PRIO, "HIGH")
field(NELM, "32001")
field(FTVL, "FLOAT")
field(DTYP, "stream")
field(INP, "@rsfsx.proto monTrace $(PORT)")
field(FLNK, "$(P)$(R)TraceLen-Mon")
}
And the stream device protocol:
monTrace {
out "TRAC? TRACE1";
in "%f";
}
In one terminal I was monitoring the NORD field of my waveform:
lerwys@localhost:~$ camonitor -# 1 SI-Glob:DI-TuneProc-H:Trace-Mon.NORD
SI-Glob:DI-TuneProc-H:Trace-Mon.NORD 2019-11-07 10:18:27.332989 1 550
On another terminal I changed the number of points of that waveform:
lerwys@localhost:~$ caput SI-Glob:DI-TuneProc-H:SwePts-SP 600
Old : SI-Glob:DI-TuneProc-H:SwePts-SP 550
New : SI-Glob:DI-TuneProc-H:SwePts-SP 600
The monitor does not change when I change the number of points, but when I do the camonitor command again it shows the correct value for NORD:
lerwys@localhost:~$ camonitor -# 1 SI-Glob:DI-TuneProc-H:Trace-Mon.NORD
SI-Glob:DI-TuneProc-H:Trace-Mon.NORD 2019-11-07 10:18:27.332989 1 550
^C
lerwys@localhost:~$ camonitor -# 1 SI-Glob:DI-TuneProc-H:Trace-Mon.NORD
SI-Glob:DI-TuneProc-H:Trace-Mon.NORD 2019-11-07 10:22:07.733633 1 600
One of my colleagues mentioned that maybe StreamDevice is not posting monitors on NORD. Doing a quick
show any db_post_events () call. Could this be the issue?
Thanks!
Lucas