NI-DAQmx .NET Framework 4.0 API Reference

Table of Contents

AnalogMultiChannelReader.MemoryOptimizedReadWaveform Method (Int32, AnalogWaveform(Double)[], ReallocationPolicy)

  • Updated2023-02-21
  • 2 minute(s) read
AnalogMultiChannelReader.MemoryOptimizedReadWaveform Method (Int32, AnalogWaveform(Double)[], ReallocationPolicy)
Reads one or more analog waveform samples from one or more AIChannel objects in a task.

Namespace:  NationalInstruments.DAQmx
Assembly:  NationalInstruments.DAQmx (in NationalInstruments.DAQmx.dll) Version: 20.7.40.49302

Syntax

public AnalogWaveform<double>[] MemoryOptimizedReadWaveform(
	int samplesPerChannel,
	AnalogWaveform<double>[] data,
	ReallocationPolicy policy
)
Public Function MemoryOptimizedReadWaveform ( 
	samplesPerChannel As Integer,
	data As AnalogWaveform(Of Double)(),
	policy As ReallocationPolicy
) As AnalogWaveform(Of Double)()

Parameters

samplesPerChannel
Type: SystemInt32
The number of samples to read. If you set samplesPerChannel to -1 for a continuous acquisition, the read retrieves all samples available in the buffer at the time of the read. If you set samplesPerChannel to -1 for a finite acquisition, the read behavior is set by the ReadAllAvailableSamples property of the DaqStream you are reading from.
data
Type: NationalInstrumentsAnalogWaveformDouble
An initialized 1D array of AnalogWaveformTData that contains the read data. Each element in the array corresponds to a channel in the task. The order of the channels in the array corresponds to the order in which you add the channels to the task or to the order of the channels you specify in ChannelsToRead.
policy
Type: NationalInstruments.DAQmxReallocationPolicy
Dictates the reallocation behavior of the read operation. Refer to ReallocationPolicy for more information.

Return Value

Type: AnalogWaveformDouble
A reference to the data parameter containing samples from the task.

Exceptions

ExceptionCondition
DaqExceptionThe NI-DAQmx driver returned an error.
ArgumentException
  1. If data is or is uninitialized;
  2. If the first dimension of data does not match the number of channels; or
  3. If ReallocationPolicy is not ToGrow, and data is not capable of holding the required number of samples.
OutOfMemoryExceptionThere is not enough memory to carry out this operation.

Remarks

If the data buffer is large enough to hold the number of samples requested, this overload attempts to reuse existing AnalogWaveformTData objects and their corresponding memory to acquire data. This results in more efficient memory allocation when performing multiple reads with a continuous analog input task.

NI-DAQmx scales the returned data to the units of the measurement, including any custom scaling you apply to the channel. You specify these units with the create channel methods or the DAQ Assistant.

The data returned from analog waveform reads is affected by the WaveformAttributeMode property of the DaqStream you are reading from.

NI-DAQmx read and write methods time out after the amount of time specified by the Timeout property on the task you are reading from or writing to.

Refer to NI-DAQmx Readers and Writers for more information about memory limitations in NI-DAQmx read methods.

See Also

Log in to get a better experience