Notes from Chapter 10 ("Easy I/O for DAQ Library") from the LabWindows/CVI Standard Libraries book.

     These notes are an attempt to figure out how to aquire data from more than one channel on the NIDAQ board at one time.

Here are the necessary functions described below:



Note: in the declarations below ulong stands for unsigned long, ushort stands for unsigned short, etc.

NIDAQ Board interested in is: AT-MIO-16-E. Also interested in continuous samples at a steady sampling rate controlled by the hardware.

Here is a disclaimer at the start of the chapter:

   Note: It is recommended that you do not mix calls to the Data
      Acquisition Library with similar types of calls to the Easy I/O for DAQ
      Library in the same application.  For example, do not mix analog input
      calls to the Data Acquisition Library with analog input calls to the
      Easy I/O for DAQ Library in the same program.

The sample programs for the Easy I/O are located in the cvi/samples/easyio directory. These sample programs are discussed in the EASYIO section of cvi/samples.doc

Note that Easy I/O for DAQ Library cannot currently work with multirate scanning. (page 10-2).




Definitions



AIStartAcquisition



AICheckAcquisition



AIReadAcquisition



AIClearAcquisition




 

Miscellaneous functions:

Declarations for above functions:

 
   char* errorString = GetDAQErrorString(short errorNumber);

   short error = GetNumChannels(short device, char channelString[], 
                                short channelType, 
                                unsigned long *numberOfChannels);

   short error = GetChannelIndices(short device, char channelString[],
                                   char channelSubString[], short channelType,
                                   long channelIndices[]);
 
   short error = GetChannelNameFromIndex(short device, char channelString[],
                                         long index, short channelType,
                                         char channelName[]);
   
   short error = GetAILimitsOfChannel(short device, char channelString[],
                                      char singleChannel[]
                                      double initialHighLimitVolts,
                                      double initialLowLimitVolts,
                                      double *highLimitVolts,
                                      double *lowLimitVolts);
  
   short error = GroupByChannel(float array[], long numberOfScans,
                                unsigned long numberOfChannels);

   void SetEasyIOMultitaskingMode(int multitaskingMode);










craig@ccrma.stanford.edu