We recommend that you use the new DAQmx API for programming your 4 channel AO device, as well as various single-point and multi-channel analog output boards, including the MIO (multi-function input/output) devices.
The DAQmx API was designed to easily handle the various capabilities of these devices, whether you are doing single-point writes on one or many channels, or continuously generating waveforms on one or many channels. Also, the DAQmx API, through virtual channels, will easily allow you to use your AO device for voltage, current, or other types of user-defined generations.
The NI-FGEN API is focused on arbitrary waveform generators and function generators. It has a smaller API, which allows an Arb or function generator customer to use
the device quickly and easily. But there is no mechanism for writing single-point data values. Everything is a buffered operation, with the waveform residing on the device memory, rather than in computer host memory.
There is no intention to support multi-function AO devices in NI-FGEN. You will be much better served by NI-DAQmx. But for arbitrary waveform generators and function generators, NI-FGEN is the appropriate API to use.
Striking a balance between specific APIs for specific devices and general-purpose APIs that serve many devices is an age-old problem. We do our best to provide our users with the best of both worlds, and value your feedback on the way you use our APIs and how their organization affects you.
Neil F
Senior Software Engineer
Signal Generators R&D
National Instruments
Neil Feiereisel
Principal Engineer, Modular Instruments, National Instruments