I'm reading an array of AI waveforms with AI Read. I need to add this array to a buffer of waveforms (Buffer consists of 2D array of waveforms, channel 0 in column 0, and the most recently acquired array of waveforms in Row N, the oldest in Row 0). I am trying to buffer 30 seconds of data, each waveform array consists of 1 second waveforms with 35,000 samples per waveform. I am using waveforms instead of a 2D array of doubles so I can store attributes as well. I got a version of this working with an uninitialized shift register and several method cases inside of the while loop. I don't have any problem adding elements, and I've moved the arrangement routines outside of the VI as a subVI (this VI takes the current
read point and basically rotates the 2D array in one dimension so the oldest data appears in row one, even though the write point may be the middle of the array). The biggest problem appears to be just writing the data to the "Buffer" indicator for passing information out of this Buffer VI. It can take as long as 8 seconds to complete the simple Read buffer method (this method only writes the values from the 2D array shift register on the left to an indicator). In the meantime the AI Buffered Read suffers a buffer overflow and tanks my application. Is there a better way to perform this whole buffer operation, or to just move the buffer data out of the VI? I'm currently using LabVIEW 7, I am initializing the shift register with a 2D array of sufficient size, and I've tried initializing the indicator as well, hoping that it was just the first Buffer Read that was causing problems.
Thanks,
Jason