diff options
-rw-r--r-- | driver_nmea0183.c | 18 | ||||
-rw-r--r-- | gps.h | 3 | ||||
-rw-r--r-- | test/daemon/GPSmap-76S.log.chk | 4 | ||||
-rw-r--r-- | test/daemon/garmin-geko201.log.chk | 6 |
4 files changed, 20 insertions, 11 deletions
diff --git a/driver_nmea0183.c b/driver_nmea0183.c index c65b9f08..182a37d8 100644 --- a/driver_nmea0183.c +++ b/driver_nmea0183.c @@ -698,20 +698,28 @@ static gps_mask_t processGGA(int c UNUSED, char *field[], case 2: /* differential */ newstatus = STATUS_DGPS_FIX; break; - /* no 3 */ - case 4: /* fixed RTK */ + case 3: + /* GPS PPS, fix valid, could be 2D, 3D, GNSSDR */ + newstatus = STATUS_FIX; + break; + case 4: /* RTK integer */ newstatus = STATUS_RTK_FIX; break; - case 5: /* float RTK */ + case 5: /* RTK float */ newstatus = STATUS_RTK_FLT; break; case 6: /* dead reckoning, could be valid or invalid */ newstatus = STATUS_DR; break; + case 7: + /* manual input, surveyed */ + newstatus = STATUS_TIME; + break; case 8: - /* WTF? Garmin GPSMAP and Gecko sends an 8, but undocumented */ - newstatus = STATUS_FIX; + /* simulated mode */ + /* Garmin GPSMAP and Gecko sends an 8, but undocumented */ + newstatus = STATUS_SIM; break; default: newstatus = -1; @@ -2129,7 +2129,8 @@ struct gps_data_t { #define STATUS_RTK_FLT 4 /* yes, with RTK Float */ #define STATUS_DR 5 /* yes, with dead reckoning */ #define STATUS_GNSSDR 6 /* yes, with GNSS + dead reckoning */ -#define STATUS_TIME 7 /* yes, time only (surveyed in) */ +#define STATUS_TIME 7 /* yes, time only (surveyed in, manual) */ +#define STATUS_SIM 8 /* yes, simulated */ /* precision of fix -- valid if satellites_used > 0 */ int satellites_used; /* Number of satellites used in solution */ diff --git a/test/daemon/GPSmap-76S.log.chk b/test/daemon/GPSmap-76S.log.chk index a88ea416..cf4c1636 100644 --- a/test/daemon/GPSmap-76S.log.chk +++ b/test/daemon/GPSmap-76S.log.chk @@ -1,9 +1,9 @@ $GPRMC,125106,V,3854.5087,N,07726.4523,W,0.0,0.0,241011,10.5,W,S*28
$GPRMB,V,,,,,,,,,,,,A,S*0E
$GPGGA,125106,3854.5087,N,07726.4523,W,8,10,2.0,268.8,M,-33.9,M,,*7F
-{"class":"TPV","mode":3,"lat":38.908478333,"lon":-77.440871667,"alt":268.800}
+{"class":"TPV","status":8,"mode":3,"lat":38.908478333,"lon":-77.440871667,"alt":268.800}
$GPGSA,A,3,03,07,08,11,13,16,19,23,24,28,,,3.6,2.0,3.0*3A
-{"class":"TPV","mode":3,"lat":38.908478333,"lon":-77.440871667,"alt":268.800,"epv":69.000}
+{"class":"TPV","status":8,"mode":3,"lat":38.908478333,"lon":-77.440871667,"alt":268.800,"epv":69.000}
$GPGSV,3,1,10,03,41,050,46,07,60,317,49,08,34,315,45,11,35,148,45*71
$GPGSV,3,2,10,13,38,213,45,16,27,068,43,19,72,076,50,23,09,182,37*74
$GPGSV,3,3,10,24,06,166,35,28,09,271,36*7D
diff --git a/test/daemon/garmin-geko201.log.chk b/test/daemon/garmin-geko201.log.chk index bf6df394..dc00f2b8 100644 --- a/test/daemon/garmin-geko201.log.chk +++ b/test/daemon/garmin-geko201.log.chk @@ -1,9 +1,9 @@ $GPRMC,214350,V,4023.8600,N,00339.1630,W,10.8,0.0,140605,2.5,W,S*21 $GPRMB,V,,,,,,,,,,,,A,S*0E $GPGGA,214350,4023.8600,N,00339.1630,W,8,09,2.0,695.7,M,51.6,M,,*5A -{"class":"TPV","mode":3,"lat":40.397666667,"lon":-3.652716667,"alt":695.700}
+{"class":"TPV","status":8,"mode":3,"lat":40.397666667,"lon":-3.652716667,"alt":695.700}
$GPGSA,A,3,01,02,04,05,06,09,14,25,30,,,,3.6,2.0,3.0*3A -{"class":"TPV","mode":3,"lat":40.397666667,"lon":-3.652716667,"alt":695.700,"epv":69.000}
+{"class":"TPV","status":8,"mode":3,"lat":40.397666667,"lon":-3.652716667,"alt":695.700,"epv":69.000}
$GPGSV,3,1,09,01,19,319,41,02,17,093,40,04,09,049,37,05,60,046,49*77 $GPGSV,3,2,09,06,39,195,46,09,40,115,46,14,48,286,47,25,09,307,36*71 $GPGSV,3,3,09,30,67,294,50*48 @@ -12,7 +12,7 @@ $GPGLL,4023.8600,N,00339.1630,W,214350,V,S*57 $GPBOD,,T,,M,,*47 $PGRME,15.0,M,22.5,M,27.0,M*1A $PGRMZ,2282,f,3*21 -{"class":"TPV","mode":3,"lat":40.397666667,"lon":-3.652716667,"alt":695.554,"epx":22.022,"epy":22.022,"epv":46.716}
+{"class":"TPV","status":8,"mode":3,"lat":40.397666667,"lon":-3.652716667,"alt":695.554,"epx":22.022,"epy":22.022,"epv":46.716}
$GPRTE,1,1,c,*37 $GPRMC,214352,V,4023.8660,N,00339.1630,W,10.8,0.0,140605,2.5,W,S*25 {"class":"TPV","mode":1}
|