Replies: 3 comments
-
Users likely expect something like this from https://en.wikipedia.org/wiki/Waterfall_plot that scrolls up or down at a constant rate: For the specific example, it would scroll "up", so the bottom line is the current spectrum, and the lines above reflect the history for the last ~14 seconds. One issue for data coming from PVs is the timing. You may not receive an update every second, and you should use the received time stamp, not the time when the PV update happened to be received. But there are several issues: If the PV disconnects, the plot shouldn't simply stop. It needs to continue scrolling up once per second, adding "invalid" rows for the missing data. Finally, when the input is a list of PVs, you need to somehow combine them into one "row", same issue as with a scatter plot https://github.com/ControlSystemStudio/phoebus/wiki/Display-Builder-Plot-Compatibility#scatter-plot |
Beta Was this translation helpful? Give feedback.
-
Because of issues with combining the data into a constantly scrolling plot, one easy way out is to handle all this on the IOC and simply generate an "image", displaying it in the existing image widget. The big advantage of a waterfall plot would be that it's more efficient, because what we transfer once per second is not the complete image but just the last new row, AND the drawing can then be optimized for this by basically doing a |
Beta Was this translation helpful? Give feedback.
-
For what it's worth, tested basic System.arraycopy behavior. Works fine with the overlap of source and destination, so could be used to move raw image buffer content "up" or "down":
Moreover, that doesn't seem to be luck in this implementation of arraycopy but is documented:
|
Beta Was this translation helpful? Give feedback.
-
Collecting requirements for waterfall plots:
supported inputs
waveform pvs
list of scalar pv's
Beta Was this translation helpful? Give feedback.
All reactions