DigitalMultiChannelReader.MemoryOptimizedReadMultiSamplePortUInt16 Method (Int32, UInt16[,], ReallocationPolicy, Int32)
- Updated2023-02-21
- 2 minute(s) read
Namespace: NationalInstruments.DAQmx
Assembly: NationalInstruments.DAQmx (in NationalInstruments.DAQmx.dll) Version: 20.7.45.49302
Syntax
public ushort[,] MemoryOptimizedReadMultiSamplePortUInt16( int samplesPerChannel, ref ushort[,] data, ReallocationPolicy policy, out int actualNumberOfSamplesPerChannelRead )
Public Function MemoryOptimizedReadMultiSamplePortUInt16 ( samplesPerChannel As Integer, ByRef data As UShort(,), policy As ReallocationPolicy, <OutAttribute> ByRef actualNumberOfSamplesPerChannelRead As Integer ) As UShort(,)
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: SystemUInt16
An initialized 2D array of 16-bit unsigned integer samples that contains the read data. Each element in the first dimension of the array corresponds to a channel in the task. Each element in the second dimension of the array corresponds to a sample from each of the channels. 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. - actualNumberOfSamplesPerChannelRead
- Type: SystemInt32
The actual number of samples per channel read. This is useful when the reading operation yields fewer samples than the actual length of data.
Return Value
Type: UInt16A reference to the data parameter containing samples from the task.
Exceptions
Exception | Condition |
---|---|
ArgumentException |
|
DaqException | The NI-DAQmx driver returned an error. |
OutOfMemoryException | There 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 memory allocated from the array to acquire data. This results in more efficient memory allocation when performing multiple reads with a continuous digital 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.
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.