Table of Contents
Architecture
Channel Architecture Overview
The architecture separates channel definition, runtime processing and value transport.
-
Channel Config describes what a channel is.
-
Runtime Channel describes how a configured channel is processed inside a runtime task.
-
Data Channel transports the current value of a channel.
All three objects are linked by the same Channel ID.
Channel Configuration
Notes
-
DAQmx channel configs are specific because they contain DAQmx/cDAQ setup information.
-
Generic Numeric/Boolean Channel Config is used for normal device values without special behavior.
-
Device-specific channel configs are only added when special validation or configuration is needed.
-
Example: Chiller Setpoint Channel Config adds setpoint limits and validation.
Task Group defines which runtime handler is responsible for a channel, for example DAQmx.AI, DAQmx.AO, or Chiller. It is used by the builder/dispatcher to group channels and route read/write actions to the correct runtime task or device module.
Data Transformation
Groups reusable value conversion logic used by Channel Config and Runtime Channel classes.
Numeric transformations are optional and ordered. An empty transformation array means the value is passed through unchanged.
Read means converting values into the representation used by the application. Write means converting application values back into the representation expected by the device or API.
Read path:
Device/API Value -> Application Value
Write path:
Application Value -> Device/API Value
Examples:
-
DAQmx voltage input: voltage value → pressure value
-
Digital device API value: device unit → application/SI unit
-
Calibration: measured value → corrected application value
Channel Config Registry
Central lookup for all static Channel Config objects.
-
Provides channel config lookup by Channel ID, Task Group or any project specific filtering.
-
Used by Task Builder, Data Hub, UIs and other Modules.
Runtime Channel
Runtime Channels are light weighted and created during task setup and used during cyclic read/write processing.
-
Maps task array index to Channel ID.
-
Contains only runtime processing data.
-
Does not contain full static metadata or live broadcast values.
-
Runtime Channels are ordered in the same order as the hardware task channels for DAQmx
Data Channel
Data Channels transport current runtime values.
-
Identified by Channel ID.
-
Used by Data Hub, Logger, UI, Calculation, and other modules.
-
Contains no static channel metadata, only the actual data of a channel
-
Child Implementation to project needs
We decided to name them Data Channel and e.g. not Measurement because we also want to use them for setpoints and calculated values.