04-08-2012 10:54 PM
Hi,
I am trying to read and log the data from Garmin 18X GPS receiver. I am connecting it through USB to serial emulator (no serial connection on my laptop). I do not have any issues in getting to read the data and all works fine. It is just that after a few minutes or sometimes less than a minute the following error pops up "Error -1073807339 occurred at VISA Read in Garmin GPS Series.lvlib:Flush.vi->Garmin GPS Series.lvlib:Write and Flush.vi->Garmin GPS Series.lvlib:Revision Query.vi->Garmin GPS Series.lvlib:Initialize.vi->Garmin GPS Series Configure and Acquire Data.vi"
Possible reason(s):
VISA: (Hex 0xBFFF0015) Timeout expired before operation completed
Doing some searching through the forums, some had suggested that timeout be increased. I cannot find how to do this anywhere in the VI hierachy. I am new to labview, so still trying to find my way around. Any help is appreciated. The link below is for the dependancy files and example VI that I downloaded from NI website:
I am running labview 2011. Thank you.
04-09-2012 02:18 PM
Hi Kumar,
The error is, as you explained related to the timeout. You can use a propoerty node to set this higher if you think that might do the trick, although there are a couple other things you may want to consider as well. See the following KnowledgeBase article from our website, which discusses some of these (including the Timeoue property node set at the end of the article): http://digital.ni.com/public.nsf/allkb/874B379E24C0A0D686256FCF007A6EA0?OpenDocument
Best,
04-09-2012 02:43 PM
How are you reading data in from the COM port?
I'm assuming the device you're using behaves similar to my 60CSx that just spews NMEA sentences out its serial port.
Use the "Bytes at Port" property to read how many bytes are in the hardware buffer. If that value's zero, don't do a read until there's something there, otherwise you'll get the timeout. When there is some amount of data there, read that hardware buffer out and stuff it into a labview program buffer... either a shift register or queue. In your software, parse that program buffer for the info you're interested in and handle it from there.
I think the program architecture and hardware I/O code is what's causing the problem, not the timeout itself.