I'm writing a software oscilloscope in LabView using T7. I have done this previously for a U6 with good results so I'm trying to modify my old program to use the T7 LJM library. With the U6 i was able to use a high sample rate and programmatically change the "Scans to Read" value on 'easy stream read.vi' in order to change the size of each parcel of data points that came out and therefore the effective time base of the scope. I'm trying to duplicate this with the T7 by setting the same high sample rate and adjusting the "ScansPerRead" value on LJM_eStreamRead2D.vi rather than having it passed from LJM_eStreamStart.vi. Doing so causes LabView to crash, sometimes right away, sometimes after a random amount of time, sometimes upon stopping the vi. Should this method work or is there a better way to parcel out the data coming from LJM_eStreamRead2D.vi?
The method you describe will not work, because LJM always returns ScansPerRead (the number passed to eStreamStart) scans in each eStreamRead call.
Instead you need to alter, in your software, the number of scans that you processes per call to eStreamRead. You can do either or both of the following:
The eStreamStart page may contain some useful information for you, if you have not already seen it. The sections "How samples are moved from the device to your application", "Low-Latency", and "Stream Speed" may be particularly useful.
Thanks for the reply. I think I basically did that second option while messing around with it after I posted. I made scansperread a fixed small number and fed the resulting output of eStramRead into a modified version of LJStreamUDGraphProcessing.vi which takes my waveform graph x scale in as Graph History. It appears to be working although I may replaced the modified vi with one of my own creating since I'm not entirely sure what is going on in there.