AnalogSingleChannelReader.BeginMemoryOptimizedReadWaveform Method (Int32, AsyncCallback, Object, AnalogWaveform(Double), ReallocationPolicy)
- Updated2023-02-21
- 2 minute(s) read
Namespace: NationalInstruments.DAQmx
Assembly: NationalInstruments.DAQmx (in NationalInstruments.DAQmx.dll) Version: 20.7.40.49302
Syntax
public virtual IAsyncResult BeginMemoryOptimizedReadWaveform( int numberOfSamples, AsyncCallback callback, Object state, AnalogWaveform<double> data, ReallocationPolicy policy )
Public Overridable Function BeginMemoryOptimizedReadWaveform ( numberOfSamples As Integer, callback As AsyncCallback, state As Object, data As AnalogWaveform(Of Double), policy As ReallocationPolicy ) As IAsyncResult
Parameters
- numberOfSamples
- Type: SystemInt32
The number of samples to read. If you set numberOfSamples to -1 for a continuous acquisition, the read retrieves all samples available in the buffer at the time of the read. If you set numberOfSamples to -1 for a finite acquisition, the read behavior is set by the ReadAllAvailableSamples property of the DaqStream you are reading from. - callback
- Type: SystemAsyncCallback
An optional asynchronous callback that is called when the read is complete. Specify if you do not want a callback when the read is complete. - state
- Type: SystemObject
A user-provided object that distinguishes this asynchronous read request from other requests. Use this parameter to provide information to the callback. Specify if you do not need to pass any additional information to the callback. - data
- Type: NationalInstrumentsAnalogWaveformDouble
An initialized AnalogWaveformTData that contains the read data. - policy
- Type: NationalInstruments.DAQmxReallocationPolicy
Dictates the reallocation behavior of the read operation. Refer to ReallocationPolicy for more information.
Return Value
Type: IAsyncResultAn IAsyncResult that represents the asynchronous call.
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.
To get the read data or any exceptions that occurred during an asynchronous read initiated with BeginMemoryOptimizedReadWaveform(Int32, AsyncCallback, Object, AnalogWaveformDouble) , call EndMemoryOptimizedReadWaveform(IAsyncResult) with the returned IAsyncResult.
NI-DAQmx scales the read 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.
![]() |
---|
Refer to Asynchronous Reads and Writes for additional information. |