08-28-2013 07:57 AM - edited 08-28-2013 07:59 AM
Hi nirvtek-
You're right (from a previous post): you can't currently have a single task that contains channels from C Series modules in separate CompactDAQ chassis. You can have a task that contains channels from multiple C Series modules in the SAME CompactDAQ chassis. EDIT (just to complete the point I was making): However, you can have channels from multiple PXI devices in many cases, assuming that you have those devices in the same PXI(e) chassis or if your PCI(e) devices are connected via a RTSI cable. This is true for DSA, S Series, X Series, SCExpress, and maybe a handful of others, but not true for M Series, E Series, and most older device families.
For voltage, there is this function:
int32 __CFUNC DAQmxGetDevAIVoltageRngs(const char device[], float64 *data, uInt32 arraySizeInElements);
There are similar functions for other measurement types (like current, strain, etc).
I'm pulling this info mostly from the 'List of Device Properties' section of this help file (in mxcprop.chm): http://digital.ni.com/manuals.nsf/websearch/934F66A25EB3831586257AFD00741B13
08-28-2013 08:47 AM
Thanks!
Was wondering where you getting this from.
08-28-2013 09:00 AM
If you have multiple devices running as a single task (when possible), is there any clock drift?
08-28-2013 10:23 AM
Hey nirvtek-
I'm curious which combination of devices you're talking about, but in general the answer is 'no' on clock drift.
In order to have multiple MIO, DSA, or SCExpress devices (PXI(e) or PCI(e)) in the same task, they have to have registered routes between them. This means that you either need them in a PXI(e) chassis that has been registered in MAX or with a RTSI cable that has been physically connected and registered with DAQmx.
In order to have multiple C Series modules in the same task, they must be in the same cDAQ chassis (currently). When you combine them in the same task, the timing is implicitly created using the best available timing available between the modules in hardware. This means that they use either the same sample clock, or (when applicable) they use proportional sample clocks that are divided down from a common timebase.
You should not expect to see drift between channels that are combined in the same DAQmx task with the same DAQmx timing settings.
08-29-2013 04:42 AM
One other thing can the NI-daq api be used in kernel mode from a device driver?
08-29-2013 04:42 AM
One other thing can the NI-daq api be used in kernel mode from a device driver?
08-29-2013 08:05 AM
Hey nirvtek-
The NI-DAQmx API is a user-mode API to the NI-DAQmx kernel drivers. It is meant to be used to create user-mode applications that access NI-DAQmx devices.