-
Hi I managed to use one of the sample code: CurveQueryWinforms to retrieve data from a DSA72004B scope. I wonder
Thanks. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
Hi @djsg, The method call I gave this a try on a 70K scope and I think I see further into what you are saying the problem is. Let's say my record length is 50 points, my channels are CH1 and CH3, and my data is being transferred as two bytes per point (Int16). Below are the commands I sent the instrument and the response back.
Notice the binary block header after the first curve? query and how it says #3100... indicating that 100 bytes of data follow (50 points X 2 bytes per point). This makes sense as we are fetching only CH1 (data:sour CH1). OK so we see the problem. How do we fix it? Well there is really only a couple of choices.
Option 1 would be the simplest to implement. However, if you are trying to curve? the instrument while it is in continuous free-running acq mode, you cannot guarantee that both channel's waveforms will be from the same acquisition so you will want to perform a single sequence between acquisitions. If absolute maximum speed is not critical, I'd stick with option 1. |
Beta Was this translation helpful? Give feedback.
Hi @djsg,
The method call
scope.FormattedIO.ReadLineBinaryBlockOfInt16();
is a call to part of the IVI Visa.NET library that is expecting an IEEE formatted binary block of data, which is reads and parses, returning an array of 16 bit values. This method cannot tell the difference of whether the binary block of data contains the data for just one channel or two channels. It just reads the binary block header and the data following it and outputs a data array in accordance with the block header and the data type (which is Int16 in the case of this call).
I gave this a try on a 70K scope and I think I see further into what you are saying the problem is. Let's say my record length is 50 point…