NI-DAQmx .NET Framework 4.5 API Reference

Table of Contents

DigitalSingleChannelReader.MemoryOptimizedReadMultiSamplePortByte Method (Int32, Byte[], ReallocationPolicy, Int32)

  • Updated2023-02-21
  • 2 minute(s) read
DigitalSingleChannelReader.MemoryOptimizedReadMultiSamplePortByte Method (Int32, Byte[], ReallocationPolicy, Int32)
Reads one or more 8-bit unsigned integer samples from a single DIChannel in a task.

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

Syntax

public byte[] MemoryOptimizedReadMultiSamplePortByte(
	int numberOfSamples,
	ref byte[] data,
	ReallocationPolicy policy,
	out int actualNumberOfSamplesRead
)
Public Function MemoryOptimizedReadMultiSamplePortByte ( 
	numberOfSamples As Integer,
	ByRef data As Byte(),
	policy As ReallocationPolicy,
	<OutAttribute> ByRef actualNumberOfSamplesRead As Integer
) As Byte()

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.
data
Type: SystemByte
An initialized 1D array of 8-bit unsigned integer samples that contains the read data. Each element in the array corresponds to a sample from the channel.
policy
Type: NationalInstruments.DAQmxReallocationPolicy
Dictates the reallocation behavior of the read operation. Refer to ReallocationPolicy for more information.
actualNumberOfSamplesRead
Type: SystemInt32
The actual number of samples read. This is useful when the reading operation yields fewer samples than the actual length of data.

Return Value

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

Exceptions

ExceptionCondition
ArgumentException
  1. If data is or is uninitialized;
  2. If ReallocationPolicy is not ToGrow, and data is not capable of holding the required number of samples.
DaqExceptionThe NI-DAQmx driver returned an error.
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 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.

See Also

Log in to get a better experience