diff options
-rw-r--r-- | gpsd.h-tail | 8 | ||||
-rw-r--r-- | gpsd_json.c | 2 | ||||
-rw-r--r-- | gpsmon.c | 12 | ||||
-rw-r--r-- | tmp.llog | 380 |
4 files changed, 396 insertions, 6 deletions
diff --git a/gpsd.h-tail b/gpsd.h-tail index e3355821..b8d9e54c 100644 --- a/gpsd.h-tail +++ b/gpsd.h-tail @@ -931,6 +931,14 @@ extern void pps_early_init(struct gps_context_t *); TS_NORM( ts ); \ } while (0) +/* subtract two timespec */ +#define TS_SUB(r, ts1, ts2) \ + do { \ + (r)->tv_sec = (ts1)->tv_sec - (ts2)->tv_sec; \ + (r)->tv_nsec = (ts1)->tv_nsec - (ts2)->tv_nsec; \ + TS_NORM( r ); \ + } while (0) + extern void pps_thread_activate(struct gps_device_t *); extern void pps_thread_deactivate(struct gps_device_t *); extern int pps_thread_lastpps(struct gps_device_t *, struct timedrift_t *); diff --git a/gpsd_json.c b/gpsd_json.c index 6d54843f..f080ba91 100644 --- a/gpsd_json.c +++ b/gpsd_json.c @@ -190,7 +190,7 @@ void json_tpv_dump(const struct gps_device_t *session, /* you can not use a double here as you will lose 11 bits * of precision */ str_appendf(reply, replylen, - "\"pps\":%ld.$09ld,", + "\"pps\":%ld.$09lu,", session->ppslast.clock.tv_sec, session->ppslast.clock.tv_nsec); /*@+type +formattype@*/ @@ -674,17 +674,19 @@ static void gpsmon_hook(struct gps_device_t *device, gps_mask_t changed UNUSED) buf[0] = '\0'; } else { /*@-type@*/ /* splint is confused about struct timespec */ - /* WARNING! this will fail if timedelta more than a few seconds */ - double timedelta = timespec_diff_ns(noclobber.timedrift.real, - noclobber.timedrift.clock) * 1e-9; + struct timespec timedelta; + TS_SUB( &timedelta, &noclobber.timedrift.real, + &noclobber.timedrift.clock); + if (!curses_active) (void)fprintf(stderr, - "Drift clock=%lu.%09lu clock=%lu.%09lu offset=%.9f\n", + "Drift clock=%lu.%09lu clock=%lu.%09lu offset=%ld.%09lu\n", (unsigned long)noclobber.timedrift.clock.tv_sec, (unsigned long)noclobber.timedrift.clock.tv_nsec, (unsigned long)noclobber.timedrift.real.tv_sec, (unsigned long)noclobber.timedrift.real.tv_nsec, - timedelta); + (long)timedelta.tv_sec, + (unsigned long)timedelta.tv_nsec); /*@+type@*/ (void)strlcpy(buf, PPSBAR, sizeof(buf)); diff --git a/tmp.llog b/tmp.llog new file mode 100644 index 00000000..1edf4285 --- /dev/null +++ b/tmp.llog @@ -0,0 +1,380 @@ +gsmon:INFO: startup at 2015-02-02T23:24:43.000Z (1422919483) +gsmon:INFO: opening GPS data source type 3 at '/dev/gps0' +gsmon:INFO: speed 9600, 8N1 +gsmon:PROG: Probing "Garmin USB binary" driver... +gsmon:INFO: attempting USB device enumeration. +gsmon:INFO: 1d6b:0003 (bus 2, device 1) +gsmon:INFO: 046d:c06c (bus 1, device 35) +gsmon:INFO: 1d6b:0002 (bus 1, device 1) +gsmon:INFO: 13d3:5702 (bus 4, device 2) +gsmon:INFO: 1d6b:0002 (bus 4, device 1) +gsmon:INFO: 1d6b:0001 (bus 6, device 1) +gsmon:INFO: 1d6b:0002 (bus 3, device 1) +gsmon:INFO: 04ca:3006 (bus 5, device 3) +gsmon:INFO: 067b:2303 (bus 5, device 2) +gsmon:INFO: 1d6b:0001 (bus 5, device 1) +gsmon:INFO: vendor/product match with 091e:0003 not found +gsmon:PROG: Probe not found "Garmin USB binary" driver... +gsmon:PROG: Probing "GeoStar" driver... +gsmon:PROG: Sent GeoStar packet id 0xc1 +gsmon:IO: => GPS: 5053474700c100010000000050924746 +gsmon:PROG: Probe not found "GeoStar" driver... +gsmon:PROG: Probing "Trimble TSIP" driver... +gsmon:INFO: speed 9600, 8O1 +gsmon:INFO: speed 9600, 8N1 +gsmon:PROG: Probe not found "Trimble TSIP" driver... +gsmon:PROG: no probe matched... +gsmon:INFO: gpsd_activate(1): activated GPS (fd 3) +gsmon:PROG: PPS thread launched +gsmon:PROG: switching to match packet type 1: $GPGLL,4404.13381,N,12118.85590,W,232444.00,A,A*7A\x0d\x0a +gsmon:PROG: switch_driver(NMEA0183) called... +gsmon:PROG: selecting NMEA0183 driver... +gsmon:INFO: /dev/gps0 identified as type NMEA0183, 0.103849 sec @ 9600bps +gsmon:IO: <= GPS: $GPGLL,4404.13381,N,12118.85590,W,232444.00,A,A*7A
+gsmon:DATA: GPGLL: registers fractional time 232444.00 +gsmon:WARN: can't use GLL time until after ZDA or RMC has supplied a year. +gsmon:DATA: GLL: hhmmss=232444.00 lat=44.07 lon=-121.31 mode=2 status=1 +gsmon:PROG: GPGLL sentence timestamped 232444.00. +gsmon:PROG: GPGLL starts a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|LATLON|STATUS|MODE|PACKET|DRIVER|CLEAR} +gsmon:IO: <= GPS: $GPGST,232444.00,30,,,,7.8,5.0,4.2*5F
+gsmon:DATA: GPGST: registers fractional time 232444.00 +gsmon:DATA: GST: utc = 232444.00, rms = 30.00, maj = nan, min = nan, ori = nan, lat = 7.80, lon = 5.00, alt = 4.20 +gsmon:PROG: GPGST sentence timestamped 232444.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET|GST} +gsmon:IO: <= GPS: $GPZDA,232444.00,02,02,2015,00,00*67
+gsmon:DATA: GPZDA time is 1422919484.000000 = 2015-02-02T23:24:44.00Z +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGBS,232444.00,7.8,5.0,4.2,,,,*4A
+gsmon:DATA: GPGBS: registers fractional time 232444.00 +gsmon:DATA: GBS: epx=5.00 epy=7.80 epv=4.20 +gsmon:PROG: GPGBS sentence timestamped 232444.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|HERR|VERR|PACKET} +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 0, cycle: 1114803265 uSec, duration: 1114803265 uSec @ 1422919485.000769846 +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 1, cycle: 1114903219 uSec, duration: 99953 uSec @ 1422919485.100723329 +gsmon:IO: <= GPS: $GPRMC,232445.00,A,4404.13390,N,12118.85582,W,0.238,,020215,,,A*6C
+gsmon:DATA: merge_ddmmyy(020215) sets year 2015 +gsmon:DATA: GPRMC: registers fractional time 232445.00 +gsmon:DATA: RMC: ddmmyy=020215 hhmmss=232445.00 lat=44.07 lon=-121.31 speed=0.12 track=0.00 mode=2 status=1 +gsmon:DATA: GPRMC time is 1422919485.000000 = 2015-02-02T23:24:45.00Z +gsmon:PROG: GPRMC sentence timestamped 232445.00. +gsmon:PROG: GPRMC starts a reporting cycle. +gsmon:PROG: tagged GBS as a cycle ender. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|SPEED|TRACK|MODE|PACKET|CLEAR|PPSTIME} +gsmon:IO: <= GPS: $GPVTG,,T,,M,0.238,N,0.442,K,A*28
+gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGGA,232445.00,4404.13390,N,12118.85582,W,1,10,0.88,1132.6,M,-21.4,M,,*51
+gsmon:DATA: GPGGA: registers fractional time 232445.00 +gsmon:DATA: GGA: hhmmss=232445.00 lat=44.07 lon=-121.31 alt=1132.60 mode=3 status=1 +gsmon:DATA: GPGGA time is 1422919485.000000 = 2015-02-02T23:24:45.00Z +gsmon:PROG: GPGGA sentence timestamped 232445.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|ALTITUDE|STATUS|MODE|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGSA,A,3,03,23,32,20,16,31,09,06,10,07,,,1.53,0.88,1.26*0D
+gsmon:PROG: GPGSA sets mode 3 +gsmon:DATA: GPGSA: mode=3 used=10 pdop=1.53 hdop=0.88 vdop=1.26 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|MODE|DOP|PACKET|USED} +gsmon:IO: <= GPS: $GPGSV,3,1,12,02,03,332,,03,56,181,27,06,18,293,32,07,22,236,23*71
+gsmon:PROG: Partial satellite data (1 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,2,12,08,43,049,,09,42,296,34,10,15,315,30,16,47,117,30*7D
+gsmon:PROG: Partial satellite data (2 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,3,12,20,49,291,37,23,73,325,32,31,11,053,21,32,21,152,26*7C
+gsmon:DATA: GSV: Satellite data OK (3 of 3). +gsmon:INFO: Sats used (10): +gsmon:INFO: PRN= 3 az=181 el=56 (-0.009759, -0.559108, 0.829038) +gsmon:INFO: PRN= 6 az=293 el=18 (-0.875452, 0.371607, 0.309017) +gsmon:INFO: PRN= 7 az=236 el=22 (-0.768670, -0.518475, 0.374607) +gsmon:INFO: PRN= 9 az=296 el=42 (-0.667934, 0.325773, 0.669131) +gsmon:INFO: PRN= 10 az=315 el=15 (-0.683013, 0.683013, 0.258819) +gsmon:INFO: PRN= 16 az=117 el=47 (0.607665, -0.309621, 0.731354) +gsmon:INFO: PRN= 20 az=291 el=49 (-0.612484, 0.235111, 0.754710) +gsmon:INFO: PRN= 23 az=325 el=73 (-0.167698, 0.239497, 0.956305) +gsmon:INFO: PRN= 31 az= 53 el=11 (0.783962, 0.590758, 0.190809) +gsmon:INFO: PRN= 32 az=152 el=21 (0.438289, -0.824303, 0.358368) +gsmon:DATA: DOPS computed/reported: X=0.560690/nan, Y=0.672723/nan, H=0.875745/0.880000, V=1.252357/1.260000, P=1.528178/1.530000, T=0.754544/nan, G=1.704308/nan +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|DOP|SATELLITE|PACKET} +gsmon:IO: <= GPS: $GPGLL,4404.13390,N,12118.85582,W,232445.00,A,A*78
+gsmon:DATA: GPGLL: registers fractional time 232445.00 +gsmon:DATA: GLL: hhmmss=232445.00 lat=44.07 lon=-121.31 mode=2 status=1 +gsmon:DATA: GPGLL time is 1422919485.000000 = 2015-02-02T23:24:45.00Z +gsmon:PROG: GPGLL sentence timestamped 232445.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|STATUS|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGST,232445.00,31,,,,7.8,5.0,4.2*5F
+gsmon:DATA: GPGST: registers fractional time 232445.00 +gsmon:DATA: GST: utc = 232445.00, rms = 31.00, maj = nan, min = nan, ori = nan, lat = 7.80, lon = 5.00, alt = 4.20 +gsmon:PROG: GPGST sentence timestamped 232445.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET|GST} +gsmon:IO: <= GPS: $GPZDA,232445.00,02,02,2015,00,00*66
+gsmon:DATA: GPZDA time is 1422919485.000000 = 2015-02-02T23:24:45.00Z +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGBS,232445.00,7.8,5.0,4.2,,,,*4B
+gsmon:DATA: GPGBS: registers fractional time 232445.00 +gsmon:DATA: GBS: epx=5.00 epy=7.80 epv=4.20 +gsmon:PROG: GPGBS sentence timestamped 232445.00. +gsmon:PROG: GPGBS ends a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|HERR|VERR|PACKET|REPORT} +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 0, cycle: 1000040 uSec, duration: 900087 uSec @ 1422919486.000810711 +gsmon:INFO: PPS hooks called with gpsmon 1422919486.000810711 offset 9223372035431856128.000000000 +gsmon:PROG: PPS edge gpsmon 1422919486.000810711 offset 9223372035431856128.000000000 +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 1, cycle: 999977 uSec, duration: 99890 uSec @ 1422919486.100700848 +gsmon:IO: <= GPS: $GPRMC,232446.00,A,4404.13397,N,12118.85573,W,0.112,,020215,,,A*6D
+gsmon:DATA: merge_ddmmyy(020215) sets year 2015 +gsmon:DATA: GPRMC: registers fractional time 232446.00 +gsmon:DATA: RMC: ddmmyy=020215 hhmmss=232446.00 lat=44.07 lon=-121.31 speed=0.06 track=0.00 mode=2 status=1 +gsmon:DATA: GPRMC time is 1422919486.000000 = 2015-02-02T23:24:46.00Z +gsmon:PROG: GPRMC sentence timestamped 232446.00. +gsmon:PROG: GPRMC starts a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|SPEED|TRACK|MODE|PACKET|CLEAR|PPSTIME} +gsmon:IO: <= GPS: $GPVTG,,T,,M,0.112,N,0.208,K,A*2B
+gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGGA,232446.00,4404.13397,N,12118.85573,W,1,10,0.88,1132.6,M,-21.4,M,,*5B
+gsmon:DATA: GPGGA: registers fractional time 232446.00 +gsmon:DATA: GGA: hhmmss=232446.00 lat=44.07 lon=-121.31 alt=1132.60 mode=3 status=1 +gsmon:DATA: GPGGA time is 1422919486.000000 = 2015-02-02T23:24:46.00Z +gsmon:PROG: GPGGA sentence timestamped 232446.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|ALTITUDE|STATUS|MODE|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGSA,A,3,03,23,32,20,16,31,09,06,10,07,,,1.53,0.88,1.26*0D
+gsmon:PROG: GPGSA sets mode 3 +gsmon:DATA: GPGSA: mode=3 used=10 pdop=1.53 hdop=0.88 vdop=1.26 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|MODE|DOP|PACKET|USED} +gsmon:IO: <= GPS: $GPGSV,3,1,12,02,03,332,,03,56,181,27,06,18,293,32,07,22,236,23*71
+gsmon:PROG: Partial satellite data (1 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,2,12,08,43,049,,09,42,296,35,10,15,315,31,16,47,117,30*7D
+gsmon:PROG: Partial satellite data (2 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,3,12,20,49,291,37,23,73,325,32,31,11,053,20,32,21,152,26*7D
+gsmon:DATA: GSV: Satellite data OK (3 of 3). +gsmon:INFO: Sats used (10): +gsmon:INFO: PRN= 3 az=181 el=56 (-0.009759, -0.559108, 0.829038) +gsmon:INFO: PRN= 6 az=293 el=18 (-0.875452, 0.371607, 0.309017) +gsmon:INFO: PRN= 7 az=236 el=22 (-0.768670, -0.518475, 0.374607) +gsmon:INFO: PRN= 9 az=296 el=42 (-0.667934, 0.325773, 0.669131) +gsmon:INFO: PRN= 10 az=315 el=15 (-0.683013, 0.683013, 0.258819) +gsmon:INFO: PRN= 16 az=117 el=47 (0.607665, -0.309621, 0.731354) +gsmon:INFO: PRN= 20 az=291 el=49 (-0.612484, 0.235111, 0.754710) +gsmon:INFO: PRN= 23 az=325 el=73 (-0.167698, 0.239497, 0.956305) +gsmon:INFO: PRN= 31 az= 53 el=11 (0.783962, 0.590758, 0.190809) +gsmon:INFO: PRN= 32 az=152 el=21 (0.438289, -0.824303, 0.358368) +gsmon:DATA: DOPS computed/reported: X=0.560690/0.560690, Y=0.672723/0.672723, H=0.875745/0.880000, V=1.252357/1.260000, P=1.528178/1.530000, T=0.754544/0.754544, G=1.704308/1.704308 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|DOP|SATELLITE|PACKET} +gsmon:IO: <= GPS: $GPGLL,4404.13397,N,12118.85573,W,232446.00,A,A*72
+gsmon:DATA: GPGLL: registers fractional time 232446.00 +gsmon:DATA: GLL: hhmmss=232446.00 lat=44.07 lon=-121.31 mode=2 status=1 +gsmon:DATA: GPGLL time is 1422919486.000000 = 2015-02-02T23:24:46.00Z +gsmon:PROG: GPGLL sentence timestamped 232446.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|STATUS|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGST,232446.00,31,,,,7.8,5.1,4.2*5D
+gsmon:DATA: GPGST: registers fractional time 232446.00 +gsmon:DATA: GST: utc = 232446.00, rms = 31.00, maj = nan, min = nan, ori = nan, lat = 7.80, lon = 5.10, alt = 4.20 +gsmon:PROG: GPGST sentence timestamped 232446.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET|GST} +gsmon:IO: <= GPS: $GPZDA,232446.00,02,02,2015,00,00*65
+gsmon:DATA: GPZDA time is 1422919486.000000 = 2015-02-02T23:24:46.00Z +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGBS,232446.00,7.8,5.1,4.2,,,,*49
+gsmon:DATA: GPGBS: registers fractional time 232446.00 +gsmon:DATA: GBS: epx=5.10 epy=7.80 epv=4.20 +gsmon:PROG: GPGBS sentence timestamped 232446.00. +gsmon:PROG: GPGBS ends a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|HERR|VERR|PACKET|REPORT} +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 0, cycle: 999968 uSec, duration: 900078 uSec @ 1422919487.000779311 +gsmon:INFO: PPS hooks called with gpsmon 1422919487.000779311 offset 9223372035431856128.000000000 +gsmon:PROG: PPS edge gpsmon 1422919487.000779311 offset 9223372035431856128.000000000 +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 1, cycle: 1000069 uSec, duration: 99991 uSec @ 1422919487.100770339 +gsmon:IO: <= GPS: $GPRMC,232447.00,A,4404.13405,N,12118.85558,W,0.168,,020215,,,A*64
+gsmon:DATA: merge_ddmmyy(020215) sets year 2015 +gsmon:DATA: GPRMC: registers fractional time 232447.00 +gsmon:DATA: RMC: ddmmyy=020215 hhmmss=232447.00 lat=44.07 lon=-121.31 speed=0.09 track=0.00 mode=2 status=1 +gsmon:DATA: GPRMC time is 1422919487.000000 = 2015-02-02T23:24:47.00Z +gsmon:PROG: GPRMC sentence timestamped 232447.00. +gsmon:PROG: GPRMC starts a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|SPEED|TRACK|MODE|PACKET|CLEAR|PPSTIME} +gsmon:IO: <= GPS: $GPVTG,,T,,M,0.168,N,0.311,K,A*2F
+gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGGA,232447.00,4404.13405,N,12118.85558,W,1,10,0.88,1132.7,M,-21.4,M,,*5E
+gsmon:DATA: GPGGA: registers fractional time 232447.00 +gsmon:DATA: GGA: hhmmss=232447.00 lat=44.07 lon=-121.31 alt=1132.70 mode=3 status=1 +gsmon:DATA: GPGGA time is 1422919487.000000 = 2015-02-02T23:24:47.00Z +gsmon:PROG: GPGGA sentence timestamped 232447.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|ALTITUDE|STATUS|MODE|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGSA,A,3,03,23,32,20,16,31,09,06,10,07,,,1.53,0.88,1.26*0D
+gsmon:PROG: GPGSA sets mode 3 +gsmon:DATA: GPGSA: mode=3 used=10 pdop=1.53 hdop=0.88 vdop=1.26 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|MODE|DOP|PACKET|USED} +gsmon:IO: <= GPS: $GPGSV,3,1,12,02,03,332,,03,56,181,26,06,18,293,32,07,22,236,22*71
+gsmon:PROG: Partial satellite data (1 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,2,12,08,43,049,,09,42,296,34,10,15,315,30,16,47,117,31*7C
+gsmon:PROG: Partial satellite data (2 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,3,12,20,49,291,38,23,73,325,33,31,11,053,20,32,21,152,27*72
+gsmon:DATA: GSV: Satellite data OK (3 of 3). +gsmon:INFO: Sats used (10): +gsmon:INFO: PRN= 3 az=181 el=56 (-0.009759, -0.559108, 0.829038) +gsmon:INFO: PRN= 6 az=293 el=18 (-0.875452, 0.371607, 0.309017) +gsmon:INFO: PRN= 7 az=236 el=22 (-0.768670, -0.518475, 0.374607) +gsmon:INFO: PRN= 9 az=296 el=42 (-0.667934, 0.325773, 0.669131) +gsmon:INFO: PRN= 10 az=315 el=15 (-0.683013, 0.683013, 0.258819) +gsmon:INFO: PRN= 16 az=117 el=47 (0.607665, -0.309621, 0.731354) +gsmon:INFO: PRN= 20 az=291 el=49 (-0.612484, 0.235111, 0.754710) +gsmon:INFO: PRN= 23 az=325 el=73 (-0.167698, 0.239497, 0.956305) +gsmon:INFO: PRN= 31 az= 53 el=11 (0.783962, 0.590758, 0.190809) +gsmon:INFO: PRN= 32 az=152 el=21 (0.438289, -0.824303, 0.358368) +gsmon:DATA: DOPS computed/reported: X=0.560690/0.560690, Y=0.672723/0.672723, H=0.875745/0.880000, V=1.252357/1.260000, P=1.528178/1.530000, T=0.754544/0.754544, G=1.704308/1.704308 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|DOP|SATELLITE|PACKET} +gsmon:IO: <= GPS: $GPGLL,4404.13405,N,12118.85558,W,232447.00,A,A*76
+gsmon:DATA: GPGLL: registers fractional time 232447.00 +gsmon:DATA: GLL: hhmmss=232447.00 lat=44.07 lon=-121.31 mode=2 status=1 +gsmon:DATA: GPGLL time is 1422919487.000000 = 2015-02-02T23:24:47.00Z +gsmon:PROG: GPGLL sentence timestamped 232447.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|STATUS|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGST,232447.00,32,,,,7.7,5.1,4.2*50
+gsmon:DATA: GPGST: registers fractional time 232447.00 +gsmon:DATA: GST: utc = 232447.00, rms = 32.00, maj = nan, min = nan, ori = nan, lat = 7.70, lon = 5.10, alt = 4.20 +gsmon:PROG: GPGST sentence timestamped 232447.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET|GST} +gsmon:IO: <= GPS: $GPZDA,232447.00,02,02,2015,00,00*64
+gsmon:DATA: GPZDA time is 1422919487.000000 = 2015-02-02T23:24:47.00Z +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGBS,232447.00,7.7,5.1,4.2,,,,*47
+gsmon:DATA: GPGBS: registers fractional time 232447.00 +gsmon:DATA: GBS: epx=5.10 epy=7.70 epv=4.20 +gsmon:PROG: GPGBS sentence timestamped 232447.00. +gsmon:PROG: GPGBS ends a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|HERR|VERR|PACKET|REPORT} +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 0, cycle: 1000010 uSec, duration: 900019 uSec @ 1422919488.000790034 +gsmon:INFO: PPS hooks called with gpsmon 1422919488.000790034 offset 9223372035431856128.000000000 +gsmon:PROG: PPS edge gpsmon 1422919488.000790034 offset 9223372035431856128.000000000 +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 1, cycle: 1000010 uSec, duration: 99990 uSec @ 1422919488.100780828 +gsmon:IO: <= GPS: $GPRMC,232448.00,A,4404.13416,N,12118.85555,W,0.089,,020215,,,A*6A
+gsmon:DATA: merge_ddmmyy(020215) sets year 2015 +gsmon:DATA: GPRMC: registers fractional time 232448.00 +gsmon:DATA: RMC: ddmmyy=020215 hhmmss=232448.00 lat=44.07 lon=-121.31 speed=0.05 track=0.00 mode=2 status=1 +gsmon:DATA: GPRMC time is 1422919488.000000 = 2015-02-02T23:24:48.00Z +gsmon:PROG: GPRMC sentence timestamped 232448.00. +gsmon:PROG: GPRMC starts a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|SPEED|TRACK|MODE|PACKET|CLEAR|PPSTIME} +gsmon:IO: <= GPS: $GPVTG,,T,,M,0.089,N,0.165,K,A*20
+gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGGA,232448.00,4404.13416,N,12118.85555,W,1,10,0.88,1132.7,M,-21.4,M,,*5E
+gsmon:DATA: GPGGA: registers fractional time 232448.00 +gsmon:DATA: GGA: hhmmss=232448.00 lat=44.07 lon=-121.31 alt=1132.70 mode=3 status=1 +gsmon:DATA: GPGGA time is 1422919488.000000 = 2015-02-02T23:24:48.00Z +gsmon:PROG: GPGGA sentence timestamped 232448.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|ALTITUDE|STATUS|MODE|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGSA,A,3,03,23,32,20,16,31,09,06,10,07,,,1.53,0.88,1.26*0D
+gsmon:PROG: GPGSA sets mode 3 +gsmon:DATA: GPGSA: mode=3 used=10 pdop=1.53 hdop=0.88 vdop=1.26 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|MODE|DOP|PACKET|USED} +gsmon:IO: <= GPS: $GPGSV,3,1,12,02,03,332,,03,56,181,26,06,18,293,32,07,22,236,22*71
+gsmon:PROG: Partial satellite data (1 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,2,12,08,43,049,,09,42,296,34,10,15,315,31,16,47,117,32*7E
+gsmon:PROG: Partial satellite data (2 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,3,12,20,49,291,37,23,73,325,32,31,11,053,19,32,21,152,26*77
+gsmon:DATA: GSV: Satellite data OK (3 of 3). +gsmon:INFO: Sats used (10): +gsmon:INFO: PRN= 3 az=181 el=56 (-0.009759, -0.559108, 0.829038) +gsmon:INFO: PRN= 6 az=293 el=18 (-0.875452, 0.371607, 0.309017) +gsmon:INFO: PRN= 7 az=236 el=22 (-0.768670, -0.518475, 0.374607) +gsmon:INFO: PRN= 9 az=296 el=42 (-0.667934, 0.325773, 0.669131) +gsmon:INFO: PRN= 10 az=315 el=15 (-0.683013, 0.683013, 0.258819) +gsmon:INFO: PRN= 16 az=117 el=47 (0.607665, -0.309621, 0.731354) +gsmon:INFO: PRN= 20 az=291 el=49 (-0.612484, 0.235111, 0.754710) +gsmon:INFO: PRN= 23 az=325 el=73 (-0.167698, 0.239497, 0.956305) +gsmon:INFO: PRN= 31 az= 53 el=11 (0.783962, 0.590758, 0.190809) +gsmon:INFO: PRN= 32 az=152 el=21 (0.438289, -0.824303, 0.358368) +gsmon:DATA: DOPS computed/reported: X=0.560690/0.560690, Y=0.672723/0.672723, H=0.875745/0.880000, V=1.252357/1.260000, P=1.528178/1.530000, T=0.754544/0.754544, G=1.704308/1.704308 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|DOP|SATELLITE|PACKET} +gsmon:IO: <= GPS: $GPGLL,4404.13416,N,12118.85555,W,232448.00,A,A*76
+gsmon:DATA: GPGLL: registers fractional time 232448.00 +gsmon:DATA: GLL: hhmmss=232448.00 lat=44.07 lon=-121.31 mode=2 status=1 +gsmon:DATA: GPGLL time is 1422919488.000000 = 2015-02-02T23:24:48.00Z +gsmon:PROG: GPGLL sentence timestamped 232448.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|STATUS|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGST,232448.00,32,,,,7.6,5.1,4.2*5E
+gsmon:DATA: GPGST: registers fractional time 232448.00 +gsmon:DATA: GST: utc = 232448.00, rms = 32.00, maj = nan, min = nan, ori = nan, lat = 7.60, lon = 5.10, alt = 4.20 +gsmon:PROG: GPGST sentence timestamped 232448.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET|GST} +gsmon:IO: <= GPS: $GPZDA,232448.00,02,02,2015,00,00*6B
+gsmon:DATA: GPZDA time is 1422919488.000000 = 2015-02-02T23:24:48.00Z +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGBS,232448.00,7.6,5.1,4.2,,,,*49
+gsmon:DATA: GPGBS: registers fractional time 232448.00 +gsmon:DATA: GBS: epx=5.10 epy=7.60 epv=4.20 +gsmon:PROG: GPGBS sentence timestamped 232448.00. +gsmon:PROG: GPGBS ends a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|HERR|VERR|PACKET|REPORT} +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 0, cycle: 1000018 uSec, duration: 900028 uSec @ 1422919489.000808926 +gsmon:INFO: PPS hooks called with gpsmon 1422919489.000808926 offset 9223372035431856128.000000000 +gsmon:PROG: PPS edge gpsmon 1422919489.000808926 offset 9223372035431856128.000000000 +gsmon:PROG: PPS ioctl(TIOCMIWAIT) on /dev/gps0 succeeded +gsmon:PROG: PPS edge: 1, cycle: 1000232 uSec, duration: 100204 uSec @ 1422919489.101013618 +gsmon:IO: <= GPS: $GPRMC,232449.00,A,4404.13425,N,12118.85546,W,0.388,,020215,,,A*6B
+gsmon:DATA: merge_ddmmyy(020215) sets year 2015 +gsmon:DATA: GPRMC: registers fractional time 232449.00 +gsmon:DATA: RMC: ddmmyy=020215 hhmmss=232449.00 lat=44.07 lon=-121.31 speed=0.20 track=0.00 mode=2 status=1 +gsmon:DATA: GPRMC time is 1422919489.000000 = 2015-02-02T23:24:49.00Z +gsmon:PROG: GPRMC sentence timestamped 232449.00. +gsmon:PROG: GPRMC starts a reporting cycle. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|SPEED|TRACK|MODE|PACKET|CLEAR|PPSTIME} +gsmon:IO: <= GPS: $GPVTG,,T,,M,0.388,N,0.719,K,A*2F
+gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGGA,232449.00,4404.13425,N,12118.85546,W,1,10,0.88,1132.7,M,-21.4,M,,*5D
+gsmon:DATA: GPGGA: registers fractional time 232449.00 +gsmon:DATA: GGA: hhmmss=232449.00 lat=44.07 lon=-121.31 alt=1132.70 mode=3 status=1 +gsmon:DATA: GPGGA time is 1422919489.000000 = 2015-02-02T23:24:49.00Z +gsmon:PROG: GPGGA sentence timestamped 232449.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|ALTITUDE|STATUS|MODE|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGSA,A,3,03,23,32,20,16,31,09,06,10,07,,,1.53,0.88,1.26*0D
+gsmon:PROG: GPGSA sets mode 3 +gsmon:DATA: GPGSA: mode=3 used=10 pdop=1.53 hdop=0.88 vdop=1.26 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|MODE|DOP|PACKET|USED} +gsmon:IO: <= GPS: $GPGSV,3,1,12,02,03,332,,03,56,181,26,06,18,293,32,07,22,236,22*71
+gsmon:PROG: Partial satellite data (1 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,2,12,08,43,049,,09,42,296,35,10,15,315,31,16,47,117,32*7F
+gsmon:PROG: Partial satellite data (2 of 3). +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET} +gsmon:IO: <= GPS: $GPGSV,3,3,12,20,49,291,38,23,73,325,32,31,11,053,20,32,21,152,26*72
+gsmon:DATA: GSV: Satellite data OK (3 of 3). +gsmon:INFO: Sats used (10): +gsmon:INFO: PRN= 3 az=181 el=56 (-0.009759, -0.559108, 0.829038) +gsmon:INFO: PRN= 6 az=293 el=18 (-0.875452, 0.371607, 0.309017) +gsmon:INFO: PRN= 7 az=236 el=22 (-0.768670, -0.518475, 0.374607) +gsmon:INFO: PRN= 9 az=296 el=42 (-0.667934, 0.325773, 0.669131) +gsmon:INFO: PRN= 10 az=315 el=15 (-0.683013, 0.683013, 0.258819) +gsmon:INFO: PRN= 16 az=117 el=47 (0.607665, -0.309621, 0.731354) +gsmon:INFO: PRN= 20 az=291 el=49 (-0.612484, 0.235111, 0.754710) +gsmon:INFO: PRN= 23 az=325 el=73 (-0.167698, 0.239497, 0.956305) +gsmon:INFO: PRN= 31 az= 53 el=11 (0.783962, 0.590758, 0.190809) +gsmon:INFO: PRN= 32 az=152 el=21 (0.438289, -0.824303, 0.358368) +gsmon:DATA: DOPS computed/reported: X=0.560690/0.560690, Y=0.672723/0.672723, H=0.875745/0.880000, V=1.252357/1.260000, P=1.528178/1.530000, T=0.754544/0.754544, G=1.704308/1.704308 +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|DOP|SATELLITE|PACKET} +gsmon:IO: <= GPS: $GPGLL,4404.13425,N,12118.85546,W,232449.00,A,A*75
+gsmon:DATA: GPGLL: registers fractional time 232449.00 +gsmon:DATA: GLL: hhmmss=232449.00 lat=44.07 lon=-121.31 mode=2 status=1 +gsmon:DATA: GPGLL time is 1422919489.000000 = 2015-02-02T23:24:49.00Z +gsmon:PROG: GPGLL sentence timestamped 232449.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|LATLON|STATUS|PACKET|PPSTIME} +gsmon:IO: <= GPS: $GPGST,232449.00,32,,,,7.6,5.1,4.3*5E
+gsmon:DATA: GPGST: registers fractional time 232449.00 +gsmon:DATA: GST: utc = 232449.00, rms = 32.00, maj = nan, min = nan, ori = nan, lat = 7.60, lon = 5.10, alt = 4.30 +gsmon:PROG: GPGST sentence timestamped 232449.00. +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|PACKET|GST} +gsmon:IO: <= GPS: $GPZDA,232449.00,02,02,2015,00,00*6A
+gsmon:DATA: GPZDA time is 1422919489.000000 = 2015-02-02T23:24:49.00Z +gsmon:DATA: packet type 1 from /dev/gps0 with {ONLINE|TIME|PACKET|PPSTIME} |