OK...I'm impatient today :sign0095: and wrote a little routine to check the timing etc of the GPS.
Here's my findings:
GPS_GpsStatus event is raised every 1 second, regardless of the GPS.Start settings.
With
GPS_LocationChanged event is raised every 5 seconds (as expected). Distance traveled does not seem to have any effect on this.
With
GPS_LocationChanged event is raised about every 10 meters (as expected). This was not very precise, probably because of the accuracy also being ± 10 meters - but it seems to be only reacting on the movement. Sitting still did not raise the event at all.
With
Things did not work as expected. Sitting still, GPS_LocationChanged event is raised only about every 40-50 seconds - sometimes up to 200 seconds. While walking around at a steady pace, GPS_LocationChanged event is raised about every 10-15 seconds, but very inconsistent (again accuracy probably plays a part in this).
It seems then that with both values set, the time value setting is ignored. GPS1.Start(2000,5) reacts the same as GPS1.Start(0,5). This is not what the documentation leads me to understand. According to the documentation whichever value is reached first will raise the GPS_Location Changed event.
Is this a bug, or am I not interpreting the documentation correctly?
I think I also "discovered" a way to check if the GPS has lost the fix. GPS_LocationChanged event will return the last known values - even when the GPS has lost the fix.
I've added the following:
Sub Globals
Dim GPSFix As Boolean
End Sub
Sub GPS_GpsStatus (Satellites As List)
GPSFix = False
For i = 0 To Satellites.Size - 1
Dim Satellite As GPSSatellite
Satellite = Satellites.Get(i)
If Satellite.UsedInFix = True Then GPSFix = True
Next
End Sub
Whenever the GPS has a fix, GPSFix will be true, and if it loses the fix, GPSFix will be False. This can then be used as needed elsewhere in the program.