Sorry wrong link earlier. http://handheld.softpedia.com/get/GPS/GPS-Test-34335.shtml
Bob From: Bob Katayama [mailto:[EMAIL PROTECTED] Sent: Saturday, November 01, 2008 10:51 AM To: '[EMAIL PROTECTED]' Subject: RE: [nsbasic-ce] serial comms in NSBasic to capture GPS NMEA data stream Hi Keith: After a close look at your code, I do not see anything that could be related to the basic code you have. The problem could be more of an issue with the built in GPS unit. GPS do require a minimum of 3 satellite connections to establish a reading, Depending on the GPS hardware you can have even 12 connections. If you are in a location where the connection to the same satellites and the number of satellites are always changing this will affect the data reception time. Here is a free program you can run to check signal strengths if you do not have one already. http://www.webhostingpad.com/webdesign.html What I would also suggest is looking at this tutorial on writing car navigation software using vb.net. It talks about accuracy and is in depth. You might be able to extract a tidbit or two to improve the accuracy of the data received by using the satellites built in atomic clock. Hope this helps a little. Bob From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of William Keith Saalfeld Sent: Friday, October 31, 2008 12:01 AM To: [EMAIL PROTECTED] Subject: RE: [nsbasic-ce] serial comms in NSBasic to capture GPS NMEA data stream Hi Bob, Thanks for your prompt response. The GPS unit in the PDA I am using uses 9600 baud. I have reasonable communication between my program and the GPS device using following code to turn on GPS Comm Port ' Turn on GPS input of Latitude and Longitude via NMEA0183 sentence ' through Comm Port 1. ' Set To True if using GPS or False to use PC internal clock to match ' separate GPS log of survey. ' If using PC internal clock, time and date must be set to UTC. GPSOn = "True" If GPSOn = "True" Then AddObject "Comm","GPS",0,0,0,0 ' Settings for Com port 1, open Com port 1 for input. GPS.CommPort = 1 GPS.Settings = "9600, N, 8, 1" GPS.InputLen = 0 GPS.PortOpen = 1 End If and the following code to capture the GPS NMEA sentence that I am interested in, the $GPGGA sentence ' Sub GPS - subroutine GPSpos to get latitude and longitude ' from GPS. Sub GPSpos If GPSOn = "True" Then NMEAheader = "" NMEAstring = "" While NMEAheader <> "$GPGGA" NMEAheader = "" NMEAstring = "" NMEAstring = NMEAstring + GPS.Input NMEAheader = Left(NMEAstring, 6) If NMEAheader = "$GPGGA" Then If Len(NMEAstring) < 44 Then NMEAheader = "" Else If Mid(NMEAstring, 44, 1) <> "1" Then NMEAheader = "" End If End If End If WEnd GPSlat = CSng(Mid(NMEAstring, 19, 2)) + CSng(Mid(NMEAstring, 21, 7)) / 60 GPSlong = CSng(Mid(NMEAstring, 31, 3)) + CSng(Mid(NMEAstring, 34, 7)) / 60 HemNS = Mid(NMEAstring, 29, 1) HemEW = Mid(NMEAstring, 42, 1) If HemNS = "S" Then GPSlat = GPSlat * -1 End If If HemEW = "W" Then GPSlong = GPSlong * -1 End If ElseIf GPSOn = "False" Then ' Set latitude and longitude of sighting to 0 when not using GPS. GPSlat = 0 GPSlong = 0 End If End Sub My main problem is that occasionally there can be a considerable delay (up to 5 secs in worst case) between my initiating data entry and the capture of the lat long. On the crocodile surveys this can take a sighting from one side of the river to the other or in the case of aerial surveys which I also have written data logging programs for up to 300 m from the actual position. I have looked at a lot of GPS type comms code that is out there in the freeware/GNU licence area and most seems similar to what I have written. I just cannot help feeling that there has to be a tighter set of code to do this job. At 9600 baud I should be getting up to 2 $GPGGA sentences per second. I am keen to tighten this code up but need direction to some good serial comms references that aren't to technical (written for graduate programmers). Ta Keith W Keith Saalfeld WKS Wildlife Management Consulting PO Box 8261 Alice Springs NT 08701 Australia Mob: 0428 848 912 Email1: [EMAIL PROTECTED] _____ To: [EMAIL PROTECTED] From: [EMAIL PROTECTED] Date: Thu, 30 Oct 2008 23:19:26 -0400 Subject: RE: [nsbasic-ce] serial comms in NSBasic to capture GPS NMEA data stream Hi: First, I would like to say I really admire you for developing a very specialized application without being a career software developer. The initial thought I have before even looking at your code is that different GPS devices communicate at different baud rates depending on the age and type of GPS that is actually utilized. Also the baud rate you use has to be in the fixed supported rates. (1200, 2400, 4800, 9600, 19200, 28800, 38400, 57600, 76800 and 115200 etc.. ) Does one of the rates above match the rate used in your program and also is the rate you have coded for the maximum rate that is directly supported by the gps in your pda? Example: COM Port: COM2 Baud Rate: 4800 Data Bits: 8 Parity: No Parity Stop Bits: 2 Bob From: [EMAIL PROTECTED] [EMAIL PROTECTED] On Behalf Of wksaalfeld Sent: Thursday, October 30, 2008 10:17 PM To: [EMAIL PROTECTED] Subject: [nsbasic-ce] serial comms in NSBasic to capture GPS NMEA data stream Hi All, I am a Wildlife Officer with the Parks and Wildlife Service NT Australia. I have a program that I have written for data logging sightings taken on our annual spotlight surveys of saltwater crocodile populations in the Northern Territory. NSBasic does an excellent job, particularly due to the speed at which sightings can be entered. The sightings are recorded with spatial information which I get from the PDA's inbuilt GPS via the GPS NMEA0183 data stream. I have a program that works in terms of reading the NMEA data stream but the code is not well written, at least it seems so to me, and it can often be 1 or 2 seconds before the program gets the lat/long position, rarely more. I would very much like to tighten up the subroutine in my program that gets the GPS data and if someone can supply me with a good reference, either web site or to a book, on serial comms that has been written for a non-programmer it would be appreciated. I have done a number of Google searches and looked at GPS code in the files link on this forum and the code I have written appears very similar. I have posted a copy of the program (it is very simple) in the files link (CrocSurv_05.nsb). One of the main requirements of the spotlight surveys is the capacity to enter sightings with as little as 2-3 seconds between records and with GPS position logged at commencement of data entry, not end. We do the surveys at night in small boats 4-5 m, moving at about 15-20 kph so there is not much time to identify and record each animal. For each animal we record species (there are only 2 and mostly it is Crocodyus porosus), position in river, and size. _____ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nsb-ce" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/nsb-ce?hl=en -~----------~----~----~----~------~----~------~--~---
