Analog Waveform Writes

To perform an analog waveform write, call the AnalogSingleChannelWriter.WriteWaveform or AnalogMultiChannelWriter.WriteWaveform method with one AnalogWaveform<TData> or array of AnalogWaveform<TData> objects, respectively, for each channel.

When performing a write, NI-DAQmx ignores timing information and extended properties set on the AnalogWaveform<TData>; to configure timing, you must use the ConfigureSampleClock method instead.

The following example demonstrates how to perform an analog waveform write on a task with a single channel:

VB.NET

' Given a Task instance "myTask", 
' Initialize the data 
Dim data As AnalogWaveform(Of Double) = New AnalogWaveform(Of Double)(100)
' Create the writer and attach it to the stream 
Dim writer As AnalogSingleChannelWriter = New AnalogSingleChannelWriter(myTask.Stream)
' Perform the write
writer.WriteWaveform(True, data)

C#

// Given a Task instance "myTask", 
// Initialize the data
AnalogWaveform<double> data = new AnalogWaveform<double>(100);
// Create the writer and attach it to the stream
AnalogSingleChannelWriter writer = new AnalogSingleChannelWriter(myTask.Stream);
// Perform the write
writer.WriteWaveform(true, data);

The following example demonstrates how to perform an analog waveform write on a task with multiple channels:

VB.NET

' Given a Task instance "myTask", 
' Initialize the data 
Dim data(2) As AnalogWaveform(Of Double)
data(0) = New AnalogWaveform(Of Double)(100)
data(1) = New AnalogWaveform(Of Double)(100)
' Create the writer and attach it to the stream 
Dim writer As AnalogMultiChannelWriter = New AnalogMultiChannelWriter(myTask.Stream)
' Perform the write
writer.WriteWaveform(True, data)

C#

// Given a Task instance "myTask", 
// Initialize the data
AnalogWaveform<double>[] data = new AnalogWaveform<double>[2];
data[0] = new AnalogWaveform<double>(100);
data[1] = new AnalogWaveform<double>(100);
// Create the writer and attach it to the stream
AnalogMultiChannelWriter writer = new AnalogMultiChannelWriter(myTask.Stream);
// Perform the write
writer.WriteWaveform(true, data);