Digital Waveform Writes

To perform a digital waveform write, call the DigitalSingleChannelWriter.WriteWaveform or DigitalMultiChannelWriter.WriteWaveform method with one DigitalWaveform or an array of DigitalWaveform objects, respectively, for each channel.

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

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

VB.NET

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

C#

// Given a Task instance "myTask", 
// Initialize the data
DigitalWaveform data = new DigitalWaveform(100, 8);
// Create the reader and attach it to the stream
DigitalSingleChannelWriter writer = new DigitalSingleChannelWriter(myTask.Stream);
// Perform the write
writer.WriteWaveform(true, data);

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

VB.NET

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

C#

// Given a Task instance "myTask", 
// Initialize the data
DigitalWaveform[] data = new DigitalWaveform[2];
data[0] = new DigitalWaveform(100, 8);
data[1] = new DigitalWaveform(100, 8);
// Create the reader and attach it to the stream
DigitalMultiChannelWriter writer = new DigitalMultiChannelWriter(myTask.Stream);
// Perform the write
writer.WriteWaveform(true, data);