NI-DAQmx is the new NI data acquisition driver framework that addresses several weaknesses that were present in Traditional NI-DAQ (Legacy). Some of the advantages include the following:
- NI-DAQmx provides significant performance improvements over Traditional NI-DAQ (Legacy), especially for single-point software-timed analog input.
Measurement based API
- The API for NI-DAQmx revolves around the type of measurement that is made. The API provides abstraction that allows you to specify what hardware will do based on the measurement. The measurement based API is in contrast to Traditional NI-DAQ (Legacy), which allows you to specify what the hardware will do based on the hardware subsystem.
- Using the NI-DAQmx driver, concurrent I/O operations is easy to setup, and you can create multithreaded data acquisition systems without much additional work.
Improved State Model
- NI-DAQmx defines and enforces a state model, which eliminates unnecessary reconfigurations of input limits, timing, triggering, and accessories. This improvement significantly increases overall performance.
Consistent API across all programming languages
- The NI-DAQmx programming paradigm is consistent across multiple languages. Because of this consistency, you will not have to reacquaint yourself with NI DAQmx driver concepts if you decide to move between programming NI-DAQmx in LabVIEW, LabWindows/CVI, and Measurement Studio.
Robustness in exceptional conditions
- Traditional NI-DAQ can have difficulty handling exceptional conditions, like abnormal process termination. NI-DAQmx defines and enforces policies for such conditions and is much more robust than Traditional NI-DAQ (Legacy).
The NI-DAQmx DAQ framework introduces several new concepts, the two most important being Tasks and the Task State Model.
We will see how tasks are set up as we discuss the DAQmx .NET API in the following sections.
Task State Model
NI-DAQmx uses a task state model to improve ease of use and speed up driver performance. The task state model consists of five states—Unverified, Verified, Reserved, Committed, and Running.
You can choose to interact with as little or as much of the task state model as your application requires.
For more information about the task model of DAQmx, select NI-DAQmx Help » Key NI-DAQmx Concepts » Tasks » Task State Model in the NI-DAQmx Core Help.
The NI-DAQmx Help provides information about some of the other concepts of DAQmx as well. For more information, select NI-DAQmx Help » Key NI-DAQmx Concepts in the NI-DAQmx Core Help.