Hi King Cosmos!
I agree with everything that Lynn said, but I'll add my 2 cents worth also. First off, sending a 16 to the 'mask' input of the VISA Set I/O Buffer Size.vi DOES NOT set the buffer size to 16. The mask input is a code that specifies which buffer (16-> I/O receive buffer; 32-> I/O transmit buffer; 48-> both) to set the size of. The 'size' input of the VISA Set I/O Buffer Size.vi is actually what specifies the size of the selected buffer. The way you have it set up is fine, but I just wanted to explain actually how it was set up :-). See the Help for VISA Set I/O Buffer Size.vi:
=======================================================
MASK designates which buffer size to set. Valid values for mask are I/O receive buffer (16) and I/O transmit buffer (32). Add the mask values to set the size of both buffers simultaneously. SIZE designates the size of the I/O buffer. Set size slightly higher than the amount of data you expect to transmit or receive. The default is 4096.
=======================================================
Secondly, I see that you are acquiring 512 bytes (256 words) of data, but I never see where you're reading the other 3 pieces of data. If those 3 pieces of data are also coming in over the serial port, you will need to be able to distinguish that they are actually "different" than the 256 words of data for your array. Some type of indication will be needed for this (some type of token that you search for or something). Then you will also (obviously) need to increase your iterations of the For Loop to account for the extra 3 pieces of data.
Hope this helps!!
Travis H.
National Instruments
Travis H.
LabVIEW R&D
National Instruments