Table of Contents

Class DigitalInput

Namespace
Bonsai.DAQmx
Assembly
Bonsai.DAQmx.dll

Represents an operator that reads a sequence of logical values from one or more DAQmx digital input lines.

DigitalInput configures and starts a data acquisition task for sampling logical values from one or more digital input lines. Logical values will be collected in a sample buffer, where 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. Each row corresponds to a channel in the acquisition task, and each column to a sample from each of the channels. The order of the channels in the sample buffer follows the order in which you specify the channels in the Channels property.

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).

If no input source is specified, samples will be collected asynchronously every time a new buffer is filled.

DigitalInput-Async

Alternatively, if an input observable sequence is provided, a new sample buffer will be collected every time a new notification is emitted by the input source.

DigitalInput-Sync

public class DigitalInput : Source<Mat>
Inheritance
DigitalInput
Inherited Members

Properties

ActiveEdge

Gets or sets a value specifying on which edge of a clock pulse sampling takes place.

public SampleClockActiveEdge ActiveEdge { get; set; }

Property Value

SampleClockActiveEdge

BufferSize

Gets or sets the number of samples to acquire, for finite samples, or the size of the buffer for continuous sampling.

public int BufferSize { get; set; }

Property Value

int

Channels

Gets the collection of virtual input channels from which to read logical values.

public Collection<DigitalInputChannelConfiguration> Channels { get; }

Property Value

Collection<DigitalInputChannelConfiguration>

SampleMode

Gets or sets a value specifying whether the acquisition task will acquire a finite number of samples or if it continuously acquires samples.

public SampleQuantityMode SampleMode { get; set; }

Property Value

SampleQuantityMode

SampleRate

Gets or sets the sampling rate for reading logical values, in samples per second.

public double SampleRate { get; set; }

Property Value

double

SamplesPerChannel

Gets or sets the number of samples per channel in each output buffer. If not specified, the number of samples will be set to the size of the buffer.

public int? SamplesPerChannel { get; set; }

Property Value

int?

SignalSource

Gets or sets the optional source terminal of the clock. If not specified, the internal clock of the device will be used.

public string SignalSource { get; set; }

Property Value

string

Methods

Generate()

Reads an observable sequence of logical values from one or more DAQmx digital input lines.

public override IObservable<Mat> Generate()

Returns

IObservable<Mat>

A sequence of 2D Mat objects storing the logical values. Each row corresponds to a channel in the acquisition 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.

Generate<TSource>(IObservable<TSource>)

Reads an observable sequence of logical values from one or more DAQmx digital input lines, where each new buffer is emitted only when an observable sequence emits a notification.

public IObservable<Mat> Generate<TSource>(IObservable<TSource> source)

Parameters

source IObservable<TSource>

The sequence containing the notifications used for emitting sample buffers.

Returns

IObservable<Mat>

A sequence of 2D Mat objects storing the logical values. Each row corresponds to a channel in the acquisition 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.

Type Parameters

TSource

The type of the elements in the source sequence.