A simplified view of a DAQ device is that actual devices provide channels with common functions, logically grouped into subsystems. For example, all channels that provide analog input data may be thought of as belonging to an analog input subsystem.
Another view of this DAQ device is as a provider and consumer of data. The largest unit of data that can be acquired or generated simultaneously, by one or more channels, is a scan. The logical grouping that acquires or consumes one or more scans of data is a channel group. The definition of the channel group is usually constrained by the driver and hardware. For example, when all channels belonging to a single analog input subsystem also share a single clock.
A channel group is an aggregation of channels, usually of the same subsystem, which operate together. For example, all the analog output subsystem channels on a device must be configured, reserved, and act together to generate data as a single scan.
You should define channel groups in a way that reflects the driver constraints, and provide a means for identifying all channels belonging to the group for acquiring and generating scans. Typically, channel groups provide functions to stream data to or from a device buffer.
Each channel on the device has a unique address, defined by device, subsystem, and channel ID. Each channel must be assigned to one channel group. The following diagram illustrates one possible channel group arrangement. In this scenario, analog output (AO) channels 0 and 1 might serve a different purpose than AO channels 2 and 3; while analog input (AI) channels 0–3 are used all together.
For reference information on the functions used in configuring channel groups, see Hardware Management.
All channels in a group operate together. This allows synchronized streaming to the extent supported by the hardware.
A channel cannot belong to more than one group.
All channels in a group are requested, reserved, and released together.
By default, a channel group—and therefore all
its channels—can be accessed by only one data acquisition session
at a time. You cannot add channels to a session if any other channels
in their groups are already added to a different session. If your
driver allows a group to be accessed by different sessions, you can
control this behavior using the