-
Notifications
You must be signed in to change notification settings - Fork 116
Display Builder Plot Compatibility
Plots are complex widgets and very likely to require manual adjustments to the auto-converted files.
The Display Builder provides several plot widgets:
-
XYPlotfor waveforms, either aYwaveform over its array indices, or aYwaveform for values over anXwaveform for positions, where both waveforms need to have the same element count -
StripchartandData Browserfor scalar PVs over time
The BOY XYGraph widget implemented both functionalities,
but which one it actually performed would often depend on the data type of the PV,
which is only known at runtime.
When opening a display, or when bulk-converting displays offline, the PV data type
is unknown. The Display Builder thus converts most BOY plots into XYPlot widgets.
Such displays likely require manual editing to adjust details,
and/or to replace the plot with a Stripchart or Data Browser widget.
The legacy XYGraph widget traces had a buffer size property.
To display waveform PVs, it needed to be set to the waveform size,
often done via scripts.
This is no longer necessary because the XYPlot automatically uses
the actual waveform data.
Legacy scripts that try to set the buffer size will fail,
but such failures can usually be ignored.
In addition to the XYPlot for X, Y waveforms, or the Stripchart for scalars over time, there is often the need for a 'scatter' plot. In practice, there are several approaches to merge updates from X and Y PVs for such a 'scatter' plot:
- Have 'Y' update trigger a data point, using the then-current value of X
- Have 'X' update ... of Y
- Have a third 'Trigger' PV
- Pick values where the time stamp matches with 0.01 seconds
- Something entirely different
Trying to implement this in the scatter plot widget runtime will always end up missing some desired option.
The display builder thus leaves this logic to an IOC, i.e. you need to use for example compress or histogram records
to collect the X and Y data into waveforms, which can then easily be shown in the XYPlot.