I have a device communicating via virtual comm port over USB. The device and labview program both work fine, most of the time. The program is designed to auto-connect to the attached hardware. This works perfectly when i unplug and reconnect the USB cable.
However, if the device gets power cycled whilst the USB cable is attached and the program/vi is running things go wrong. The device enters a bootloader phase for a few seconds on power up, if labview attempts to query the comm port during this phase the comm port is then corrupted in some manner and no longer recognised by VISA / NI MAX. However, all other programs, hyperterminal, device manager etc can see and communicate with the port once the bootloader has finished. To get Labview / NI MAX to see the port again i have to physically unplug the USB cable. The program does not need to be restarted to detect the comm port again, And, infact, restarting labview or my compiled program does not fix the issue. Only physically unplugging the USB port allows VISA / NI MAX to see the port is connected.
It looks to me like a problem with VISA where somehow if a device isn't properly identified by VISA on the first attempt it just ignores the port exists until an physical intervention. Is there a way to force VISA to fully re-evaluate all connected comm ports?