8.10 How to perform partial readout?
92
U5303A User's Manual
ViConstString channel = "Channel1";
ViInt64 const firstRecord = 0;
ViInt64 const offsetWithinRecord = 0;
ViInt64 const numRecordsToRead = 1;
ViInt64 const numPointToRead = points / 2;
ViInt64 arraySize = 0;
ViInt16* dataArray = NULL;
ViInt64 actualRecords = 0;
ViInt64 actualPoints[numRecordsToRead], firstValidPoint[numRecordsToRead];
ViReal64 initialXOffset[numRecordsToRead], initialXTimeSeconds
[numRecordsToRead], initialXTimeFraction[numRecordsToRead];
ViReal64 xIncrement = 0.0, scaleFactor = 0.0, scaleOffset = 0.0;
ViStatus status = VI_SUCCESS;
// Computes minimum data array size for the requested fetch
status = AqMD3_QueryMinWaveformMemory(session, 16, numRecordsToRead, 0,
numPointToRead, &arraySize);
if (status != VI_SUCCESS) { /*handle errors and warnings*/ }
// Allocate memory for waveform data
dataArray = (ViInt16*)malloc((size_t)arraySize * sizeof(ViInt16));
// Fetch the first numPointToRead data
status = AqMD3_FetchMultiRecordWaveformInt16(
session
, channel
, firstRecord
, numRecordsToRead
, offsetWithinRecord
, numPointToRead
, arraySize
, dataArray
, &actualRecords
, actualPoints
, firstValidPoint
, initialXOffset
, initialXTimeSeconds
, initialXTimeFraction
, &xIncrement
, &scaleFactor
, &scaleOffset);
if (status != VI_SUCCESS) { /*handle errors and warnings*/ }
// Fetch the second numPointToRead data into the same data array
status = AqMD3_FetchMultiRecordWaveformInt16(
session
, channel
, firstRecord
, numRecordsToRead
, offsetWithin numPointToRead
, numPointToRead
, arraySize
, dataArray
, &actualRecords
, actualPoints
, firstValidPoint
, initialXOffset
, initialXTimeSeconds
, initialXTimeFraction
, &xIncrement
, &scaleFactor
, &scaleOffset);
if (status != VI_SUCCESS) { /*handle errors and warnings*/ }