06-27-2008 11:41 AM
1) defer only acts on the FP it is associated with. The others will update fine.
2) If you only present the data to the graph when the data changes instead of always send the same data 5 times a second will keep the CPU demands low.
Ben
06-27-2008 11:52 AM
Thanks Ben,
The data being send to the XY Graph is in reality always changing although it may be by a very small amount.
Is it possible to defer updates for a specific object such as the XY Graph rather than for an entire front panel?
Cliff
06-27-2008 11:57 AM
06-27-2008 12:13 PM
06-27-2008 01:00 PM
There is no question that reducing the amount of data on the graph will help with the performance issue. I think Ben's idea with the defer panel updates is an interesting one.
As I'm familiar with Cliffs project, let me give a little more perspective on the issue. I think the challenge he is having is that this graph is monitoring continuous data from a machine and the X and Y channels that are plotted against each other are selectable by the user on the fly depending on what he needs to monitor. The selection of channels that can be chosen for the graph have very different ranges. Keeping the auto scaling turned on is very nice so that the data can be properly displayed. What happens is that if the data selected by the user goes to zero, and all you have is some noise, the plot will zoom in (auto scaling) and turn into this "blob" of lines that the X-Y graph really starts to choke on. Yet at any instant there could be a large transient in the data that needs the resolution of 10k points to see the detail. The graph has no problem plotting the 10K points when those points are spread out over a large range.
Programatically reducing the number of data points when the data is near zero and turns into the dreaded "blob" is not trivial because in some cases, depending on the channels selected, there is valid data in that range.
Thanks for everyones input
06-27-2008 02:11 PM
"Taming the beast" is an art form.
Throtle the update by presenting the data in 1 second batches.
When apply updates, check the new data min max against the previous min-max and doa an "auto-scale once now" after the data is presented then set no auto-scale. (before the un-defer).
Ben