Class DigitalOutput
Represents an operator that writes logical values to one or more DAQmx digital output lines from a sequence of sample buffers.
DigitalOutput
configures and starts a task for writing logical values to one or more digital output lines. Logical values for each line are read from sample buffers in the source sequence, where each row corresponds to one of the channels in the signal generation task, and each column to a sample from each of the channels. The order of the channels follows the order in which you specify the channels in the Channels
property.
Each logical value sample can represent either a single line or a bitmask representing the state of all digital lines in a single port, depending on the configuration of the virtual channel. Digital lines can be grouped as a port when creating the local virtual channel, either by specifying a range of lines (e.g. Dev1/port0/line0:3
) or by specifying an entire port at once (e.g. Dev1/port0
).
Signals can be generated continuously, where a ring buffer is constanty updated with new data arriving from the source sequence.
Logical values can also be provided by a source of integers specifying a bitmask with the state of all digital lines in a single port.
Alternatively, signals can also be generated with a finite number of samples, in which case the input buffers will provide samples until the specified buffer size is reached. In this case, the operator will wait for the task to finish generating the specified number of samples.
Inherited Members
Namespace: Bonsai.DAQmx
Assembly: Bonsai.DAQmx.dll
Syntax
public class DigitalOutput : Sink<Mat>
Properties
| Improve this Doc View SourceActiveEdge
Gets or sets a value specifying on which edge of a clock pulse sampling takes place.
Declaration
public SampleClockActiveEdge ActiveEdge { get; set; }
Property Value
Type | Description |
---|---|
NationalInstruments.DAQmx.SampleClockActiveEdge |
BufferSize
Gets or sets the number of samples to generate, for finite samples, or the size of the buffer for continuous samples.
Declaration
public int BufferSize { get; set; }
Property Value
Type | Description |
---|---|
Int32 |
Channels
Gets the collection of virtual output channels on which to write the logical values.
Declaration
public Collection<DigitalOutputChannelConfiguration> Channels { get; }
Property Value
Type | Description |
---|---|
Collection<DigitalOutputChannelConfiguration> |
SampleMode
Gets or sets a value specifying whether the writer task will generate a finite number of samples or if it continuously generates samples.
Declaration
public SampleQuantityMode SampleMode { get; set; }
Property Value
Type | Description |
---|---|
NationalInstruments.DAQmx.SampleQuantityMode |
SampleRate
Gets or sets the sampling rate for writing logical values, in samples per second.
Declaration
public double SampleRate { get; set; }
Property Value
Type | Description |
---|---|
Double |
SignalSource
Gets or sets the optional source terminal of the clock. If not specified, the internal clock of the device will be used.
Declaration
public string SignalSource { get; set; }
Property Value
Type | Description |
---|---|
String |
Methods
| Improve this Doc View SourceProcess(IObservable<Mat>)
Writes logical values to one or more DAQmx digital output lines from an observable sequence of sample buffers.
Declaration
public override IObservable<Mat> Process(IObservable<Mat> source)
Parameters
Type | Name | Description |
---|---|---|
IObservable<Mat> | source | A sequence of 2D Mat objects storing the logical values. Each row corresponds to a channel in the signal generation task, and each column to a sample from each of the channels. The order of the channels follows the order in which you specify the channels in the Channels property. Each sample can represent either a single line or a bitmask representing the state of all digital lines in a single port, depending on the configuration of the virtual channel. |
Returns
Type | Description |
---|---|
IObservable<Mat> | An observable sequence that is identical to the |
Overrides
Process(IObservable<Boolean>)
Writes an observable sequence of logical values to one or more DAQmx digital output lines.
Declaration
public IObservable<bool> Process(IObservable<bool> source)
Parameters
Type | Name | Description |
---|---|---|
IObservable<Boolean> | source | A sequence of boolean values representing the logical levels to write to one or more DAQmx digital output lines. |
Returns
Type | Description |
---|---|
IObservable<Boolean> | An observable sequence that is identical to the |
Process(IObservable<Byte>)
Writes an observable sequence of logical values to one or more DAQmx digital output lines.
Declaration
public IObservable<byte> Process(IObservable<byte> source)
Parameters
Type | Name | Description |
---|---|---|
IObservable<Byte> | source | A sequence of 8-bit unsigned integers representing the state of digital output lines in a local virtual port channel. |
Returns
Type | Description |
---|---|
IObservable<Byte> | An observable sequence that is identical to the |