06-03-2015 02:11 AM
Hello,
We have replaced our old lab computer by a new model and used the opportunity to also move to a more current operating system (from Win XP to Win 7 64 bit) and to the current version of CVI (2013 SP2), its runtime engine, and all the device drivers (latest 2014 versions of VISA...).
Unfortunately, this broke an old software because of the following error message:
VISA error: insufficient location information or the device or resource is not present in the system.
After some investigations it turned out that the source of this problem is the call to
viFindRsrc ( resource_manager_handle, "ASRL[0-9]*::?*INSTR", &find_handle, &return_count, instrument_descriptor );
and
status = viFindNext ( find_handle, instrument_descriptor );
because LPT 1 is included in the list of serial devices although it does not exist physically. So trying to open the port fails with the above mentioned error.
MAX has the same problem, it lists LPT 1 but with a red cross, indicating that it is unable to open it. Windows device manager does not show LPT.
So, my conclusion would be that this is a bug in VISA... Am I wrong, is it a know bug, is there a know workaround?
Thanks!
Solved! Go to Solution.
06-03-2015 08:41 AM - edited 06-03-2015 08:46 AM
The same happens on my W7 64 bits computer.
Disabling the port in MAX should resolve your problem.
06-03-2015 08:50 AM
Thanks a lot for your feedback - and the workaround.
Still I would be happy if NI could comment on the question if this is considered a bug and going to be fixed
06-03-2015 09:12 AM
I would also be very interested in a reply from NI.
06-03-2015 09:21 AM
06-06-2015 06:19 AM
08-06-2015 10:53 AM
I would have thought that 2 months should give enough time for an answer
08-07-2015 10:07 AM
The reason why I am still asking is that the 'solution' with MAX works only on my computer. If I distribute the program, typically there will be no MAX installed...
@ Dennis_Knudson: Please, could you explain a bit more in detail what you mean by "my resource searches use the aliases and not the canonical name".
Right now, after viFindRsrc ( resource_manager_handle, "ASRL[0-9]*::?*INSTR", &find_handle, &return_count, instrument_descriptor );
my software checks the port type (COM (RS232/RS485) or LPT) for each port, the routine is like this:
VISATestSerialPortAvailable ( ... )
for ( index = 2; index <= return_count; index ++ )
{
status = viFindNext ( find_handle, instrument_descriptor );
if ( status == VI_SUCCESS )
{
VISATestSerialPortAvailable ( ... );
}
}
By the way, does searching for aliases really help - doesn't it also rely on MAX?
Thanks!
08-07-2015 03:28 PM
08-11-2015 04:08 AM
After opening a support request our kind local support informed me today that this is a known issue, CAR 242354, supposedly fixed in VISA 15.
Kudos to her