AnsweredAssumed Answered

:WAV:DATA? DSO5034a VISA-COM example

Question asked by iee488 on Aug 13, 2014
I am programming in LabVIEW but using the VISA-COM example as a guide.

The following is the programming example in the PDF file.
Can someone explain to me why the step is obtained by dividing the number of data bytes by 20?

Earlier :WAVEFORM:POINTS 1000 was sent


Line:-----
' QUERY_WAVE_DATA - Outputs waveform data that is stored in a buffer.

   ' Query the oscilloscope for the waveform data.
   myScope.WriteString ":WAV:DATA?"

   ' READ_WAVE_DATA - The wave data consists of two parts: the header,
   ' and the actual waveform data followed by a new line (NL) character.
   ' The query data has the following format:
   '
   '   

   '
   ' Where:
   '   
= #800001000 (This is an example header)
   ' The "#8" may be stripped off of the header and the remaining
   ' numbers are the size, in bytes, of the waveform data block.  The
   ' size can vary depending on the number of points acquired for the
   ' waveform.  You can then read that number of bytes from the
   ' oscilloscope and the terminating NL character.
   '
   Dim lngI As Long
   Dim lngDataValue As Long

   varQueryResult = myScope.ReadIEEEBlock(BinaryType_UI1)
   ' Unsigned integer bytes.
   For lngI = 0 To UBound(varQueryResult) Step (UBound(varQueryResult) / 20)   ' 20 points.
     If intBytesPerData = 2 Then
       lngDataValue = varQueryResult(lngI) * 256  + varQueryResult(lngI + 1)   ' 16-bit value.
     Else
       lngDataValue = varQueryResult(lngI)   ' 8-bit value.
     End If

     strOutput = strOutput + "Data point " + _
       CStr(lngI / intBytesPerData) + ", " + _
       FormatNumber((lngDataValue - lngYReference) _
           * sngYIncrement + sngYOrigin) + " V, " + _
       FormatNumber(((lngI / intBytesPerData - lngXReference) _
           * sngXIncrement + dblXOrigin) * 1000000) + " us" + vbCrLf
   Next lngI
   MsgBox "Waveform data:" + vbCrLf + strOutput

Outcomes