Hi,
Summary first: I get an I/O error from VISA when trying to access another(!) serial port through a third-party DLL.
Now the details:
My (LV8.2 on XP) application communicates with various devices through RS232 connections using VISA. For some of them, a NI Serial 8430/4 PCI card is used, for others USB (FTDI) converters, and last but not least it uses the onboard serial port of the host PC.
Now I additionally have to communicate with two additional, different devices for which the protocol isn't documented. Different DLLs, provided by the manufacturers, have to be used for each. For one of them, this works well. But the for the second one, each time when I try to access (initialize) the device through the DLL, another thread of my application (which reads polling from another port) receives an I/O error. And the DLL isn't able to access its own target.
I can selectively disable access to the devices to verify that everything else is configured correctly and actually two different ports are accessed. For example, the application is actively polling COM3 and gets the I/O error when the DLL tries to access COM4 (on NI serial card) or COM7 (USB converter). The I/O error doesn't occur without the DLL, and the DLL on the other hand can successfully connect to its target and communicate when no other ports are accessed with NI VISA.
Because it happens regardless whether the ports are the same kind of hardware or not, the problem must be somewhere in the software. I have no access to the DLL source code, no support contact, and can't tell if it does something bad with regard to serial communication in XP in general. Is there something else that I could do to work around this issue?
Thanks for any pointers,
K. Waschk
--
Dipl.Ing. K. Waschk, telos EDV Systementwicklung GmbH, Hamburg, Germany