diff options
-rw-r--r-- | HACKING | 38 | ||||
-rw-r--r-- | TODO | 41 | ||||
-rw-r--r-- | garmin.c | 8 | ||||
-rw-r--r-- | gps.h | 4 | ||||
-rw-r--r-- | gpsd.h | 8 | ||||
-rw-r--r-- | libgpsd_core.c | 4 | ||||
-rw-r--r-- | nmea_parse.c | 10 | ||||
-rw-r--r-- | test/garmin17n.log.chk | 6 | ||||
-rw-r--r-- | test/garmin38.log.chk | 18 | ||||
-rw-r--r-- | test/garmin48.log.chk | 26 | ||||
-rw-r--r-- | test/tn204.log.chk | 14 | ||||
-rw-r--r-- | test/zodiac.log.chk | 42 | ||||
-rw-r--r-- | www/gps-hacking.html | 3 | ||||
-rw-r--r-- | zodiac.c | 12 |
14 files changed, 114 insertions, 120 deletions
@@ -320,9 +320,31 @@ Don't undo this by using malloc/free in a driver or anywhere else. ** Error modeling -To estimate errors (which we must do if the GPS isn't nice like a -Garmin and reports them in meters), we need to multiply an estimate of -User Equivalent Range Error (UERE) by the appropriate dilution factor, +gpsd drivers are expected to report position error estimates with +a 95% confidence interval. A few devices (Garmins and Zodiacs) +actually report these. For the rest we have to compute them +using an error model. + +Here's a table that explains how to convert from various +confidence interval units you might see in vendor documentation. + +sqr(alpha) Probability Notation +----------------------------------------------------------------------- + 1.00 39.4% 1-sigma or standard ellipse + 1.18 50.0% Circular Error Probable (CEP) + 1.414 63.2% Distance RMS (DRMS) + 2.00 86.5% 2 sigma ellipse + 2.45 95.0% 95% confidence level + 2.818 98.2% 2DRMS + 3.00 98.9% 3 sigma ellipse +------------------------------------------------------------------------ + +There are constants in gpsd,h for these factors. + +To estimate errors (which we must do if the GPS isn't nice and reports +them in meters with a documented confidence interval), we need to +multiply an estimate of User Equivalent Range Error (UERE) by the +appropriate dilution factor, The UERE estimate is usually computed as the square root of the sum of the squares of individual error estimates from a physical model. The @@ -345,8 +367,9 @@ Code range noise (C/A) 0.3m Code range noise (P-code) 0.03m Phase range 0.005m -We're assuming these are 1-sigma error ranges. This needs to -be checked in the sources. +We're assuming these are 2-sigma error ranges. This needs to +be checked in the sources. If they're 1-sigma the resulting UEREs +need to be doubled. See http://www.seismo.berkeley.edu/~battag/GAMITwrkshp/lecturenotes/unit1/ for discussion. @@ -383,10 +406,10 @@ receiver clock error. Thus: UERE = sqrt(1.5^2 + 1.2^2 + 0.3^2) = 1.8 -which we round up to 2. +which we round up to 2 (95% confidence). Due to multipath uncertainty, Carl says 4.1 is too low and recommends -a non-DGPS UERE estimate of 8. That's what we use. +a non-DGPS UERE estimate of 8 (95% confidence). That's what we use. ** Impact of DGPS on error estimates @@ -422,7 +445,6 @@ Wolfgang S. Rupprecht: > reference, I fear that the average user will be getting the same 8m or > worse accuracy by using dgpsip. - ** Adding new GPS types Almost all GPSes speak NMEA 0183. However, it may occasionally be necessary @@ -151,47 +151,6 @@ BUS="usb" SYSFS{vendor}="1163" SYSFS{product}="0100" \ More generally, the hotplug code we have is Linux-specific. OpenBSD (at least) features a hotplug daemon with similar capabilities. -*** The mess near error modeling - -One of my goals has been to report an uncertainty along with every -dimension of PVT, so that the return from the GPS actually (and -realistically) describes the volume of kinematic state space within -which it is located at 1-sigma or 66% confidence. (Because the errors -are taken to be normally distributed, we can square the error to get -2-sigma or 95% confidence.) - -There are several problems with this. - -A. I don't know how to derive or estimate uncertainty of time in the -general case. There are clock drift and bias fields in the SiRF -binary protocol, but I don't know how to interpret these. Does -anyone? - -B. Only Garmin devices report estimated position uncertainties in meters. -They won't say what the confidence interval is, but it is generally -believed to be 1-sigma. See <http://gpsinformation.net/main/epenew.txt>. - -Here is what I am presently doing in the new E command: - -1. I pass up the Garmin PGRME fields (uncertainty in meters) if - they're available. - -2. Otherwise, I apply the error model described in the HACKING dociment. - -What non-Garmin GPSes will return in the E command is UERE multiplied -by PDOP/HDOP/VDOP. Annoyingly, SiRF binary mode only offers HDOP, -one respect in which it is functionally inferior to SiRF NMEA. We -compute VDOP and PDOP using an algorithm supplied by SiRF. - -I don't know, because my sources didn't give, the confidence level -associated with the range uncertainties in gpsd.h. My educated guess -is that they are 1-sigma (66%), and that's what the gpsd documentation -now says, but it needs to be confirmed. - -This area needs some attention from somebody who cares a lot about -GPS accuracy and is willing to do research on error budgets to pin -down the numbers and confidence levels. - *** Do the research to figure out just what is going on with status bits NMEA actually has *four* kinds of validity bits: Mode, Status, the @@ -290,10 +290,10 @@ static gps_mask_t PrintPacket(struct gps_device_t *session, Packet_t *pkt) // gpsd sign is opposite of garmin sign session->gpsdata.separation = -pvt->msl_hght; - // estimated position error in meters (sigma unknown) - session->gpsdata.epe = pvt->epe; - session->gpsdata.newdata.eph = pvt->eph; - session->gpsdata.newdata.epv = pvt->epv; + // Estimated position error in meters. + session->gpsdata.epe = pvt->epe * (GPSD_CONFIDENCE/2); + session->gpsdata.newdata.eph = pvt->eph * (GPSD_CONFIDENCE/2); + session->gpsdata.newdata.epv = pvt->epv * (GPSD_CONFIDENCE/2); // convert lat/lon to knots session->gpsdata.newdata.speed @@ -42,6 +42,8 @@ extern "C" { * GPRMC/GPGGA/GPGLL during a single cycle; thus, they may have different * timestamps and some data in this structure can be up to 1 cycle (usually * 1 second) older than the fix time. + * + * Error estimates are at 95% confidence. */ struct gps_fix_t { double time; /* Time of update, seconds since Unix epoch */ @@ -125,7 +127,7 @@ struct gps_data_t { double pdop, hdop, vdop, tdop, gdop; /* Dilution of precision */ /* redundant with the estimate elments in the fix structure */ - double epe; /* estimated spherical position error, 2 sigma (meters) */ + double epe; /* spherical position error, 95% confidence (meters) */ /* satellite status -- valid when satellites > 0 */ int satellites; /* # of satellites in view */ @@ -22,6 +22,14 @@ #define NMEA_MAX 82 /* max length of NMEA sentence */ #define NMEA_BIG_BUF (2*NMEA_MAX+1) /* longer than longest NMEA sentence */ +/* factors for constants for converting among confidence interval units */ +#define CEP50_SIGMA 1.18 +#define DRMS_SIGMA 1.414 +#define CEP95_SIGMA 2.45 + +/* this is where we choose the confidence level to use in reports */ +#define GPSD_CONFIDENCE CEP95_SIGMA + /* * From the RCTM104 standard: * diff --git a/libgpsd_core.c b/libgpsd_core.c index 23c0e078..58db19ae 100644 --- a/libgpsd_core.c +++ b/libgpsd_core.c @@ -377,8 +377,8 @@ static void apply_error_model(struct gps_device_t *session) * Some drivers set the position-error fields. Only the Zodiacs * report speed error. Nobody reports track error or climb error. */ -#define UERE_NO_DGPS 8.0 /* meters, 2-sigma confidence */ -#define UERE_WITH_DGPS 2.0 /* meters, 2-sigma confidence */ +#define UERE_NO_DGPS 8.0 /* meters, 95% confidence */ +#define UERE_WITH_DGPS 2.0 /* meters, 95% confidence */ double uere = (session->gpsdata.status == STATUS_DGPS_FIX ? UERE_WITH_DGPS : UERE_NO_DGPS); session->gpsdata.fix.ept = 0.005; diff --git a/nmea_parse.c b/nmea_parse.c index 1787ce08..552c3335 100644 --- a/nmea_parse.c +++ b/nmea_parse.c @@ -418,12 +418,12 @@ static gps_mask_t processPGRME(int c UNUSED, char *field[], struct gps_device_t 5 = spherical error estimate 6 = units * - * Garmin won't say, but the general belief is that these are 1-sigma. - * See <http://gpsinformation.net/main/epenew.txt>. + * Garmin won't say, but the general belief is that these are 50% CEP. + * We follow the advice at <http://gpsinformation.net/main/errors.htm>. */ - session->gpsdata.newdata.eph = atof(field[1]); - session->gpsdata.newdata.epv = atof(field[3]); - session->gpsdata.epe = atof(field[5]); + session->gpsdata.newdata.eph = atof(field[1]) * (GPSD_CONFIDENCE/CEP50_SIGMA); + session->gpsdata.newdata.epv = atof(field[3]) * (GPSD_CONFIDENCE/CEP50_SIGMA); + session->gpsdata.epe = atof(field[5]) * (GPSD_CONFIDENCE/CEP50_SIGMA); return HERR_SET | VERR_SET | PERR_SET; } diff --git a/test/garmin17n.log.chk b/test/garmin17n.log.chk index 0ad0c944..a836bfd5 100644 --- a/test/garmin17n.log.chk +++ b/test/garmin17n.log.chk @@ -8,7 +8,7 @@ GPSD,O=GSA 1110965882.00 0.005 52.219065 21.010852 137.20 1.80 2.60 226.0000 $GPGSV,3,2,12,18,50,135,50,19,15,291,46,21,59,069,51,22,30,169,49*75 $PGRME,1.7,M,2.4,M,3.0,M*2D $GPGLL,5213.1439,N,02100.6511,E,093802,A,D*48 -GPSD,O=GLL 1110965882.00 0.005 52.219065 21.010852 137.20 1.70 2.40 226.0000 0.000 0.000 ? ? ?
+GPSD,O=GLL 1110965882.00 0.005 52.219065 21.010852 137.20 3.53 4.98 226.0000 0.000 0.000 ? ? ?
$GPVTG,226,T,222,M,000.0,N,0000.0,K,D*12 $PGRMV,0.0,0.0,0.0*5C $PGRMF,290,293895,160305,093802,13,5213.1439,N,02100.6511,E,A,2,0,226,2,1*11 @@ -19,12 +19,12 @@ GPSD,O=RMC 1110965883.00 0.005 52.219065 21.010852 ? ? ? $GPGGA,093803,5213.1439,N,02100.6511,E,2,10,0.9,137.2,M,36.2,M,,*42 GPSD,O=GGA 1110965883.00 0.005 52.219065 21.010852 137.20 ? ? 226.0000 0.000 0.000 ? ? ?
$GPGSA,A,3,03,06,15,16,18,19,21,22,,27,29,,1.6,0.9,1.3*34 -GPSD,O=GSA 1110965883.00 0.005 52.219065 21.010852 137.20 1.80 2.60 226.0000 0.000 0.000 ? 3.50 ?
+GPSD,O=GSA 1110965883.00 0.005 52.219065 21.010852 137.20 1.80 2.60 226.0000 0.000 0.000 ? 5.33 ?
$GPGSV,3,3,12,26,14,065,48,27,08,336,38,29,14,048,44,44,18,130,41*78 GPSD,Y=GSV ? 8:18 50 135 50 1:19 15 291 46 1:21 59 69 51 1:22 30 169 49 1:26 14 65 48 0:27 8 336 38 1:29 14 48 44 1:44 18 130 41 0:
$PGRME,1.7,M,2.4,M,3.0,M*2D $GPGLL,5213.1439,N,02100.6511,E,093803,A,D*49 -GPSD,O=GLL 1110965883.00 0.005 52.219065 21.010852 137.20 1.70 2.40 226.0000 0.000 0.000 ? 3.50 ?
+GPSD,O=GLL 1110965883.00 0.005 52.219065 21.010852 137.20 3.53 4.98 226.0000 0.000 0.000 ? 5.33 ?
$GPVTG,226,T,222,M,000.0,N,0000.0,K,D*12 $PGRMV,0.0,0.0,0.0*5C $PGRMF,290,293896,160305,093803,13,5213.1439,N,02100.6511,E,A,2,0,226,2,1*13 diff --git a/test/garmin38.log.chk b/test/garmin38.log.chk index df6c8f62..c0f614fc 100644 --- a/test/garmin38.log.chk +++ b/test/garmin38.log.chk @@ -18,7 +18,7 @@ $GPGSV,2,2,08,15,18,138,00,18,20,079,00,25,27,172,46,31,27,263,38*7C GPSD,Y=GSV ? 8:3 23 224 38 1:9 6 37 0 0:11 17 314 41 1:14 75 15 44 1:15 18 138 0 0:18 20 79 0 0:25 27 172 46 1:31 27 263 38 1:
$PGRME,19.2,M,28.7,M,34.6,M*18 $GPGLL,3348.452,N,11821.143,W,142216,A*38 -GPSD,O=GLL 1034086936.00 0.005 33.807533 -118.352383 38.40 19.20 28.70 353.6000 0.000 0.000 ? ? ?
+GPSD,O=GLL 1034086936.00 0.005 33.807533 -118.352383 38.40 39.86 59.59 353.6000 0.000 0.000 ? ? ?
$PGRMZ,126,f,3*1E $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 @@ -29,13 +29,13 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,142218,3348.451,N,11821.144,W,1,05,1.8,38.4,M,-32.4,M,,*41 GPSD,O=GGA 1034086938.00 0.005 33.807517 -118.352400 38.40 ? ? 353.6000 0.000 0.000 ? ? ?
$GPGSA,A,3,03,,11,14,,,25,31,,,,,3.3,1.8,2.8*32 -GPSD,O=GSA 1034086938.00 0.005 33.807517 -118.352400 38.40 14.40 22.40 353.6000 0.000 0.000 161.0638 16.80 ?
+GPSD,O=GSA 1034086938.00 0.005 33.807517 -118.352400 38.40 14.40 22.40 353.6000 0.000 0.000 161.0638 27.13 ?
$GPGSV,2,1,08,03,23,224,43,09,06,037,00,11,17,314,38,14,75,015,44*70 $GPGSV,2,2,08,15,18,138,00,18,20,079,00,25,27,172,39,31,27,263,42*79 GPSD,Y=GSV ? 8:3 23 224 43 1:9 6 37 0 0:11 17 314 38 1:14 75 15 44 1:15 18 138 0 0:18 20 79 0 0:25 27 172 39 1:31 27 263 42 1:
$PGRME,19.2,M,28.7,M,34.6,M*18 $GPGLL,3348.451,N,11821.144,W,142218,A*32 -GPSD,O=GLL 1034086938.00 0.005 33.807517 -118.352400 38.40 19.20 28.70 353.6000 0.000 0.000 161.0638 16.80 ?
+GPSD,O=GLL 1034086938.00 0.005 33.807517 -118.352400 38.40 39.86 59.59 353.6000 0.000 0.000 161.0638 27.13 ?
$PGRMZ,126,f,3*1E $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 @@ -46,13 +46,13 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,142220,3348.451,N,11821.142,W,1,05,1.8,37.6,M,-32.4,M,,*41 GPSD,O=GGA 1034086940.00 0.005 33.807517 -118.352367 37.60 ? ? 353.6000 0.000 0.000 ? ? ?
$GPGSA,A,3,03,,11,14,,,25,31,,,,,3.3,1.8,2.8*32 -GPSD,O=GSA 1034086940.00 0.005 33.807517 -118.352367 37.60 14.40 22.40 353.6000 0.000 0.000 155.9391 16.80 ?
+GPSD,O=GSA 1034086940.00 0.005 33.807517 -118.352367 37.60 14.40 22.40 353.6000 0.000 0.000 155.9391 27.13 ?
$GPGSV,2,1,08,03,23,224,43,09,06,037,00,11,17,314,38,14,75,015,43*77 $GPGSV,2,2,08,15,18,138,00,18,20,079,00,25,27,172,39,31,27,263,41*7A GPSD,Y=GSV ? 8:3 23 224 43 1:9 6 37 0 0:11 17 314 38 1:14 75 15 43 1:15 18 138 0 0:18 20 79 0 0:25 27 172 39 1:31 27 263 41 1:
$PGRME,19.2,M,28.7,M,34.6,M*18 $GPGLL,3348.451,N,11821.142,W,142220,A*3F -GPSD,O=GLL 1034086940.00 0.005 33.807517 -118.352367 37.60 19.20 28.70 353.6000 0.000 0.000 155.9391 16.80 ?
+GPSD,O=GLL 1034086940.00 0.005 33.807517 -118.352367 37.60 39.86 59.59 353.6000 0.000 0.000 155.9391 27.13 ?
$PGRMZ,123,f,3*1B $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 @@ -63,13 +63,13 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,142222,3348.451,N,11821.143,W,1,05,1.8,38.0,M,-32.4,M,,*4B GPSD,O=GGA 1034086942.00 0.005 33.807517 -118.352383 38.00 ? ? 353.6000 0.000 0.000 ? ? ?
$GPGSA,A,3,03,,11,14,,,25,31,,,,,3.3,1.8,2.8*32 -GPSD,O=GSA 1034086942.00 0.005 33.807517 -118.352383 38.00 14.40 22.40 353.6000 0.000 0.000 167.8240 16.80 ?
+GPSD,O=GSA 1034086942.00 0.005 33.807517 -118.352383 38.00 14.40 22.40 353.6000 0.000 0.000 167.8240 27.13 ?
$GPGSV,2,1,08,03,23,224,42,09,06,037,00,11,17,314,38,14,75,015,43*76 $GPGSV,2,2,08,15,18,138,00,18,20,079,00,25,27,172,40,31,27,263,41*74 GPSD,Y=GSV ? 8:3 23 224 42 1:9 6 37 0 0:11 17 314 38 1:14 75 15 43 1:15 18 138 0 0:18 20 79 0 0:25 27 172 40 1:31 27 263 41 1:
$PGRME,19.2,M,28.9,M,34.7,M*17 $GPGLL,3348.451,N,11821.143,W,142222,A*3C -GPSD,O=GLL 1034086942.00 0.005 33.807517 -118.352383 38.00 19.20 28.90 353.6000 0.000 0.000 167.8240 16.80 ?
+GPSD,O=GLL 1034086942.00 0.005 33.807517 -118.352383 38.00 39.86 60.00 353.6000 0.000 0.000 167.8240 27.13 ?
$PGRMZ,125,f,3*1D $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 @@ -80,11 +80,11 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,142224,3348.451,N,11821.143,W,1,05,1.8,38.0,M,-32.4,M,,*4D GPSD,O=GGA 1034086944.00 0.005 33.807517 -118.352383 38.00 ? ? 353.6000 0.000 0.000 ? ? ?
$GPGSA,A,3,03,,11,14,,,25,31,,,,,3.3,1.8,2.8*32 -GPSD,O=GSA 1034086944.00 0.005 33.807517 -118.352383 38.00 14.40 22.40 353.6000 0.000 0.000 ? 16.80 ?
+GPSD,O=GSA 1034086944.00 0.005 33.807517 -118.352383 38.00 14.40 22.40 353.6000 0.000 0.000 ? 27.13 ?
$GPGSV,2,1,08,03,23,224,43,09,06,037,00,11,17,314,39,14,75,015,44*71 $GPGSV,2,2,08,15,18,138,00,18,20,079,00,25,27,172,39,31,27,263,40*7B GPSD,Y=GSV ? 8:3 23 224 43 1:9 6 37 0 0:11 17 314 39 1:14 75 15 44 1:15 18 138 0 0:18 20 79 0 0:25 27 172 39 1:31 27 263 40 1:
$PGRME,19.2,M,28.9,M,34.7,M*17 $GPGLL,3348.451,N,11821.143,W,142224,A*3A -GPSD,O=GLL 1034086944.00 0.005 33.807517 -118.352383 38.00 19.20 28.90 353.6000 0.000 0.000 ? 16.80 ?
+GPSD,O=GLL 1034086944.00 0.005 33.807517 -118.352383 38.00 39.86 60.00 353.6000 0.000 0.000 ? 27.13 ?
$PGRMZ,125,f,3*1D diff --git a/test/garmin48.log.chk b/test/garmin48.log.chk index cf252d23..9d67059d 100644 --- a/test/garmin48.log.chk +++ b/test/garmin48.log.chk @@ -12,7 +12,7 @@ $GPGSV,3,3,11,25,20,108,00,27,08,281,00,28,17,339,39,,,,*4C GPSD,Y=GSV ? 11:1 78 221 47 1:3 9 42 0 0:4 5 242 0 0:6 4 149 0 0:13 37 235 48 1:20 41 333 46 1:22 65 81 46 1:24 2 205 0 0:25 20 108 0 0:27 8 281 0 0:28 17 339 39 1:
$PGRME,9.1,M,15.0,M,12.0,M*21
$GPGLL,4527.458,S,16709.165,E,225309,A*3E
-GPSD,O=GLL 991867988.00 0.005 -45.457633 167.152750 14.70 9.10 15.00 94.5000 0.000 0.000 ? ? ?
+GPSD,O=GLL 991867988.00 0.005 -45.457633 167.152750 14.70 18.89 31.14 94.5000 0.000 0.000 ? ? ?
$PGRMZ,48,f,3*27
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
@@ -23,14 +23,14 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,225310,4527.458,S,16709.165,E,1,05,2.1,14.6,M,1.1,M,,*5B
GPSD,O=GGA 991867990.00 0.005 -45.457633 167.152750 14.60 ? ? 94.5000 0.000 0.000 ? ? ?
$GPGSA,A,3,01,,,,13,20,22,,,,28,,3.1,2.1,2.0*3A
-GPSD,O=GSA 991867990.00 0.005 -45.457633 167.152750 14.60 16.80 16.00 94.5000 0.000 0.000 ? 12.95 ?
+GPSD,O=GSA 991867990.00 0.005 -45.457633 167.152750 14.60 16.80 16.00 94.5000 0.000 0.000 ? 17.85 ?
$GPGSV,3,1,11,01,78,221,47,03,09,042,00,04,05,242,00,06,04,149,00*70
$GPGSV,3,2,11,13,37,235,48,20,41,333,46,22,65,081,46,24,02,205,00*7B
$GPGSV,3,3,11,25,20,108,00,27,08,281,00,28,17,339,39,,,,*4C
GPSD,Y=GSV ? 11:1 78 221 47 1:3 9 42 0 0:4 5 242 0 0:6 4 149 0 0:13 37 235 48 1:20 41 333 46 1:22 65 81 46 1:24 2 205 0 0:25 20 108 0 0:27 8 281 0 0:28 17 339 39 1:
$PGRME,9.1,M,15.0,M,12.0,M*21
$GPGLL,4527.458,S,16709.165,E,225311,A*37
-GPSD,O=GLL 991867990.00 0.005 -45.457633 167.152750 14.60 9.10 15.00 94.5000 0.000 0.000 ? 12.95 ?
+GPSD,O=GLL 991867990.00 0.005 -45.457633 167.152750 14.60 18.89 31.14 94.5000 0.000 0.000 ? 17.85 ?
$PGRMZ,48,f,3*27
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
@@ -41,14 +41,14 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,225312,4527.458,S,16709.165,E,1,05,2.2,14.7,M,1.1,M,,*5B
GPSD,O=GGA 991867992.00 0.005 -45.457633 167.152750 14.70 ? ? 94.5000 0.000 0.000 ? ? ?
$GPGSA,A,3,01,,,,13,20,22,,,,28,,3.2,2.2,2.1*3B
-GPSD,O=GSA 991867992.00 0.005 -45.457633 167.152750 14.70 17.60 16.80 94.5000 0.000 0.000 ? 13.35 ?
+GPSD,O=GSA 991867992.00 0.005 -45.457633 167.152750 14.70 17.60 16.80 94.5000 0.000 0.000 ? 18.25 ?
$GPGSV,3,1,11,01,78,221,47,03,09,042,00,04,05,242,00,06,04,149,00*70
$GPGSV,3,2,11,13,37,235,49,20,41,333,46,22,65,081,46,24,02,205,00*7A
$GPGSV,3,3,11,25,20,108,00,27,08,281,00,28,17,339,39,,,,*4C
GPSD,Y=GSV ? 11:1 78 221 47 1:3 9 42 0 0:4 5 242 0 0:6 4 149 0 0:13 37 235 49 1:20 41 333 46 1:22 65 81 46 1:24 2 205 0 0:25 20 108 0 0:27 8 281 0 0:28 17 339 39 1:
$PGRME,9.2,M,15.0,M,12.6,M*24
$GPGLL,4527.458,S,16709.165,E,225313,A*35
-GPSD,O=GLL 991867992.00 0.005 -45.457633 167.152750 14.70 9.20 15.00 94.5000 0.000 0.000 ? 13.35 ?
+GPSD,O=GLL 991867992.00 0.005 -45.457633 167.152750 14.70 19.10 31.14 94.5000 0.000 0.000 ? 18.25 ?
$PGRMZ,48,f,3*27
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
@@ -59,14 +59,14 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,225314,4527.458,S,16709.165,E,1,05,2.2,14.6,M,1.1,M,,*5C
GPSD,O=GGA 991867994.00 0.005 -45.457633 167.152750 14.60 ? ? 94.5000 0.000 0.000 ? ? ?
$GPGSA,A,3,01,,,,13,20,22,,,,28,,3.2,2.2,2.1*3B
-GPSD,O=GSA 991867994.00 0.005 -45.457633 167.152750 14.60 17.60 16.80 94.5000 0.000 0.000 ? 13.40 ?
+GPSD,O=GSA 991867994.00 0.005 -45.457633 167.152750 14.60 17.60 16.80 94.5000 0.000 0.000 ? 18.35 ?
$GPGSV,3,1,11,01,78,221,47,03,09,042,00,04,05,242,00,06,04,149,00*70
$GPGSV,3,2,11,13,37,235,49,20,41,333,46,22,65,081,46,24,02,205,00*7A
$GPGSV,3,3,11,25,20,108,00,27,08,281,00,28,17,339,39,,,,*4C
GPSD,Y=GSV ? 11:1 78 221 47 1:3 9 42 0 0:4 5 242 0 0:6 4 149 0 0:13 37 235 49 1:20 41 333 46 1:22 65 81 46 1:24 2 205 0 0:25 20 108 0 0:27 8 281 0 0:28 17 339 39 1:
$PGRME,9.2,M,15.0,M,12.6,M*24
$GPGLL,4527.458,S,16709.165,E,225315,A*33
-GPSD,O=GLL 991867994.00 0.005 -45.457633 167.152750 14.60 9.20 15.00 94.5000 0.000 0.000 ? 13.40 ?
+GPSD,O=GLL 991867994.00 0.005 -45.457633 167.152750 14.60 19.10 31.14 94.5000 0.000 0.000 ? 18.35 ?
$PGRMZ,48,f,3*27
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
@@ -77,14 +77,14 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,225316,4527.458,S,16709.165,E,1,05,2.2,14.4,M,1.1,M,,*5C
GPSD,O=GGA 991867996.00 0.005 -45.457633 167.152750 14.40 ? ? 94.5000 0.000 0.000 ? ? ?
$GPGSA,A,3,01,,,,13,20,22,,,,28,,3.2,2.2,2.1*3B
-GPSD,O=GSA 991867996.00 0.005 -45.457633 167.152750 14.40 17.60 16.80 94.5000 0.000 0.000 ? 13.40 ?
+GPSD,O=GSA 991867996.00 0.005 -45.457633 167.152750 14.40 17.60 16.80 94.5000 0.000 0.000 ? 18.35 ?
$GPGSV,3,1,11,01,78,221,47,03,09,042,00,04,05,242,00,06,04,149,00*70
$GPGSV,3,2,11,13,37,235,49,20,40,333,46,22,65,081,46,24,02,205,00*7B
$GPGSV,3,3,11,25,20,108,00,27,08,281,00,28,17,339,39,,,,*4C
GPSD,Y=GSV ? 11:1 78 221 47 1:3 9 42 0 0:4 5 242 0 0:6 4 149 0 0:13 37 235 49 1:20 40 333 46 1:22 65 81 46 1:24 2 205 0 0:25 20 108 0 0:27 8 281 0 0:28 17 339 39 1:
$PGRME,9.2,M,15.0,M,12.6,M*24
$GPGLL,4527.458,S,16709.165,E,225317,A*31
-GPSD,O=GLL 991867996.00 0.005 -45.457633 167.152750 14.40 9.20 15.00 94.5000 0.000 0.000 ? 13.40 ?
+GPSD,O=GLL 991867996.00 0.005 -45.457633 167.152750 14.40 19.10 31.14 94.5000 0.000 0.000 ? 18.35 ?
$PGRMZ,46,f,3*29
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
@@ -95,7 +95,7 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,225318,4527.458,S,16709.165,E,1,05,2.2,14.0,M,1.1,M,,*56
GPSD,O=GGA 991867998.00 0.005 -45.457633 167.152750 14.00 ? ? 94.5000 0.000 0.000 ? ? ?
$GPGSA,A,3,01,,,,13,20,22,,,,28,,3.2,2.2,2.1*3B
-GPSD,O=GSA 991867998.00 0.005 -45.457633 167.152750 14.00 17.60 16.80 94.5000 0.000 0.000 ? 13.40 ?
+GPSD,O=GSA 991867998.00 0.005 -45.457633 167.152750 14.00 17.60 16.80 94.5000 0.000 0.000 ? 18.35 ?
$GPGSV,3,1,11,01,78,221,47,03,09,042,00,04,05,242,00,06,04,149,00*7
$GPGSV,3,1,11,01,78,221,47,03,09,042,00,04,05,242,00,06,04,149,00*70
$GPGSV,3,2,11,13,37,235,49,20,40,333,46,22,65,083,46,24,02,205,00*79
@@ -103,7 +103,7 @@ $GPGSV,3,3,11,25,20,108,00,27,08,281,00,28,17,339,40,,,,*42 GPSD,Y=GSV ? 11:1 78 221 47 1:3 9 42 0 0:4 5 242 0 0:6 4 149 0 0:13 37 235 49 1:20 40 333 46 1:22 65 83 46 1:24 2 205 0 0:25 20 108 0 0:27 8 281 0 0:28 17 339 40 1:
$PGRME,10.3,M,15.2,M,16.7,M*1A
$GPGLL,4527.458,S,16709.165,E,225333,A*37
-GPSD,O=GLL 991867998.00 0.005 -45.457633 167.152750 14.00 10.30 15.20 94.5000 0.000 0.000 ? 13.40 ?
+GPSD,O=GLL 991867998.00 0.005 -45.457633 167.152750 14.00 21.39 31.56 94.5000 0.000 0.000 ? 18.35 ?
$PGRMZ,41,f,3*2E
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
@@ -114,14 +114,14 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,225334,4527.458,S,16709.165,E,1,05,2.4,12.5,M,1.1,M,,*5D
GPSD,O=GGA 991868014.00 0.005 -45.457633 167.152750 12.50 ? ? 94.5000 0.000 0.000 ? ? ?
$GPGSA,A,3,01,,,,13,20,22,,,,28,,4.1,2.4,3.0*39
-GPSD,O=GSA 991868014.00 0.005 -45.457633 167.152750 12.50 19.20 24.00 94.5000 0.000 0.000 ? 1.84 ?
+GPSD,O=GSA 991868014.00 0.005 -45.457633 167.152750 12.50 19.20 24.00 94.5000 0.000 0.000 ? 2.54 ?
$GPGSV,3,1,11,01,78,221,47,03,09,042,00,04,05,242,00,06,04,149,00*70
$GPGSV,3,2,11,13,37,235,49,20,40,333,46,22,65,083,46,24,02,205,00*79
$GPGSV,3,3,11,25,20,108,00,27,08,281,00,28,17,339,41,,,,*43
GPSD,Y=GSV ? 11:1 78 221 47 1:3 9 42 0 0:4 5 242 0 0:6 4 149 0 0:13 37 235 49 1:20 40 333 46 1:22 65 83 46 1:24 2 205 0 0:25 20 108 0 0:27 8 281 0 0:28 17 339 41 1:
$PGRME,10.3,M,15.2,M,16.7,M*1A
$GPGLL,4527.458,S,16709.165,E,225335,A*31
-GPSD,O=GLL 991868014.00 0.005 -45.457633 167.152750 12.50 10.30 15.20 94.5000 0.000 0.000 ? 1.84 ?
+GPSD,O=GLL 991868014.00 0.005 -45.457633 167.152750 12.50 21.39 31.56 94.5000 0.000 0.000 ? 2.54 ?
$PGRMZ,41,f,3*2E
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
diff --git a/test/tn204.log.chk b/test/tn204.log.chk index 2818bd4f..5968cfa0 100644 --- a/test/tn204.log.chk +++ b/test/tn204.log.chk @@ -11,7 +11,7 @@ $GPGSV,2,2,08,27,48,103,46,28,66,323,42,29,33,306,43,31,10,040,00*78 GPSD,Y=GSV ? 8:7 43 197 44 1:8 68 62 43 1:11 18 89 0 0:26 24 314 43 0:27 48 103 46 1:28 66 323 42 1:29 33 306 43 1:31 10 40 0 0:
$PGRME,17.4,M,40.3,M,43.9,M*15 $GPGLL,3348.605,N,11821.126,W,230149,A*34 -GPSD,O=GLL 1035673309.00 0.005 33.810083 -118.352100 49.40 17.40 40.30 209.4000 0.000 0.000 ? ? ?
+GPSD,O=GLL 1035673309.00 0.005 33.810083 -118.352100 49.40 36.13 83.67 209.4000 0.000 0.000 ? ? ?
$PGRMZ,162,f,3*1E $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 @@ -22,13 +22,13 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,230151,3348.607,N,11821.124,W,1,05,1.7,49.2,M,-32.4,M,,*41 GPSD,O=GGA 1035673311.00 0.005 33.810117 -118.352067 49.20 ? ? 209.4000 0.000 0.000 ? ? ?
$GPGSA,A,3,07,08,,,27,28,29,,,,,,4.2,1.7,3.8*32 -GPSD,O=GSA 1035673311.00 0.005 33.810117 -118.352067 49.20 13.60 30.40 209.4000 0.000 0.000 141.1255 15.50 ?
+GPSD,O=GSA 1035673311.00 0.005 33.810117 -118.352067 49.20 13.60 30.40 209.4000 0.000 0.000 141.1255 24.86 ?
$GPGSV,2,1,08,07,43,197,45,08,68,062,42,11,18,089,00,26,24,314,43*73 $GPGSV,2,2,08,27,48,103,46,28,66,323,42,29,33,306,44,31,10,040,00*7F GPSD,Y=GSV ? 8:7 43 197 45 1:8 68 62 42 1:11 18 89 0 0:26 24 314 43 0:27 48 103 46 1:28 66 323 42 1:29 33 306 44 1:31 10 40 0 0:
$PGRME,17.4,M,40.3,M,43.9,M*15 $GPGLL,3348.607,N,11821.124,W,230151,A*3D -GPSD,O=GLL 1035673311.00 0.005 33.810117 -118.352067 49.20 17.40 40.30 209.4000 0.000 0.000 141.1255 15.50 ?
+GPSD,O=GLL 1035673311.00 0.005 33.810117 -118.352067 49.20 36.13 83.67 209.4000 0.000 0.000 141.1255 24.86 ?
$PGRMZ,161,f,3*1D $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 @@ -39,13 +39,13 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,230153,3348.607,N,11821.124,W,1,05,1.7,49.1,M,-32.4,M,,*40 GPSD,O=GGA 1035673313.00 0.005 33.810117 -118.352067 49.10 ? ? 209.4000 0.000 0.000 ? ? ?
$GPGSA,A,3,,08,,,,,29,,,,,,4.2,1.7,3.8*3A -GPSD,O=GSA 1035673313.00 0.005 33.810117 -118.352067 49.10 13.60 30.40 209.4000 0.000 0.000 ? 15.50 ?
+GPSD,O=GSA 1035673313.00 0.005 33.810117 -118.352067 49.10 13.60 30.40 209.4000 0.000 0.000 ? 24.86 ?
$GPGSV,2,1,08,07,43,197,45,08,68,062,42,11,18,089,00,26,24,314,41*71 $GPGSV,2,2,08,27,48,103,46,28,66,323,42,29,33,306,44,31,10,040,00*7F GPSD,Y=GSV ? 8:7 43 197 45 0:8 68 62 42 1:11 18 89 0 0:26 24 314 41 0:27 48 103 46 0:28 66 323 42 0:29 33 306 44 1:31 10 40 0 0:
$PGRME,17.4,M,40.3,M,43.9,M*15 $GPGLL,3348.607,N,11821.124,W,230153,A*3F -GPSD,O=GLL 1035673313.00 0.005 33.810117 -118.352067 49.10 17.40 40.30 209.4000 0.000 0.000 ? 15.50 ?
+GPSD,O=GLL 1035673313.00 0.005 33.810117 -118.352067 49.10 36.13 83.67 209.4000 0.000 0.000 ? 24.86 ?
$PGRMZ,161,f,3*1D $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 @@ -56,13 +56,13 @@ $GPRMB,A,,,,,,,,,,,,V*71 $GPGGA,230155,3348.608,N,11821.124,W,1,02,1.9,49.0,M,-32.4,M,,*41 GPSD,O=GGA 1035673315.00 0.005 33.810133 -118.352067 49.00 ? ? 209.4000 0.000 0.000 ? ? ?
$GPGSA,A,3,07,08,,,27,28,,,,,,,1.9,1.9,1.0*33 -GPSD,O=GSA 1035673315.00 0.005 33.810133 -118.352067 49.00 15.20 8.00 209.4000 0.000 0.000 166.1138 16.30 ?
+GPSD,O=GSA 1035673315.00 0.005 33.810133 -118.352067 49.00 15.20 8.00 209.4000 0.000 0.000 166.1138 25.66 ?
$GPGSV,2,1,08,07,43,197,45,08,68,062,43,11,18,089,00,26,24,314,41*70 $GPGSV,2,2,08,27,48,103,46,28,66,323,43,29,33,306,44,31,10,040,00*7E GPSD,Y=GSV ? 8:7 43 197 45 1:8 68 62 43 1:11 18 89 0 0:26 24 314 41 0:27 48 103 46 1:28 66 323 43 1:29 33 306 44 0:31 10 40 0 0:
$PGRME,19.2,M,150.0,M,151.2,M*17 $GPGLL,3348.608,N,11821.124,W,230155,A*36 -GPSD,O=GLL 1035673315.00 0.005 33.810133 -118.352067 49.00 19.20 150.00 209.4000 0.000 0.000 166.1138 16.30 ?
+GPSD,O=GLL 1035673315.00 0.005 33.810133 -118.352067 49.00 39.86 311.44 209.4000 0.000 0.000 166.1138 25.66 ?
$PGRMZ,161,f,3*1D $PGRMM,NAD83*29 $GPBOD,,T,,M,,*47 diff --git a/test/zodiac.log.chk b/test/zodiac.log.chk index f16a3ab7..03cea532 100644 --- a/test/zodiac.log.chk +++ b/test/zodiac.log.chk @@ -1,106 +1,106 @@ GPSD,W=1,R=1
$GPGGA,204220,5203.7576,N,00508.3123,E,3,08,,8.2,M,47.120,M,0.91,W*22
$GPRMC,204220,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*23
-GPSD,O=1000 1118695340.00 0.005 52.062626 5.138538 8.23 2.10 2.21 0.0000 0.000 -0.010 ? 0.56 ?
+GPSD,O=1000 1118695340.00 0.005 52.062626 5.138538 8.23 ? ? 0.0000 0.000 -0.010 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204221,5203.7576,N,00508.3123,E,3,08,,8.2,M,47.120,M,0.91,W*23
$GPRMC,204221,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*22
-GPSD,O=1000 1118695341.00 0.005 52.062626 5.138538 8.23 2.10 2.21 0.0000 0.000 0.000 ? 0.56 ?
+GPSD,O=1000 1118695341.00 0.005 52.062626 5.138538 8.23 ? ? 0.0000 0.000 0.000 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204222,5203.7576,N,00508.3123,E,3,08,,8.2,M,47.120,M,0.91,W*20
$GPRMC,204222,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*21
-GPSD,O=1000 1118695342.00 0.005 52.062626 5.138538 8.20 2.10 2.21 0.0000 0.000 -0.020 ? 0.56 ?
+GPSD,O=1000 1118695342.00 0.005 52.062626 5.138538 8.20 ? ? 0.0000 0.000 -0.020 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204223,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*20
$GPRMC,204223,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*20
-GPSD,O=1000 1118695343.00 0.005 52.062626 5.138538 8.28 2.10 2.21 0.0000 0.000 0.050 ? 0.56 ?
+GPSD,O=1000 1118695343.00 0.005 52.062626 5.138538 8.28 ? ? 0.0000 0.000 0.050 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204224,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*27
$GPRMC,204224,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*27
-GPSD,O=1000 1118695344.00 0.005 52.062626 5.138538 8.27 2.10 2.21 0.0000 0.000 0.010 ? 0.56 ?
+GPSD,O=1000 1118695344.00 0.005 52.062626 5.138538 8.27 ? ? 0.0000 0.000 0.010 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204225,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*26
$GPRMC,204225,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*26
-GPSD,O=1000 1118695345.00 0.005 52.062626 5.138538 8.26 2.10 2.21 0.0000 0.000 0.000 ? 0.56 ?
+GPSD,O=1000 1118695345.00 0.005 52.062626 5.138538 8.26 ? ? 0.0000 0.000 0.000 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204226,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*25
$GPRMC,204226,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*25
-GPSD,O=1000 1118695346.00 0.005 52.062626 5.138538 8.29 2.10 2.21 0.0000 0.000 0.030 ? 0.56 ?
+GPSD,O=1000 1118695346.00 0.005 52.062626 5.138538 8.29 ? ? 0.0000 0.000 0.030 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204227,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*24
$GPRMC,204227,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*24
-GPSD,O=1000 1118695347.00 0.005 52.062626 5.138538 8.28 2.10 2.21 0.0000 0.000 0.000 ? 0.56 ?
+GPSD,O=1000 1118695347.00 0.005 52.062626 5.138538 8.28 ? ? 0.0000 0.000 0.000 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204228,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*2B
$GPRMC,204228,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*2B
-GPSD,O=1000 1118695348.00 0.005 52.062626 5.138538 8.29 2.10 2.21 0.0000 0.000 0.010 ? 0.56 ?
+GPSD,O=1000 1118695348.00 0.005 52.062626 5.138538 8.29 ? ? 0.0000 0.000 0.010 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204229,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*2A
$GPRMC,204229,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*2A
-GPSD,O=1000 1118695349.00 0.005 52.062626 5.138538 8.28 2.10 2.21 0.0000 0.000 -0.010 ? 0.56 ?
+GPSD,O=1000 1118695349.00 0.005 52.062626 5.138538 8.28 ? ? 0.0000 0.000 -0.010 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204230,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*22
$GPRMC,204230,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*22
-GPSD,O=1000 1118695350.00 0.005 52.062626 5.138538 8.32 2.10 2.21 0.0000 0.000 0.040 ? 0.56 ?
+GPSD,O=1000 1118695350.00 0.005 52.062626 5.138538 8.32 ? ? 0.0000 0.000 0.040 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204231,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*23
$GPRMC,204231,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*23
-GPSD,O=1000 1118695351.00 0.005 52.062626 5.138538 8.33 2.10 2.21 0.0000 0.000 0.030 ? 0.56 ?
+GPSD,O=1000 1118695351.00 0.005 52.062626 5.138538 8.33 ? ? 0.0000 0.000 0.030 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204232,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*20
$GPRMC,204232,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*20
-GPSD,O=1000 1118695352.00 0.005 52.062626 5.138538 8.31 2.10 2.21 0.0000 0.000 0.000 ? 0.56 ?
+GPSD,O=1000 1118695352.00 0.005 52.062626 5.138538 8.31 ? ? 0.0000 0.000 0.000 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204233,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*21
$GPRMC,204233,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*21
-GPSD,O=1000 1118695353.00 0.005 52.062626 5.138538 8.27 2.10 2.21 0.0000 0.000 -0.020 ? 0.56 ?
+GPSD,O=1000 1118695353.00 0.005 52.062626 5.138538 8.27 ? ? 0.0000 0.000 -0.020 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204234,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*26
$GPRMC,204234,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*26
-GPSD,O=1000 1118695354.00 0.005 52.062626 5.138538 8.29 2.10 2.21 0.0000 0.000 0.020 ? 0.56 ?
+GPSD,O=1000 1118695354.00 0.005 52.062626 5.138538 8.29 ? ? 0.0000 0.000 0.020 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204235,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*27
$GPRMC,204235,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*27
-GPSD,O=1000 1118695355.00 0.005 52.062626 5.138538 8.27 2.10 2.21 0.0000 0.000 -0.010 ? 0.56 ?
+GPSD,O=1000 1118695355.00 0.005 52.062626 5.138538 8.27 ? ? 0.0000 0.000 -0.010 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204236,5203.7576,N,00508.3123,E,3,08,,8.3,M,47.120,M,0.91,W*24
$GPRMC,204236,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*24
-GPSD,O=1000 1118695356.00 0.005 52.062626 5.138538 8.26 2.10 2.21 0.0000 0.000 -0.010 ? 0.56 ?
+GPSD,O=1000 1118695356.00 0.005 52.062626 5.138538 8.26 ? ? 0.0000 0.000 -0.010 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204237,5203.7576,N,00508.3123,E,3,08,,8.2,M,47.120,M,0.91,W*24
$GPRMC,204237,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*25
-GPSD,O=1000 1118695357.00 0.005 52.062626 5.138538 8.25 2.10 2.21 0.0000 0.000 0.000 ? 0.56 ?
+GPSD,O=1000 1118695357.00 0.005 52.062626 5.138538 8.25 ? ? 0.0000 0.000 0.000 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204238,5203.7576,N,00508.3123,E,3,08,,8.2,M,47.120,M,0.91,W*2B
$GPRMC,204238,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*2A
-GPSD,O=1000 1118695358.00 0.005 52.062626 5.138538 8.20 2.10 2.21 0.0000 0.000 -0.030 ? 0.56 ?
+GPSD,O=1000 1118695358.00 0.005 52.062626 5.138538 8.20 ? ? 0.0000 0.000 -0.030 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204239,5203.7576,N,00508.3123,E,3,08,,8.2,M,47.120,M,0.91,W*2A
$GPRMC,204239,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*2B
-GPSD,O=1000 1118695359.00 0.005 52.062626 5.138538 8.18 2.10 2.21 0.0000 0.000 -0.030 ? 0.56 ?
+GPSD,O=1000 1118695359.00 0.005 52.062626 5.138538 8.18 ? ? 0.0000 0.000 -0.030 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
$GPGGA,204240,5203.7576,N,00508.3123,E,3,08,,8.2,M,47.120,M,0.91,W*24
$GPRMC,204240,A,5203.7576,N,00508.3123,E,0.0000,0.000,130605,,*25
-GPSD,O=1000 1118695360.00 0.005 52.062626 5.138538 8.19 2.10 2.21 0.0000 0.000 -0.010 ? 0.56 ?
+GPSD,O=1000 1118695360.00 0.005 52.062626 5.138538 8.19 ? ? 0.0000 0.000 -0.010 ? ? ?
$PRWIZCH,01,2,05,7,04,7,14,7,02,0,07,7,30,7,18,6,24,7,09,7,00,0,22,7*4C
GPSD,Y=?
diff --git a/www/gps-hacking.html b/www/gps-hacking.html index ceccd133..fbb161be 100644 --- a/www/gps-hacking.html +++ b/www/gps-hacking.html @@ -390,6 +390,9 @@ the non-technical description</a></dt> <dt> <a href='http://www.eomonline.com/Common/Archives/1995aug/95aug_gps.html'>Two</a> <a href='http://www.eomonline.com/Common/Archives/1996feb/96feb_gps.html'>articles</a> from Earth Observation Magazine</dt> <dd>These delve into the mysteries of GPS accuracy.</dd> + +<dt><a href='http://users.erols.com/dlwilson/gps.htm'>David L. Wilson's GPS Accuracy Web Page</a></dt> +<dd>Goes in-depth on accuracy, with the math.</dd> </dl> </body> @@ -184,11 +184,11 @@ static gps_mask_t handle1000(struct gps_device_t *session) session->mag_var = ((short)getword(37)) * RAD_2_DEG * 1e-4; session->gpsdata.newdata.climb = ((short)getword(38)) * 1e-2; /* map_datum = getword(39); */ - /* manual doesn't specify 1-sigma or 2-sigma */ - session->gpsdata.newdata.eph = (int)getlong(40) * 1e-2; - session->gpsdata.newdata.epv = (int)getlong(42) * 1e-2; - session->gpsdata.newdata.ept = (int)getlong(44) * 1e-2; - session->gpsdata.newdata.eps = (int)getword(46) * 1e-2; + /* manual doesn't specify the confidence interval */ + // session->gpsdata.newdata.eph = (int)getlong(40) * 1e-2; + // session->gpsdata.newdata.epv = (int)getlong(42) * 1e-2; + // session->gpsdata.newdata.ept = (int)getlong(44) * 1e-2; + // session->gpsdata.newdata.eps = (int)getword(46) * 1e-2; /* clock_bias = (int)getlong(47) * 1e-2; */ /* clock_bias_sd = (int)getlong(49) * 1e-2; */ /* clock_drift = (int)getlong(51) * 1e-2; */ @@ -218,7 +218,7 @@ static gps_mask_t handle1000(struct gps_device_t *session) #endif session->gpsdata.sentence_length = 55; - return TIME_SET|LATLON_SET|ALTITUDE_SET|CLIMB_SET|SPEED_SET|TRACK_SET|STATUS_SET|MODE_SET|HERR_SET|VERR_SET|SPEEDERR_SET|CYCLE_START_SET; + return TIME_SET|LATLON_SET|ALTITUDE_SET|CLIMB_SET|SPEED_SET|TRACK_SET|STATUS_SET|MODE_SET|CYCLE_START_SET; /* |HERR_SET|VERR_SET|SPEEDERR_SET */ } static gps_mask_t handle1002(struct gps_device_t *session) |