I have a USB-6009 device that I am controlling with the .Net NI-DAQmx interface.
It appears that each call to "WriteSingleSamplePort" takes exactly 1 millisecond. For those not familiar with the .Net interface, this is equivalent to writing an integer value to a digital port, thereby setting the digital output state for all pins in a DO port at the same time.
Now, I assume that the NI-DAQmx software interface is what is limiting the output speed. Is this true, and if so, can anyone provide a reference to this limitation? (In the USB-6009 spec, I can see rate limits for Analog input and output, but not digital output.)
Is this 1-ms limit only true for the USB-600x devices, or is it true for digital output with Ni-DAQ-mx in general?
Is there any way to remove this limitation? Is there a way to increase DO speed by e.g. writing to a single pin instead of the whole port?
Is this speed limitation put in place because the hardware itself can take up to 1 ms to respond? If so, why is the DO operation so slow? Even if digital output is slow, I don't like the fact that the software locks the thread for the full millisecond. I would like to be performing continuous analog input at the same time as digital output, and it appears I will only be able to do this by using a multi-threaded approach where analog input is occuring on a separate thread because the digital output locks its own thread for a full millisecond during each pin change. (Edit: I suppose I can avoid explicit multithreading by using the async BeginWriteMultiSamplePort function etc)
Thank you for any help or advice you can provide regarding this.