I'm having another swing at my data passing mechanisms and am back at a problem I still have yet to really come to a complete decision on - if I want to make measurements from a bunch of different devices, some of which might not have fixed timing, how should I best
a) store the data
b) display the data.
It seems like if I have non-constant timing acquisition, b) is more easily answered with an XY-Graph. A Waveform graph, I believe, can be somewhat faked into variable step sizes, but it strikes me as a messy hack (and slow? Haven't tried)
When passing the data, I'm now looking to a "Measurement Result.lvclass". I've yet to determine exactly which sorts of methods I can have operate on a top-level object, i.e. the interface, but I'm hoping a suitable first generation child might be a "Time-Value Result". Here, I anticipate either storing two 1D arrays of Time and Value, or perhaps a 2D array (probably not, because this requires more parsing and increases the chance of messing up with transpositions), or an array of "Points", in the sense of the XY Graph's cluster of X and Y values.
However, storing regularly spaced data as a waveform might be nicer to my RAM (not a real issue, but still...) or HDD space (potentially an issue) or Read/Write speed to disk (likely an issue). Then, I can use "Waveform To XY Pairs.vi" to get arrays if I need them (for example, to implement a dynamic dispatch "Read as Arrays.vi" or similar).
I'm sure this is a problem many people have deliberated over and successfully solved, so I wonder if anyone can provide some insight or advice? In the mean-time, I'll go back to reading Elijah Kerry's Measurement Utility code!
A Waveform graph, I believe, can be somewhat faked into variable step sizes, but it strikes me as a messy hack (and slow? Haven't tried)
It is a Waveform Chart that can do this trick, not the graph. And it makes things a lot simpler than the XY Graph. I even made a nugget: Sporatic Waveform Chart
I can see from the nugget and some of the replies that I can create something like this:
which allows me to add points to a given plot as they arrive, but it seems like this makes my number of plots a fixed, edit-time decision.
Although this was only a very quickly written VI, is there some better way to plot into an existing plot or 'Channel', when new data for other channels is not available?
Edit: I can probably store an array of waveforms in a shift register, not holding any data, and just branch data then use Replace Array Subset to add any new points I have. If I want to change the number of plots, I change what's wired to the right SR.
This resets the Chart when a new Channel/Plot is added, but that's probably not a big issue.