Here is the link to the GPS tutorial I should have provided in the first
reply 

 

http://www.geoframeworks.com/Articles/WritingApps2_1.aspx

 

Sorry for the multiple emails.

Bob

 

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On
Behalf Of Bob Katayama
Sent: Saturday, November 01, 2008 10:52 AM
To: [EMAIL PROTECTED]
Subject: RE: [nsbasic-ce] serial comms in NSBasic to capture GPS NMEA data
stream

 

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
-~----------~----~----~----~------~----~------~--~---

Reply via email to