12-03-2007 03:59 PM
Main issue:
As far as I can tell, you cannot run simultaneous, synchronized analog input and output tasks from NIDAQmxBase 2.1.0-f0.
Workaround:
Try and install NIDAQmx 8.0?
System: (see sys_output in attached tarball for more system information)
Ubuntu 7.10 Gutsy Gibbon, clean install with NIDAQmxBase 2.1.0-f0 mostly following Johannes (studentTUD)
http://forums.ni.com/ni/board/message?board.id=250&message.id=34226
(Still needed to patch NIDAQmxBase, even after installing NIKAL-1.6)
NI-PCI-6052E card
Details:
I attempted to reproduce
Timing and Synchronization Features of NI-DAQmx
http://zone.ni.com/devzone/cda/tut/p/id/4322
Figure 2
In NIDAQmxBase, adding some command line options to control clock source and input/output task starting order.
It is interesting that using /Dev1/ao/SampleClock as a master gives
This routing is not possible in DAQmx Base because only one operation of the board is supported at a time.
When configuring the input clock.
While using /Dev1/ai/SampleClock as a master gives
An attempt has been made to perform a route when the source and the destination are the same terminal.
When configuring the output clock!
Does this mean that the input and outputs are already using the same clock?
No, because of the ~ms delay between the input and output data depending on which started first
(`simult_AIO o - -` vs `simult_AIO i - -`, hard to tell with 10 points, but clear if you do 2000 points at 20kHz).
I'm not sure what to do about this.
I think I'll go back and dig through the NIDAQmx 8.0 on modern linux threads...
Side Issue:
Programs linking to libnidaqmxbase.so segfault on exit if they complete too quickly.
This is possibly related to Miguel Ãngel (maht), klt, and tivoter123's problem.
http://forums.ni.com/ni/board/message?board.id=250&message.id=35359
Workaround: Take more time before exiting.
Details: (see wait* in attached tarball)
It is interesting that wait and wait_pthread_ldl both segfault in WStartTimeer(),
but do so in different subfunctions (402396be vs b77ee6be).
I don't know if that is significant.
==> gdb_wait_core <==
Program terminated with signal 11, Segmentation fault.
#0 0x402396be in ?? () from /usr/local/lib/liblvrtdark.so.8.0
(gdb) bt
#0 0x402396be in ?? () from /usr/local/lib/liblvrtdark.so.8.0
#1 0x40239855 in WStartTimer () from /usr/local/lib/liblvrtdark.so.8.0
...
==> gdb_wait_pthread_ldl_core <==
Program terminated with signal 11, Segmentation fault.
#0 0xb77ee6be in ?? () from /usr/local/lib/liblvrtdark.so.8.0
(gdb) bt
#0 0xb77ee6be in ?? () from /usr/local/lib/liblvrtdark.so.8.0
#1 0xb77ee855 in WStartTimer () from /usr/local/lib/liblvrtdark.so.8.0
...
Any thoughts?
Trevor
12-03-2007 04:03 PM
12-05-2007 01:47 AM
Hello Wtking,
I am not sure I understand your question. Please clarify what the question you have is. Also include what hardware models and software versions you are using.
12-05-2007 09:45 AM
12-07-2007 04:29 PM
Hi Trevor,
From my understanding, the program in the "Timing and Synchronization Features in DAQmx" Developer Zone article does what you need for your application. The only problem is that you are using Linux and DAQmx Base. You should be able to re-build this code in DAQmx base using the DAQmx Base VI's. The only differences are:
I hope this helps!
12-10-2007 11:06 AM
12-11-2007 01:43 PM
12-12-2007 06:14 PM
12-13-2007 02:30 PM