p;
If Mid(MSComm1.Tag, 1, 6) = "$GPGGA" Then '''' GPS fix data
ParseGPS_GPGGA MSComm1.Tag
End If
MSComm1.Tag = ""
End If
Else
MSComm1.Tag = MSComm1.Tag & Mid(val, 1, 1)
End If
End If
End Sub
Public Function ParseGPS_GPGGA(sLine As String)
'''' parses a NMEA GPGGA packet
'''' Global Positioning System Fix Data. Time, position and fix related data for a GPS receiver.
'''' eg1. $GPGGA,170834,4124.8963,N,08151.6838,W,1,05,1.5,280.2,M,-34.0,M,,,*75
'''' eg2. $GPGGA,hhmmss.ss,ddmm.mmm,a,dddmm.mmm,b,q,xx,p.p,a.b,M,c.d,M,x.x,nnnn
Dim lat_deg As Double, lon_deg As Double
If Mid(sLine, 1, 9) <> "$GPGGA,,," Then '''' emply packet
Checksum = GetToken(sLine, 2, "*") '''' remove the * off
sLine = GetToken(sLine, 1, "*")
Dim lat_deg_nmea As Double
Dim lon_deg_nmea As Double
Dim altitude As Double
Dim lat_dir As String
Dim lon_dir As String
utc_time = GetToken(sLine, 2, ",") '''' hhmmss.ss = UTC of fix
lat_deg_nmea = GetToken(sLine, 3, ",") '''' ddmm.mmm = latitude of position
lat_dir = GetToken(sLine, 4, ",") '''' a = N or S, latitutde hemisphere
lon_deg_nmea = GetToken(sLine, 5, ",") '''' dddmm.mmm = longitude of position
lon_dir = GetToken(sLine, 6, ",") '''' b = E or W, longitude hemisphere
quality = GetToken(sLine, 7, ",") '''' q = GPS Quality indicator (0=No fix, 1=Non-differential GPS fix, 2=Differential GPS fix, 6=Estimated fix)
&nb