Hello,
I have a few questions about the DAQmx Base C API on Mac OS X, using the USB-6009. The "NI-DAQmx Base 1.x C Reference Help" pages and my search of this forum didn't help to answer them:
1. How do I determine the mapping from device names (e.g., "Dev1") to device serial numbers? (`lsdaq' already does this, but I'd like this functionality inside my own program.)
2. How do I query a device (or task) for the sampling rates it supports?
3. When using multiple devices (tasks), it would be convenient to have the equivalent of POSIX select(). That way, a single thread of execution could block, waiting for samples from any task. What's the recommended way to efficiently obtain samples from multiple devices?
4. Is there an example program that reliably samples from the USB-6009 at 48kS/s? Modifying `contAcquireNChan.c' to use the rate 24000.0 instead of 5000.0 causes a runtime error. My own program, which worked fine on the USB-6008, sporadically returns error -200361 (DAQmxErrorInputFIFOOverflow2) at the higher sampling rates. (Oddly, there is no extended error string available for this code.)
5. Has the DAQmx Base framework been tested on Mac OS X 10.4 "Tiger"? When running the example programs, I see messages such as the following:
CNetPort is born.
NIRPC dll initialized
CNetPort is dying.
CNetPort is dead.
NIRPC dll finished - deletion of pNetPort and critical sections
...these don't appear when running under Panther. I'm concerned that there might be other functional differences that I can't see.
Thanks!
-jd