summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Fong <gregory.fong@virginorbit.com>2018-07-29 17:21:24 -0700
committerGary E. Miller <gem@rellim.com>2018-07-29 17:21:24 -0700
commitf41d577b6352e80919469ee1724a0b9ad4359e67 (patch)
tree7a96d9194937855ebaecc14bb254236d3ccc5940
parentd1f79455a50f92b3dbf68c2ad5196423d80ed78a (diff)
downloadgpsd-f41d577b6352e80919469ee1724a0b9ad4359e67.tar.gz
Add GREIS (Javad) GPS driver.
All functional changes inside "#ifdef GREIS_ENABLE" Includes new regression tests. All regressions tests pass. Developed by Gregory Fong, with help and support from Virgin Orbit. Signed-off-by: Gary E. Miller <gem@rellim.com>
-rw-r--r--NEWS1
-rw-r--r--SConstruct3
-rw-r--r--driver_greis.c963
-rw-r--r--driver_greis.h6
-rw-r--r--driver_greis_checksum.c24
-rw-r--r--drivers.c13
-rw-r--r--gpsd.h40
-rw-r--r--packet.c153
-rw-r--r--packet_states.h12
-rw-r--r--test/daemon/greis-binary.logbin0 -> 11725 bytes
-rw-r--r--test/daemon/greis-binary.log.chk396
-rw-r--r--test/daemon/greis-def.logbin0 -> 16188 bytes
-rw-r--r--test/daemon/greis-def.log.chk12
-rw-r--r--test/daemon/greis-reset.logbin0 -> 23212 bytes
-rw-r--r--test/daemon/greis-reset.log.chk741
-rw-r--r--test/daemon/greis-test.logbin0 -> 13926 bytes
-rw-r--r--test/daemon/greis-test.log.chk308
-rw-r--r--test/daemon/greis-test2.logbin0 -> 2116 bytes
-rw-r--r--test/daemon/greis-test2.log.chk42
19 files changed, 2692 insertions, 22 deletions
diff --git a/NEWS b/NEWS
index 3f84cbe2..9c831fe5 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,7 @@
3.18: not released yet
Add ECEF support to U-blox driver.
+ Add GREIS (Javad) driver from Virgin Orbit.
3.17: 2017-09-07 (Eric S. Raymond <esr@snark.thyrsus.com>)
Repair support for non-NMEA devices requring active probing
diff --git a/SConstruct b/SConstruct
index 665001c2..6c5b9dc9 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1119,6 +1119,8 @@ libgpsd_sources = [
"driver_garmin.c",
"driver_garmin_txt.c",
"driver_geostar.c",
+ "driver_greis.c",
+ "driver_greis_checksum.c",
"driver_italk.c",
"driver_navcom.c",
"driver_nmea0183.c",
@@ -1364,6 +1366,7 @@ else:
python_extensions = {
"gps" + os.sep + "packet": [
"crc24q.c",
+ "driver_greis_checksum.c",
"driver_rtcm2.c",
"gpspacket.c",
"hex.c",
diff --git a/driver_greis.c b/driver_greis.c
new file mode 100644
index 00000000..fd360fe8
--- /dev/null
+++ b/driver_greis.c
@@ -0,0 +1,963 @@
+/*
+ * A Javad GNSS Receiver External Interface Specification (GREIS) driver.
+ *
+ * Author(s):
+ * - Gregory Fong <gregory.fong@virginorbit.com>
+ *
+ * Documentation for GREIS can be found at:
+ * http://www.javad.com/downloads/javadgnss/manuals/GREIS/GREIS_Reference_Guide.pdf
+ *
+ * The version used for reference is that which
+ * "Reflects Firmware Version 3.6.7, Last revised: August 25, 2016".
+ *
+ * This assumes little endian byte order in messages, which is the default, but
+ * that is configurable. A future improvement could change to read the
+ * information in [MF] Message Format.
+ *
+ * This file is Copyright (c) 2017 Virgin Orbit
+ * SPDX-License-Identifier: BSD-2-clause
+ */
+
+#include <assert.h>
+#include <math.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/select.h>
+
+#include "bits.h"
+#include "driver_greis.h"
+#include "gpsd.h"
+
+#if defined(GREIS_ENABLE) && defined(BINARY_ENABLE)
+
+#define HEADER_LENGTH 5
+
+static ssize_t greis_write(struct gps_device_t *session,
+ const char *msg, size_t msglen);
+static const char disable_messages[] = "\%dm\%dm";
+static const char get_vendor[] = "\%vendor\%print,/par/rcv/vendor";
+static const char get_ver[] = "\%ver\%print,rcv/ver";
+static const char set_update_rate_4hz[] = "\%msint\%set,/par/raw/msint,250";
+
+/* Where applicable, the order here is how these will be received per cycle. */
+/* TODO: stop hardcoding the cycle time, make it selectable */
+static const char enable_messages_4hz[] =
+ "\%em\%em,,jps/{RT,UO,GT,PV,SG,DP,SI,EL,AZ,EC,SS,ET}:0.25";
+
+/*
+ * GREIS message handlers. The checksum has been already confirmed valid in the
+ * packet acceptance logic, so we don't need to retest it here.
+ */
+
+/**
+ * Handle the message [RE] Reply
+ */
+static gps_mask_t greis_msg_RE(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ if (0 == memcmp(buf, "%ver%", 5)) {
+ strlcpy(session->subtype, (const char*)&buf[5],
+ sizeof(session->subtype));
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: RE, ->subtype: %s\n", session->subtype);
+ return DEVICEID_SET;
+ }
+
+ gpsd_log(&session->context->errout, LOG_INFO,
+ "GREIS: RE %3zd, reply: %.*s\n", len, (int)len, buf);
+ return 0;
+}
+
+/**
+ * Handle the message [ER] Reply
+ */
+static gps_mask_t greis_msg_ER(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: ER %3zd, reply: %.*s\n", len, (int)len, buf);
+ return 0;
+}
+
+/**
+ * Handle the message [~~](RT) Receiver Time.
+ */
+static gps_mask_t greis_msg_RT(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ if (len < 5) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: RT bad len %zu\n", len);
+ return 0;
+ }
+
+ session->driver.greis.rt_tod = getleu32(buf, 0);
+
+ session->driver.greis.seen_rt = true;
+ session->driver.greis.seen_az = false;
+ session->driver.greis.seen_ec = false;
+ session->driver.greis.seen_el = false;
+ session->driver.greis.seen_si = false;
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: RT, tod: %lu\n",
+ (unsigned long)session->driver.greis.rt_tod);
+
+ return CLEAR_IS;
+}
+
+/**
+ * Handle the message [UO] GPS UTC Time Parameters.
+ */
+static gps_mask_t greis_msg_UO(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ /*
+ * For additional details on these parameters and the computation done using
+ * them, refer to the Javad GREIS spec mentioned at the top of this file and
+ * also to ICD-GPS-200C, Revision IRN-200C-004 April 12, 2000. At the time
+ * of writing, that could be found at
+ * https://www.navcen.uscg.gov/pubs/gps/icd200/ICD200Cw1234.pdf .
+ */
+ uint32_t tot; /* Reference time of week [s] */
+ uint16_t wnt; /* Reference week number [dimensionless] */
+ int8_t dtls; /* Delta time due to leap seconds [s] */
+ uint8_t dn; /* 'Future' reference day number [1..7] */
+ uint16_t wnlsf; /* 'Future' reference week number [dimensionless] */
+ int8_t dtlsf; /* 'Future' delta time due to leap seconds [s] */
+
+ if (len < 24) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: UO bad len %zu\n", len);
+ return 0;
+ }
+
+ tot = getleu32(buf, 12);
+ wnt = getleu16(buf, 16);
+ dtls = getsb(buf, 18);
+ dn = getub(buf, 19);
+ wnlsf = getleu16(buf, 20);
+ dtlsf = getsb(buf, 22);
+ session->driver.greis.seen_uo = true;
+
+ /*
+ * See ICD-GPS-200C 20.3.3.5.2.4 "Universal Coordinated Time (UTC)".
+ * I totally ripped this off of driver_navcom.c. Might want to dedupe at
+ * some point.
+ */
+ if ((wnt % 256U) * 604800U + tot < wnlsf * 604800U + dn * 86400U) {
+ /* Current time is before effectivity time of the leap second event */
+ session->context->leap_seconds = dtls;
+ } else {
+ session->context->leap_seconds = dtlsf;
+ }
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: UO, leap_seconds: %d\n", session->context->leap_seconds);
+
+ return 0;
+}
+
+/**
+ * Handle the message [GT] GPS Time.
+ */
+static gps_mask_t greis_msg_GT(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ uint32_t tow; /* Time of week [ms] */
+ uint16_t wn; /* GPS week number (modulo 1024) [dimensionless] */
+
+ if (len < 7) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: GT bad len %zu\n", len);
+ return 0;
+ }
+
+ if (!session->driver.greis.seen_uo) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: can't use GT until after UO has supplied leap second data\n");
+ return 0;
+ }
+
+ tow = getleu32(buf, 0);
+ wn = getleu16(buf, 4);
+
+ session->newdata.time = gpsd_gpstime_resolve(session, wn, tow / 1000.0);
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: GT, tow: %u, wn: %u, time: %.2f\n", tow, wn,
+ session->newdata.time);
+
+ return TIME_SET | NTPTIME_IS | ONLINE_SET;
+}
+
+/**
+ * Handle the message [PV] Cartesian Position and Velocity.
+ */
+static gps_mask_t greis_msg_PV(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ double x, y, z; /* Cartesian coordinates [m] */
+ float p_sigma; /* Position spherical error probability (SEP) [m] */
+ float vx, vy, vz; /* Cartesian velocities [m/s] */
+ float v_sigma; /* Velocity SEP [m/s] */
+ uint8_t solution_type;
+
+ if (len < 46) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: PV bad len %zu\n", len);
+ return 0;
+ }
+
+ x = getled64((char *)buf, 0);
+ y = getled64((char *)buf, 8);
+ z = getled64((char *)buf, 16);
+ p_sigma = getlef32((char *)buf, 24);
+ vx = getlef32((char *)buf, 28);
+ vy = getlef32((char *)buf, 32);
+ vz = getlef32((char *)buf, 36);
+ v_sigma = getlef32((char *)buf, 40);
+ solution_type = getub(buf, 44);
+
+ session->newdata.ecef.x = x;
+ session->newdata.ecef.y = y;
+ session->newdata.ecef.z = z;
+ session->newdata.ecef.pAcc = p_sigma;
+ session->newdata.ecef.vx = vx;
+ session->newdata.ecef.vy = vy;
+ session->newdata.ecef.vz = vz;
+ session->newdata.ecef.vAcc = v_sigma;
+ ecef_to_wgs84fix(&session->newdata, &session->gpsdata.separation,
+ x, y, z, vx, vy, vz);
+
+ /* GREIS Reference Guide 3.4.2 "General Notes" part "Solution Types" */
+ if (solution_type > 0 && solution_type < 5) {
+ session->newdata.mode = MODE_3D;
+ if (solution_type > 1)
+ session->gpsdata.status = STATUS_DGPS_FIX;
+ else
+ session->gpsdata.status = STATUS_FIX;
+ }
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: PV, ECEF x=%.2f y=%.2f z=%.2f pAcc=%.2f\n",
+ session->newdata.ecef.x,
+ session->newdata.ecef.y,
+ session->newdata.ecef.z,
+ session->newdata.ecef.pAcc);
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: PV, ECEF vx=%.2f vy=%.2f vz=%.2f vAcc=%.2f\n",
+ session->newdata.ecef.vx,
+ session->newdata.ecef.vy,
+ session->newdata.ecef.vz,
+ session->newdata.ecef.vAcc);
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: PV, lat: %.2f, lon: %.2f, alt: %.2f, solution_type: %d\n",
+ session->newdata.latitude,
+ session->newdata.longitude, session->newdata.altitude,
+ solution_type);
+
+ return LATLON_SET | ALTITUDE_SET | CLIMB_SET | TRACK_SET | SPEED_SET |
+ MODE_SET | STATUS_SET | ECEF_SET | VECEF_SET;
+}
+
+/**
+ * Handle the message [SG] Position and Velocity RMS Errors.
+ */
+static gps_mask_t greis_msg_SG(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ float hpos; /* Horizontal position RMS error [m] */
+ float vpos; /* Vertical position RMS error [m] */
+ float hvel; /* Horizontal velocity RMS error [m/s] */
+ float vvel; /* Vertical velocity RMS error [m/s] */
+
+ if (len < 18) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: SG bad len %zu\n", len);
+ return 0;
+ }
+
+ hpos = getlef32((char *)buf, 0);
+ vpos = getlef32((char *)buf, 4);
+ hvel = getlef32((char *)buf, 8);
+ vvel = getlef32((char *)buf, 12);
+
+ /*
+ * All errors are RMS which can be approximated as 1 sigma, so we can just
+ * multiply to get the length used for GPSD confidence level.
+ *
+ * Make the simplifying assumption that error is the same for latitude and
+ * longitude, since GREIS does not provide those as precomputed components.
+ * A future improvement might be to compute the individual errors from the
+ * position covariance matrix, but only if this proves insufficient.
+ */
+ session->newdata.epx = session->newdata.epy =
+ hpos * (1 / sqrt(2)) * GPSD_CONFIDENCE;
+ session->newdata.epv = vpos * GPSD_CONFIDENCE;
+ session->newdata.eps = hvel * GPSD_CONFIDENCE;
+ session->newdata.epc = vvel * GPSD_CONFIDENCE;
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: SG, epx: %.2f, epy: %.2f, eps: %.2f, epc: %.2f\n",
+ session->newdata.epx, session->newdata.epy,
+ session->newdata.eps, session->newdata.epc);
+
+ return HERR_SET | VERR_SET | SPEEDERR_SET | CLIMBERR_SET;
+}
+
+/**
+ * Handle the message [DP] Dilution of Precision.
+ * Note that fill_dop() will handle the unset dops later.
+ */
+static gps_mask_t greis_msg_DP(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ if (len < 18) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: DP bad len %zu\n", len);
+ return 0;
+ }
+
+ /* clear so that computed DOPs get recomputed. */
+ gps_clear_dop(&session->gpsdata.dop);
+
+ session->gpsdata.dop.hdop = getlef32((char *)buf, 0);
+ session->gpsdata.dop.vdop = getlef32((char *)buf, 4);
+ session->gpsdata.dop.tdop = getlef32((char *)buf, 8);
+
+ session->gpsdata.dop.pdop = sqrt(pow(session->gpsdata.dop.hdop, 2) +
+ pow(session->gpsdata.dop.vdop, 2));
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: DP, hdop: %.2f, vdop: %.2f, tdop: %.2f, pdop: %.2f\n",
+ session->gpsdata.dop.hdop, session->gpsdata.dop.vdop,
+ session->gpsdata.dop.tdop, session->gpsdata.dop.pdop);
+
+ return DOP_SET;
+}
+
+/**
+ * Handle the message [SI] Satellite Indices.
+ *
+ * This message tells us how many satellites are seen and contains their
+ * Universal Satellite Identifier (USI).
+ */
+static gps_mask_t greis_msg_SI(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ int i;
+
+ if (len < 1) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: SI bad len %zu\n", len);
+ return 0;
+ }
+
+ gpsd_zero_satellites(&session->gpsdata);
+ /* FIXME: check against MAXCHANNELS? */
+ session->gpsdata.satellites_visible = len - 1;
+ for (i = 0; i < session->gpsdata.satellites_visible; i++) {
+ /* This isn't really PRN, this is USI. Do we need to convert? */
+ session->gpsdata.skyview[i].PRN = getub(buf, i);
+ }
+
+ session->driver.greis.seen_si = true;
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: SI, satellites_visible: %d\n",
+ session->gpsdata.satellites_visible);
+
+ return 0;
+}
+
+/**
+ * Handle the message [EL] Satellite Elevations.
+ */
+static gps_mask_t greis_msg_EL(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ int i;
+
+ if (!session->driver.greis.seen_si) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: can't use EL until after SI provides indices\n");
+ return 0;
+ }
+
+ /* check against number of satellites + checksum */
+ if (len < session->gpsdata.satellites_visible + 1U) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: EL bad len %zu, needed at least %d\n", len,
+ session->gpsdata.satellites_visible + 1);
+ return 0;
+ }
+
+ for (i = 0; i < session->gpsdata.satellites_visible; i++) {
+ short elevation;
+
+ /* GREIS elevation is -90 to 90 degrees */
+ /* GREIS uses 127 for n/a */
+ /* gpsd uses -91 for n/a, so adjust acordingly */
+ elevation = getub(buf, i);
+ if ((-90 > elevation) || (90 < elevation)) elevation = -91;
+ session->gpsdata.skyview[i].elevation = elevation;
+ }
+
+ session->driver.greis.seen_el = true;
+ gpsd_log(&session->context->errout, LOG_DATA, "GREIS: EL\n");
+
+ return 0;
+}
+
+/**
+ * Handle the message [AZ] Satellite Azimuths.
+ */
+static gps_mask_t greis_msg_AZ(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ int i;
+
+ if (!session->driver.greis.seen_si) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: can't use AZ until after SI provides indices\n");
+ return 0;
+ }
+
+ /* check against number of satellites + checksum */
+ if (len < session->gpsdata.satellites_visible + 1U) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: AZ bad len %zu, needed at least %d\n", len,
+ session->gpsdata.satellites_visible + 1);
+ return 0;
+ }
+
+ for (i = 0; i < session->gpsdata.satellites_visible; i++) {
+ short azimuth;
+
+ /* GREIS azimuth is 0 to 180, multiply by 2 for 0 to 360 */
+ /* GREIS uses 255 for n/a */
+ /* gpsd azimuth is 0 to 359, so adjust acordingly */
+ azimuth = getub(buf, i) * 2;
+ if (360 == azimuth) azimuth = 0;
+ else if (360 < azimuth) azimuth = -1;
+ session->gpsdata.skyview[i].azimuth = azimuth;
+ }
+
+ session->driver.greis.seen_az = true;
+ gpsd_log(&session->context->errout, LOG_DATA, "GREIS: AZ\n");
+
+ return 0;
+}
+
+/**
+ * Handle the message [EC] SNR (CA/L1).
+ * EC really outputs CNR, but what gpsd refers to as SNR _is_ CNR.
+ */
+static gps_mask_t greis_msg_EC(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ int i;
+
+ if (!session->driver.greis.seen_si) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: can't use EC until after SI provides indices\n");
+ return 0;
+ }
+
+ /* check against number of satellites + checksum */
+ if (len < session->gpsdata.satellites_visible + 1U) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: EC bad len %zu, needed at least %d\n", len,
+ session->gpsdata.satellites_visible + 1);
+ return 0;
+ }
+
+ for (i = 0; i < session->gpsdata.satellites_visible; i++)
+ session->gpsdata.skyview[i].ss = getub(buf, i);
+
+ session->driver.greis.seen_ec = true;
+ gpsd_log(&session->context->errout, LOG_DATA, "GREIS: EC\n");
+
+ return 0;
+}
+
+/**
+ * Handle the message [SS] Satellite Navigation Status.
+ */
+static gps_mask_t greis_msg_SS(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ int i;
+ int used_count = 0;
+
+ if (!session->driver.greis.seen_si) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: can't use SS until after SI provides indices\n");
+ return 0;
+ }
+
+ /* check against number of satellites + solution type + checksum */
+ if (len < session->gpsdata.satellites_visible + 2U) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: SI bad len %zu, needed at least %d\n", len,
+ session->gpsdata.satellites_visible + 2);
+ return 0;
+ }
+
+ for (i = 0; i < session->gpsdata.satellites_visible; i++) {
+ /*
+ * From the GREIS Reference Guide: "Codes [0...3], [40...62], and
+ * [64...255] indicate that given satellite is used in position
+ * computation and show which measurements are used. The rest of codes
+ * indicate that satellite is not used in position computation and
+ * indicate why this satellite is excluded from position computation."
+ * Refer to Table 3-4 "Satellite Navigation Status" for the specific
+ * code meanings.
+ */
+ uint8_t nav_status = getub(buf, i);
+ session->gpsdata.skyview[i].used =
+ (nav_status <= 3) ||
+ (nav_status >= 40 && nav_status <= 62) ||
+ (nav_status >= 64);
+
+ if (session->gpsdata.skyview[i].used)
+ used_count++;
+ }
+ session->gpsdata.satellites_used = used_count;
+
+ gpsd_log(&session->context->errout, LOG_DATA,
+ "GREIS: SS, satellites_used: %d\n",
+ session->gpsdata.satellites_used);
+
+ return used_count ? USED_IS : 0;
+}
+
+
+/**
+ * Handle the message [::](ET) Epoch Time.
+ * This should be kept as the last message in each epoch.
+ */
+static gps_mask_t greis_msg_ET(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ uint32_t tod;
+ gps_mask_t mask = 0;
+
+ if (len < 5) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: ET bad len %zu\n", len);
+ return 0;
+ }
+
+ if (!session->driver.greis.seen_rt) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: got ET, but no preceding RT for epoch\n");
+ return 0;
+ }
+
+ tod = getleu32(buf, 0);
+ if (tod != session->driver.greis.rt_tod) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: broken epoch, RT had %lu, but ET has %lu\n",
+ (unsigned long)session->driver.greis.rt_tod,
+ (unsigned long)tod);
+ return 0;
+ }
+
+ /* Skyview time does not differ from time in GT message */
+ session->gpsdata.skyview_time = NAN;
+
+ gpsd_log(&session->context->errout, LOG_DEBUG,
+ "GREIS: ET, seen: az %d, ec %d, el %d, rt %d, si %d, uo %d\n",
+ (int)session->driver.greis.seen_az,
+ (int)session->driver.greis.seen_ec,
+ (int)session->driver.greis.seen_el,
+ (int)session->driver.greis.seen_rt,
+ (int)session->driver.greis.seen_si,
+ (int)session->driver.greis.seen_uo);
+
+ /* Make sure we got the satellite data, then report it. */
+ if ((session->driver.greis.seen_az && session->driver.greis.seen_ec &&
+ session->driver.greis.seen_el && session->driver.greis.seen_si)) {
+ /* Skyview seen, update it. Go even if no seen_ss or none visible */
+ mask |= SATELLITE_SET;
+ } else {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: ET: missing satellite details in this epoch\n");
+ }
+
+ gpsd_log(&session->context->errout, LOG_DATA, "GREIS: ET, tod: %lu\n",
+ (unsigned long)tod);
+
+ /* This is a good place to poll firmware version if we need it.
+ * Waited until now to avoid the startup rush and out of
+ * critical time path
+ */
+ if (0 == strlen(session->subtype)) {
+ /* get version */
+ (void)greis_write(session, get_ver, sizeof(get_ver) - 1);
+ }
+ /* The driver waits for ET to send any reports
+ * Just REPORT_IS is not enough to trigger sending of reports to clients.
+ * STATUS_SET seems best, if no status by now the status is no fix */
+ return mask | REPORT_IS | STATUS_SET;
+}
+
+struct dispatch_table_entry {
+ char id0;
+ char id1;
+ gps_mask_t (*handler)(struct gps_device_t *, unsigned char *, size_t);
+};
+
+static struct dispatch_table_entry dispatch_table[] = {
+ {':', ':', greis_msg_ET},
+ {'A', 'Z', greis_msg_AZ},
+ {'D', 'P', greis_msg_DP},
+ {'E', 'C', greis_msg_EC},
+ {'E', 'R', greis_msg_ER},
+ {'E', 'L', greis_msg_EL},
+ {'G', 'T', greis_msg_GT},
+ {'P', 'V', greis_msg_PV},
+ {'R', 'E', greis_msg_RE},
+ {'S', 'G', greis_msg_SG},
+ {'S', 'I', greis_msg_SI},
+ {'S', 'S', greis_msg_SS},
+ {'U', 'O', greis_msg_UO},
+ {'~', '~', greis_msg_RT},
+};
+
+#define dispatch_table_size (sizeof(dispatch_table) / sizeof(dispatch_table[0]))
+
+/**
+ * Parse the data from the device
+ */
+static gps_mask_t greis_dispatch(struct gps_device_t *session,
+ unsigned char *buf, size_t len)
+{
+ size_t i;
+ char id0, id1;
+
+ if (len == 0)
+ return 0;
+
+ /*
+ * This is set because the device reliably signals end of cycle.
+ * The core library zeroes it just before it calls each driver's
+ * packet analyzer.
+ */
+ session->cycle_end_reliable = true;
+
+ /* Length should have already been checked in packet.c, but just in case */
+ if (len < HEADER_LENGTH) {
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: Packet length %zu shorter than min length\n", len);
+ return 0;
+ }
+
+ /* we may need to dump the raw packet */
+ gpsd_log(&session->context->errout, LOG_RAW,
+ "GREIS: raw packet id '%c%c'\n", buf[0], buf[1]);
+
+ id0 = buf[0];
+ id1 = buf[1];
+ len -= HEADER_LENGTH;
+ buf += HEADER_LENGTH;
+
+ for (i = 0; i < dispatch_table_size; i++) {
+ struct dispatch_table_entry *entry = &dispatch_table[i];
+
+ if (id0 == entry->id0 && id1 == entry->id1) {
+ return entry->handler(session, buf, len);
+ }
+ }
+
+ gpsd_log(&session->context->errout, LOG_WARN,
+ "GREIS: unknown packet id '%c%c' length %zu\n", id0, id1, len);
+ return 0;
+}
+
+/**********************************************************
+ *
+ * Externally called routines below here
+ *
+ **********************************************************/
+
+/**
+ * Write data to the device with checksum.
+ * Returns number of bytes written on successful write, -1 otherwise.
+ */
+static ssize_t greis_write(struct gps_device_t *session,
+ const char *msg, size_t msglen)
+{
+ char checksum_str[3] = {0};
+ ssize_t count;
+
+ if (session->context->readonly) {
+ /* readonly mode, do not write anything */
+ return -1;
+ }
+
+ if (NULL == msg) {
+ /* We do sometimes write zero length to wake up GPS,
+ * so just test for NULL msg, not zero length message */
+ gpsd_log(&session->context->errout, LOG_ERROR,
+ "GREIS: nothing to write\n");
+ return -1;
+ }
+
+ /* Account for length + checksum marker + checksum + \r + \n + \0 */
+ if (msglen + 6 > sizeof(session->msgbuf)) {
+ gpsd_log(&session->context->errout, LOG_ERROR,
+ "GREIS: msgbuf is smaller than write length %zu\n", msglen);
+ return -1;
+ }
+
+ if (msg != NULL)
+ memcpy(&session->msgbuf[0], msg, msglen);
+
+ if (msglen == 0) {
+ /* This is a dummy write, don't give a checksum. */
+ session->msgbuf[0] = '\n';
+ session->msgbuflen = 1;
+ gpsd_log(&session->context->errout, LOG_PROG,
+ "GREIS: Dummy write\n");
+ } else {
+ unsigned char checksum;
+
+ session->msgbuflen = msglen;
+ session->msgbuf[session->msgbuflen++] = '@'; /* checksum marker */
+
+ /* calculate checksum with @, place at end, and set length to write */
+ checksum = greis_checksum((unsigned char *)session->msgbuf,
+ session->msgbuflen);
+ (void)snprintf(checksum_str, sizeof(checksum_str), "%02X", checksum);
+ session->msgbuf[session->msgbuflen++] = checksum_str[0];
+ session->msgbuf[session->msgbuflen++] = checksum_str[1];
+ session->msgbuf[session->msgbuflen++] = '\r';
+ session->msgbuf[session->msgbuflen++] = '\n';
+
+ gpsd_log(&session->context->errout, LOG_PROG,
+ "GREIS: Writing command '%.*s', checksum: %s\n",
+ (int)msglen, msg, checksum_str);
+ }
+ session->msgbuf[session->msgbuflen] = '\0';
+ count = gpsd_write(session, session->msgbuf, session->msgbuflen);
+
+ if (count != (ssize_t)session->msgbuflen)
+ return -1;
+ else
+ return count;
+}
+
+#ifdef CONTROLSEND_ENABLE
+/**
+ * Write data to the device, doing any required padding or checksumming
+ */
+static ssize_t greis_control_send(struct gps_device_t *session,
+ char *msg, size_t msglen)
+{
+ return greis_write(session, msg, msglen);
+}
+#endif /* CONTROLSEND_ENABLE */
+
+#ifdef RECONFIGURE_ENABLE
+static void greis_event_hook(struct gps_device_t *session, event_t event)
+{
+ if (session->context->readonly)
+ return;
+
+ if (event == event_wakeup) {
+ /*
+ * Code to make the device ready to communicate. Only needed if the
+ * device is in some kind of sleeping state, and only shipped to
+ * RS232C, so that gpsd won't send strings to unidentified USB devices
+ * that might not be GPSes at all.
+ */
+
+ /*
+ * Disable any existing messages, then request vendor for
+ * identification.
+ */
+ (void)greis_write(session, disable_messages,
+ sizeof(disable_messages) - 1);
+ (void)greis_write(session, get_vendor, sizeof(get_vendor) - 1);
+ } else if (event == event_identified || event == event_reactivate) {
+ /*
+ * Fires when the first full packet is recognized from a previously
+ * unidentified device OR the device is reactivated after close. The
+ * session.lexer counter is zeroed.
+ *
+ * TODO: If possible, get the software version and store it in
+ * session->subtype.
+ */
+ (void)greis_write(session, disable_messages,
+ sizeof(disable_messages) - 1);
+ (void)greis_write(session, set_update_rate_4hz,
+ sizeof(set_update_rate_4hz) - 1);
+ (void)greis_write(session, enable_messages_4hz,
+ sizeof(enable_messages_4hz) - 1);
+
+ /* Store cycle time (seconds) */
+ session->gpsdata.dev.cycle = 0.25;
+ } else if (event == event_driver_switch) {
+ /*
+ * Fires when the driver on a device is changed *after* it
+ * has been identified.
+ */
+ } else if (event == event_deactivate) {
+ /*
+ * Fires when the device is deactivated. Use this to revert
+ * whatever was done at event_identified and event_configure
+ * time.
+ */
+ (void)greis_write(session, disable_messages,
+ sizeof(disable_messages) - 1);
+ }
+}
+
+/**
+ * This is the entry point to the driver. When the packet sniffer recognizes
+ * a packet for this driver, it calls this method which passes the packet to
+ * the binary processor or the nmea processor, depending on the session type.
+ */
+static gps_mask_t greis_parse_input(struct gps_device_t *session)
+{
+ if (session->lexer.type == GREIS_PACKET) {
+ return greis_dispatch(session, session->lexer.outbuffer,
+ session->lexer.outbuflen);
+#ifdef NMEA0183_ENABLE
+ } else if (session->lexer.type == NMEA_PACKET) {
+ return nmea_parse((char *)session->lexer.outbuffer, session);
+#endif /* NMEA0183_ENABLE */
+ } else
+ return 0;
+}
+
+/**
+ * Set port operating mode, speed, parity, stopbits etc. here.
+ * Note: parity is passed as 'N'/'E'/'O', but you should program
+ * defensively and allow 0/1/2 as well.
+ */
+static bool greis_set_speed(struct gps_device_t *session,
+ speed_t speed, char parity, int stopbits)
+{
+ /* change on current port */
+ static const char set_rate[] = "set,/par/cur/term/rate,";
+ static const char set_parity[] = "set,/par/cur/term/parity,";
+ static const char set_stops[] = "set,/par/cur/term/stops,";
+ static const char parity_none[] = "N";
+ static const char parity_even[] = "even";
+ static const char parity_odd[] = "odd";
+
+ char command[BUFSIZ] = {0};
+ const char *selected_parity = NULL;
+
+ switch (parity) {
+ case 'N':
+ case 0:
+ selected_parity = parity_none;
+ break;
+ case 'E':
+ case 1:
+ selected_parity = parity_even;
+ break;
+ case 'O':
+ case 2:
+ selected_parity = parity_odd;
+ break;
+ default:
+ return false;
+ }
+
+ (void)snprintf(command, sizeof(command) - 1, "%s%u && %s%s && %s%d",
+ set_rate, speed, set_parity, selected_parity,
+ set_stops, stopbits);
+ return (bool)greis_write(session, command, strlen(command));
+}
+
+#if 0
+/**
+ * TODO: Switch between NMEA and binary mode
+ */
+static void greis_set_mode(struct gps_device_t *session, int mode)
+{
+ if (mode == MODE_NMEA) {
+ /* send a mode switch control string */
+ } else {
+ /* send a mode switch control string */
+ session->back_to_nmea = false;
+ }
+}
+#endif
+
+#endif /* RECONFIGURE_ENABLE */
+
+#ifdef TIMEHINT_ENABLE
+#if 0 /* TODO */
+static double greis_time_offset(struct gps_device_t *session)
+{
+ /*
+ * If NTP notification is enabled, the GPS will occasionally NTP
+ * its notion of the time. This will lag behind actual time by
+ * some amount which has to be determined by observation vs. (say
+ * WWVB radio broadcasts) and, furthermore, may differ by baud
+ * rate. This method is for computing the NTP fudge factor. If
+ * it's absent, an offset of 0.0 will be assumed, effectively
+ * falling back on what's in ntp.conf. When it returns NAN,
+ * nothing will be sent to NTP.
+ */
+ return MAGIC_CONSTANT;
+}
+#endif
+#endif /* TIMEHINT_ENABLE */
+
+/* This is everything we export */
+/* *INDENT-OFF* */
+const struct gps_type_t driver_greis = {
+ /* Full name of type */
+ .type_name = "GREIS",
+ /* Associated lexer packet type */
+ .packet_type = GREIS_PACKET,
+ /* Driver type flags */
+ .flags = DRIVER_STICKY,
+ /* Response string that identifies device (not active) */
+ .trigger = NULL,
+ /* Number of satellite channels supported by the device */
+ .channels = 128,
+ /* Startup-time device detector */
+ .probe_detect = NULL,
+ /* Packet getter (using default routine) */
+ .get_packet = generic_get,
+ /* Parse message packets */
+ .parse_packet = greis_parse_input,
+ /* non-perturbing initial query (e.g. for version) */
+ .init_query = NULL,
+ /* fire on various lifetime events */
+ .event_hook = greis_event_hook,
+#ifdef RECONFIGURE_ENABLE
+ /* Speed (baudrate) switch */
+ .speed_switcher = greis_set_speed,
+#if 0 /* TODO */
+ /* Switch to NMEA mode */
+ .mode_switcher = greis_set_mode,
+#endif
+ /* Message delivery rate switcher (not active) */
+ .rate_switcher = NULL,
+ /* Minimum cycle time of the device.
+ * Default is 1/100, but this is tunable using /par/raw/msint . */
+ .min_cycle = 0.01,
+#endif /* RECONFIGURE_ENABLE */
+#ifdef CONTROLSEND_ENABLE
+ /* Control string sender - should provide checksum and headers/trailer */
+ .control_send = greis_control_send,
+#endif /* CONTROLSEND_ENABLE */
+#ifdef TIMEHINT_ENABLE
+#if 0 /* TODO */
+ .time_offset = greis_time_offset,
+#endif
+#endif /* TIMEHINT_ENABLE */
+/* *INDENT-ON* */
+};
+#endif /* defined(GREIS_ENABLE) && defined(BINARY_ENABLE) */
diff --git a/driver_greis.h b/driver_greis.h
new file mode 100644
index 00000000..ccd73e58
--- /dev/null
+++ b/driver_greis.h
@@ -0,0 +1,6 @@
+#ifndef _DRIVER_GREIS_H_
+#define _DRIVER_GREIS_H_
+
+unsigned char greis_checksum(const unsigned char *src, int count);
+
+#endif /* _DRIVER_GREIS_H_ */
diff --git a/driver_greis_checksum.c b/driver_greis_checksum.c
new file mode 100644
index 00000000..e7f69518
--- /dev/null
+++ b/driver_greis_checksum.c
@@ -0,0 +1,24 @@
+/*
+ * Checksum for the GNSS Receiver External Interface Specification (GREIS).
+ *
+ * This file is Copyright (c) 2017 Virgin Orbit
+ * SPDX-License-Identifier: BSD-2-clause
+ */
+
+#include <limits.h>
+
+#include "driver_greis.h"
+
+static inline unsigned char greis_rotate_left(unsigned char val)
+{
+ /* left circular rotation by two bits */
+ return (val << 2) | (val >> (CHAR_BIT - 2));
+}
+
+unsigned char greis_checksum(const unsigned char *src, int count)
+{
+ unsigned char res = 0;
+ while (count--)
+ res = greis_rotate_left(res) ^ *src++;
+ return greis_rotate_left(res);
+}
diff --git a/drivers.c b/drivers.c
index eda1fd61..85fbad91 100644
--- a/drivers.c
+++ b/drivers.c
@@ -242,6 +242,15 @@ static void nmea_event_hook(struct gps_device_t *session, event_t event)
(void)nmea_send(session, "$PMTK605");
break;
#endif /* MTK3301_ENABLE */
+#ifdef GREIS_ENABLE
+ case 9:
+ /* probe for Javad GREIS -- expect reply with JAVAD */
+ gpsd_log(&session->context->errout, LOG_PROG,
+ "=> Probing for Javad GREIS\n");
+ /* TODO: confirm this actually gets JAVAD response */
+ (void)nmea_send(session, "print,/par/rcv/vendor");
+ break;
+#endif /* GREIS_ENABLE */
default:
break;
}
@@ -1741,6 +1750,7 @@ extern const struct gps_type_t driver_evermore;
extern const struct gps_type_t driver_garmin_ser_binary;
extern const struct gps_type_t driver_garmin_usb_binary;
extern const struct gps_type_t driver_geostar;
+extern const struct gps_type_t driver_greis;
extern const struct gps_type_t driver_italk;
extern const struct gps_type_t driver_navcom;
extern const struct gps_type_t driver_nmea2000;
@@ -1803,6 +1813,9 @@ static const struct gps_type_t *gpsd_driver_array[] = {
#ifdef GEOSTAR_ENABLE
&driver_geostar,
#endif /* GEOSTAR_ENABLE */
+#ifdef GREIS_ENABLE
+ &driver_greis,
+#endif /* GREIS_ENABLE */
#ifdef ITRAX_ENABLE
&driver_italk,
#endif /* ITRAX_ENABLE */
diff --git a/gpsd.h b/gpsd.h
index e2d4fad5..144cafee 100644
--- a/gpsd.h
+++ b/gpsd.h
@@ -70,9 +70,23 @@ extern "C" {
#ifdef EARTHMATE_ENABLE
#define ZODIAC_ENABLE
#endif
-#if defined(ZODIAC_ENABLE) || defined(SIRF_ENABLE) || defined(GARMIN_ENABLE) || defined(TSIP_ENABLE) || defined(EVERMORE_ENABLE) || defined(ITRAX_ENABLE) || defined(UBLOX_ENABLE) || defined(SUPERSTAR2_ENABLE) || defined(ONCORE_ENABLE) || defined(GEOSTAR_ENABLE) || defined(NAVCOM_ENABLE) || defined(NMEA2000_ENABLE)
+
+#if defined(EVERMORE_ENABLE) || \
+ defined(GARMIN_ENABLE) || \
+ defined(GEOSTAR_ENABLE) || \
+ defined(GREIS_ENABLE) || \
+ defined(ITRAX_ENABLE) || \
+ defined(NAVCOM_ENABLE) || \
+ defined(NMEA2000_ENABLE) || \
+ defined(ONCORE_ENABLE) || \
+ defined(SIRF_ENABLE) || \
+ defined(SUPERSTAR2_ENABLE) || \
+ defined(TSIP_ENABLE) || \
+ defined(UBLOX_ENABLE) || \
+ defined(ZODIAC_ENABLE)
#define BINARY_ENABLE
#endif
+
#if defined(TRIPMATE_ENABLE) || defined(BINARY_ENABLE)
#define NON_NMEA0183_ENABLE
#endif
@@ -163,12 +177,13 @@ struct gps_lexer_t {
#define ONCORE_PACKET 13
#define GEOSTAR_PACKET 14
#define NMEA2000_PACKET 15
-#define MAX_GPSPACKET_TYPE 15 /* increment this as necessary */
-#define RTCM2_PACKET 16
-#define RTCM3_PACKET 17
-#define JSON_PACKET 18
-#define PACKET_TYPES 19 /* increment this as necessary */
-#define SKY_PACKET 20
+#define GREIS_PACKET 16
+#define MAX_GPSPACKET_TYPE 16 /* increment this as necessary */
+#define RTCM2_PACKET 17
+#define RTCM3_PACKET 18
+#define JSON_PACKET 19
+#define PACKET_TYPES 20 /* increment this as necessary */
+#define SKY_PACKET 21
#define TEXTUAL_PACKET_TYPE(n) ((((n)>=NMEA_PACKET) && ((n)<=MAX_TEXTUAL_TYPE)) || (n)==JSON_PACKET)
#define GPS_PACKET_TYPE(n) (((n)>=NMEA_PACKET) && ((n)<=MAX_GPSPACKET_TYPE))
#define LOSSLESS_PACKET_TYPE(n) (((n)>=RTCM2_PACKET) && ((n)<=RTCM3_PACKET))
@@ -582,6 +597,17 @@ struct gps_device_t {
unsigned int physical_port;
} geostar;
#endif /* GEOSTAR_ENABLE */
+#ifdef GREIS_ENABLE
+ struct {
+ uint32_t rt_tod; /* RT message time of day (modulo 1 day) */
+ bool seen_rt; /* true if seen RT message */
+ bool seen_uo; /* true if seen UO message */
+ bool seen_si; /* true if seen SI message */
+ bool seen_az; /* true if seen AZ message */
+ bool seen_ec; /* true if seen EC message */
+ bool seen_el; /* true if seen EL message */
+ } greis;
+#endif /* GREIS_ENABLE */
#ifdef SIRF_ENABLE
struct {
unsigned int need_ack; /* if NZ we're awaiting ACK */
diff --git a/packet.c b/packet.c
index 1df0070a..4c6fcc4e 100644
--- a/packet.c
+++ b/packet.c
@@ -38,6 +38,7 @@ PERMISSIONS
#include <unistd.h>
#include "bits.h"
+#include "driver_greis.h"
#include "gpsd.h"
#include "crc24q.h"
#include "strfuncs.h"
@@ -196,6 +197,23 @@ static size_t oncore_payload_cksum_length(unsigned char id1, unsigned char id2)
}
#endif /* ONCORE_ENABLE */
+#ifdef GREIS_ENABLE
+
+static unsigned long greis_hex2bin(char c)
+/* Convert hex char to binary form. Requires that c be a hex char. */
+{
+ if ((c >= 'a') && (c <= 'f'))
+ c = c + 10 - 'a';
+ else if ((c >= 'A') && (c <= 'F'))
+ c = c + 10 - 'A';
+ else if ((c >= '0') && (c <= '9'))
+ c -= '0';
+
+ return c;
+}
+
+#endif /* GREIS_ENABLE */
+
static bool character_pushback(struct gps_lexer_t *lexer, unsigned int newstate)
/* push back the last character grabbed, setting a specified state */
{
@@ -215,6 +233,21 @@ static bool character_pushback(struct gps_lexer_t *lexer, unsigned int newstate)
return false;
}
+static void character_discard(struct gps_lexer_t *lexer)
+/* shift the input buffer to discard one character and reread data */
+{
+ memmove(lexer->inbuffer, lexer->inbuffer + 1, (size_t)-- lexer->inbuflen);
+ lexer->inbufptr = lexer->inbuffer;
+ if (lexer->errout.debug >= LOG_RAW+1) {
+ char scratchbuf[MAX_PACKET_LENGTH*4+1];
+ gpsd_log(&lexer->errout, LOG_RAW + 1,
+ "Character discarded, buffer %zu chars = %s\n",
+ lexer->inbuflen,
+ gpsd_packetdump(scratchbuf, sizeof(scratchbuf),
+ (char *)lexer->inbuffer, lexer->inbuflen));
+ }
+}
+
static bool nextstate(struct gps_lexer_t *lexer, unsigned char c)
{
static int n = 0;
@@ -329,6 +362,17 @@ static bool nextstate(struct gps_lexer_t *lexer, unsigned char c)
break;
}
#endif /* GEOSTAR_ENABLE */
+#ifdef GREIS_ENABLE
+ if (c == 'R') {
+ lexer->state = GREIS_REPLY_1;
+ break;
+ }
+ /* Not the only possibility, but it is a distinctive cycle starter. */
+ if (c == '~') {
+ lexer->state = GREIS_ID_1;
+ break;
+ }
+#endif /* GREIS_ENABLE */
#ifdef RTCM104V2_ENABLE
if ((isgpsstat = rtcm2_decode(lexer, c)) == ISGPS_SYNC) {
lexer->state = RTCM2_SYNC_STATE;
@@ -1360,6 +1404,57 @@ static bool nextstate(struct gps_lexer_t *lexer, unsigned char c)
return character_pushback(lexer, GROUND_STATE);
break;
#endif /* GEOSTAR_ENABLE */
+#ifdef GREIS_ENABLE
+ case GREIS_EXPECTED:
+ case GREIS_RECOGNIZED:
+ if (!isascii(c)) {
+ return character_pushback(lexer, GROUND_STATE);
+ } else if (c == '#') {
+ /* Probably a comment used by the testsuite */
+ lexer->state = COMMENT_BODY;
+ } else if (c == '\r' || c == '\n') {
+ /* Arbitrary CR/LF allowed here, so continue to expect GREIS */
+ lexer->state = GREIS_EXPECTED;
+ character_discard(lexer);
+ } else {
+ lexer->state = GREIS_ID_1;
+ }
+ break;
+ case GREIS_REPLY_1:
+ if (c != 'E')
+ return character_pushback(lexer, GROUND_STATE);
+ lexer->state = GREIS_REPLY_2;
+ break;
+ case GREIS_ID_1:
+ if (!isascii(c))
+ return character_pushback(lexer, GROUND_STATE);
+ lexer->state = GREIS_ID_2;
+ break;
+ case GREIS_REPLY_2:
+ case GREIS_ID_2:
+ if (!isxdigit(c))
+ return character_pushback(lexer, GROUND_STATE);
+ lexer->length = greis_hex2bin(c) << 8;
+ lexer->state = GREIS_LENGTH_1;
+ break;
+ case GREIS_LENGTH_1:
+ if (!isxdigit(c))
+ return character_pushback(lexer, GROUND_STATE);
+ lexer->length += greis_hex2bin(c) << 4;
+ lexer->state = GREIS_LENGTH_2;
+ break;
+ case GREIS_LENGTH_2:
+ if (!isxdigit(c))
+ return character_pushback(lexer, GROUND_STATE);
+ lexer->length += greis_hex2bin(c);
+ lexer->state = GREIS_PAYLOAD;
+ break;
+ case GREIS_PAYLOAD:
+ if (--lexer->length == 0)
+ lexer->state = GREIS_RECOGNIZED;
+ /* else stay in payload state */
+ break;
+#endif /* GREIS_ENABLE */
#ifdef TSIP_ENABLE
case TSIP_LEADER:
/* unused case */
@@ -1619,21 +1714,6 @@ static void packet_unstash(struct gps_lexer_t *lexer)
}
#endif /* STASH_ENABLE */
-static void character_discard(struct gps_lexer_t *lexer)
-/* shift the input buffer to discard one character and reread data */
-{
- memmove(lexer->inbuffer, lexer->inbuffer + 1, (size_t)-- lexer->inbuflen);
- lexer->inbufptr = lexer->inbuffer;
- if (lexer->errout.debug >= LOG_RAW+1) {
- char scratchbuf[MAX_PACKET_LENGTH*4+1];
- gpsd_log(&lexer->errout, LOG_RAW + 1,
- "Character discarded, buffer %zu chars = %s\n",
- lexer->inbuflen,
- gpsd_packetdump(scratchbuf, sizeof(scratchbuf),
- (char *)lexer->inbuffer, lexer->inbuflen));
- }
-}
-
/* get 0-origin big-endian words relative to start of packet buffer */
#define getword(i) (short)(lexer->inbuffer[2*(i)] | (lexer->inbuffer[2*(i)+1] << 8))
@@ -2298,6 +2378,49 @@ void packet_parse(struct gps_lexer_t *lexer)
break;
}
#endif /* GEOSTAR_ENABLE */
+#ifdef GREIS_ENABLE
+ else if (lexer->state == GREIS_RECOGNIZED) {
+ int len = lexer->inbufptr - lexer->inbuffer;
+
+ if (lexer->inbuffer[0] == 'R' && lexer->inbuffer[1] == 'E') {
+ /* Replies don't have checksum */
+ gpsd_log(&lexer->errout, LOG_IO,
+ "Accept GREIS reply packet len %d\n", len);
+ packet_accept(lexer, GREIS_PACKET);
+ } else if (lexer->inbuffer[0] == 'E' && lexer->inbuffer[1] == 'R') {
+ /* Error messages don't have checksum */
+ gpsd_log(&lexer->errout, LOG_IO,
+ "Accept GREIS error packet len %d\n", len);
+ packet_accept(lexer, GREIS_PACKET);
+ } else {
+ unsigned char expected_cs = lexer->inbuffer[len - 1];
+ unsigned char cs = greis_checksum(lexer->inbuffer, len - 1);
+
+ if (cs == expected_cs) {
+ gpsd_log(&lexer->errout, LOG_IO,
+ "Accept GREIS packet type '%c%c' len %d\n",
+ lexer->inbuffer[0], lexer->inbuffer[1], len);
+ packet_accept(lexer, GREIS_PACKET);
+ } else {
+ /*
+ * Print hex instead of raw characters, since they might be
+ * unprintable. If \0, it will even mess up the log output.
+ */
+ gpsd_log(&lexer->errout, LOG_IO,
+ "REJECT GREIS len %d."
+ " Bad checksum %#02x, expecting %#02x."
+ " Packet type in hex: 0x%02x%02x",
+ len, cs, expected_cs, lexer->inbuffer[0],
+ lexer->inbuffer[1]);
+ packet_accept(lexer, BAD_PACKET);
+ /* got this far, fair to expect we will get more GREIS */
+ lexer->state = GREIS_EXPECTED;
+ }
+ }
+ packet_discard(lexer);
+ break;
+ }
+#endif /* GREIS_ENABLE */
#ifdef RTCM104V2_ENABLE
else if (lexer->state == RTCM2_RECOGNIZED) {
/*
diff --git a/packet_states.h b/packet_states.h
index 2f54d5a8..4c3a3208 100644
--- a/packet_states.h
+++ b/packet_states.h
@@ -183,6 +183,18 @@
GEOSTAR_RECOGNIZED, /* this is also GEOSTAR_CHECKSUM_D */
#endif
+#ifdef GREIS_ENABLE
+ GREIS_EXPECTED, /* expecting GREIS packet */
+ GREIS_REPLY_1, /* saw first byte of a reply */
+ GREIS_REPLY_2, /* saw second byte of a reply */
+ GREIS_ID_1, /* saw first byte of ID */
+ GREIS_ID_2, /* saw second byte of ID */
+ GREIS_LENGTH_1, /* saw first length byte */
+ GREIS_LENGTH_2, /* saw second length byte */
+ GREIS_PAYLOAD, /* we're in a GREIS payload */
+ GREIS_RECOGNIZED, /* found end of the GREIS packet */
+#endif
+
/*
* Packet formats without checksums start here. We list them last so
* that if a format with a conflicting structure *and* a checksum can
diff --git a/test/daemon/greis-binary.log b/test/daemon/greis-binary.log
new file mode 100644
index 00000000..434c10f9
--- /dev/null
+++ b/test/daemon/greis-binary.log
Binary files differ
diff --git a/test/daemon/greis-binary.log.chk b/test/daemon/greis-binary.log.chk
new file mode 100644
index 00000000..e3869335
--- /dev/null
+++ b/test/daemon/greis-binary.log.chk
@@ -0,0 +1,396 @@
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033459,0.78,M,0.78,M,1.87,M*38
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:34:59.500Z","ept":0.005,"lat":33.824362434,"lon":-118.146965011,"alt":18.978,"epx":0.778,"epy":0.778,"epv":1.870,"track":246.7599,"speed":0.008,"climb":0.011,"eps":0.02,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033459,0.78,M,0.78,M,1.87,M*38
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,39,81,12,052,45*74
+$GPGSV,5,4,20,135,48,206,52,72,58,018,50,28,57,252,46,11,20,120,40*4C
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:34:59.750Z","ept":0.005,"lat":33.824362427,"lon":-118.146964990,"alt":18.979,"epx":0.779,"epy":0.779,"epv":1.872,"track":322.2664,"speed":0.004,"climb":-0.003,"eps":0.01,"epc":89.11,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.00,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":50,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033500,0.78,M,0.78,M,1.87,M*35
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:00.000Z","ept":0.005,"lat":33.824362427,"lon":-118.146964983,"alt":18.980,"epx":0.779,"epy":0.779,"epv":1.874,"track":70.2452,"speed":0.015,"climb":-0.001,"eps":0.02,"epc":89.12,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033500,0.78,M,0.78,M,1.88,M*3A
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,50,28,57,252,46,11,20,120,40*4C
+$GPGSV,5,5,20,30,58,332,47,77,32,304,45,17,08,190,45,131,51,178,48*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:00.250Z","ept":0.005,"lat":33.824362425,"lon":-118.146964989,"alt":18.978,"epx":0.781,"epy":0.781,"epv":1.878,"track":225.1132,"speed":0.006,"climb":-0.005,"eps":0.01,"epc":89.13,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":-0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":50,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":47,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033500,0.78,M,0.78,M,1.88,M*3A
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,50,28,57,252,46,11,20,120,40*4C
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:00.500Z","ept":0.005,"lat":33.824362424,"lon":-118.146964953,"alt":18.980,"epx":0.781,"epy":0.781,"epv":1.877,"track":340.9262,"speed":0.002,"climb":-0.001,"eps":0.02,"epc":89.14,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":50,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033500,0.78,M,0.78,M,1.88,M*3A
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,47,77,32,304,45,17,08,190,45,131,51,178,48*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:00.750Z","ept":0.005,"lat":33.824362415,"lon":-118.146964959,"alt":18.984,"epx":0.781,"epy":0.781,"epv":1.879,"track":102.4965,"speed":0.001,"climb":0.029,"eps":0.02,"epc":89.14,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":0.02,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":47,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033501,0.78,M,0.78,M,1.88,M*3B
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:01.000Z","ept":0.005,"lat":33.824362409,"lon":-118.146964952,"alt":18.982,"epx":0.783,"epy":0.783,"epv":1.883,"track":208.0892,"speed":0.003,"climb":0.010,"eps":0.02,"epc":89.15,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033501,0.78,M,0.78,M,1.88,M*3B
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,47,77,32,304,45,17,08,190,45,131,51,178,48*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:01.250Z","ept":0.005,"lat":33.824362415,"lon":-118.146964965,"alt":18.978,"epx":0.783,"epy":0.783,"epv":1.884,"track":146.6911,"speed":0.003,"climb":-0.001,"eps":0.02,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":0.00,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":47,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033501,0.78,M,0.78,M,1.88,M*3B
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,47,77,32,304,45,17,08,190,46,131,51,178,48*42
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:01.500Z","ept":0.005,"lat":33.824362417,"lon":-118.146964953,"alt":18.981,"epx":0.783,"epy":0.783,"epv":1.882,"track":303.1285,"speed":0.005,"climb":-0.002,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":47,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033501,0.78,M,0.78,M,1.88,M*3B
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,39,81,12,052,45*74
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:01.750Z","ept":0.005,"lat":33.824362413,"lon":-118.146964955,"alt":18.981,"epx":0.783,"epy":0.783,"epv":1.883,"track":8.4332,"speed":0.004,"climb":-0.009,"eps":0.02,"epc":89.16,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033502,0.78,M,0.78,M,1.88,M*38
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:02.000Z","ept":0.005,"lat":33.824362409,"lon":-118.146964966,"alt":18.981,"epx":0.783,"epy":0.783,"epv":1.884,"track":275.6307,"speed":0.009,"climb":0.007,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033502,0.78,M,0.78,M,1.88,M*38
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,39,81,12,052,45*75
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:02.250Z","ept":0.005,"lat":33.824362405,"lon":-118.146964960,"alt":18.978,"epx":0.783,"epy":0.783,"epv":1.883,"track":217.0899,"speed":0.005,"climb":0.004,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033502,0.78,M,0.78,M,1.88,M*38
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:02.500Z","ept":0.005,"lat":33.824362408,"lon":-118.146964945,"alt":18.976,"epx":0.783,"epy":0.783,"epv":1.882,"track":24.9792,"speed":0.002,"climb":0.003,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":0.00,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033502,0.78,M,0.78,M,1.88,M*38
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:02.750Z","ept":0.005,"lat":33.824362407,"lon":-118.146964962,"alt":18.976,"epx":0.783,"epy":0.783,"epv":1.882,"track":204.9180,"speed":0.006,"climb":-0.001,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033503,0.78,M,0.78,M,1.88,M*39
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:03.000Z","ept":0.005,"lat":33.824362414,"lon":-118.146964973,"alt":18.977,"epx":0.782,"epy":0.782,"epv":1.881,"track":281.1698,"speed":0.009,"climb":0.005,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.38,"ecefvx":-0.01,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033503,0.78,M,0.78,M,1.88,M*39
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,41*45
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:03.250Z","ept":0.005,"lat":33.824362418,"lon":-118.146964970,"alt":18.974,"epx":0.783,"epy":0.783,"epv":1.883,"track":64.3733,"speed":0.006,"climb":-0.000,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":41,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033503,0.78,M,0.78,M,1.88,M*39
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,46,23,16,150,46*4F
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:03.500Z","ept":0.005,"lat":33.824362400,"lon":-118.146964956,"alt":18.976,"epx":0.783,"epy":0.783,"epv":1.882,"track":302.5924,"speed":0.009,"climb":-0.006,"eps":0.02,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":46,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033503,0.78,M,0.78,M,1.88,M*39
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:03.750Z","ept":0.005,"lat":33.824362393,"lon":-118.146964954,"alt":18.975,"epx":0.783,"epy":0.783,"epv":1.883,"track":228.6357,"speed":0.007,"climb":0.005,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033504,0.78,M,0.78,M,1.88,M*3E
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:04.000Z","ept":0.005,"lat":33.824362385,"lon":-118.146964944,"alt":18.975,"epx":0.783,"epy":0.783,"epv":1.884,"track":261.6930,"speed":0.006,"climb":0.012,"eps":0.01,"epc":89.17,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033504,0.78,M,0.78,M,1.88,M*3E
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:04.250Z","ept":0.005,"lat":33.824362378,"lon":-118.146964949,"alt":18.972,"epx":0.784,"epy":0.784,"epv":1.885,"track":120.1242,"speed":0.006,"climb":0.000,"eps":0.01,"epc":89.18,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.00,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033504,0.78,M,0.78,M,1.89,M*3F
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:04.500Z","ept":0.005,"lat":33.824362373,"lon":-118.146964937,"alt":18.975,"epx":0.785,"epy":0.785,"epv":1.887,"track":268.7549,"speed":0.003,"climb":0.005,"eps":0.02,"epc":89.18,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033504,0.78,M,0.78,M,1.89,M*3F
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,39,81,12,052,45*74
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:04.750Z","ept":0.005,"lat":33.824362366,"lon":-118.146964912,"alt":18.975,"epx":0.784,"epy":0.784,"epv":1.886,"track":271.8614,"speed":0.002,"climb":-0.011,"eps":0.01,"epc":89.19,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.00,"ecefvy":0.01,"ecefvz":-0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033505,0.78,M,0.78,M,1.88,M*3F
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,50,28,57,252,46,11,20,120,40*4C
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:05.000Z","ept":0.005,"lat":33.824362366,"lon":-118.146964919,"alt":18.974,"epx":0.784,"epy":0.784,"epv":1.885,"track":183.0000,"speed":0.003,"climb":-0.006,"eps":0.01,"epc":89.19,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":-0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":50,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033505,0.78,M,0.78,M,1.89,M*3E
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,48*4E
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:05.250Z","ept":0.005,"lat":33.824362365,"lon":-118.146964915,"alt":18.975,"epx":0.784,"epy":0.784,"epv":1.886,"track":47.3081,"speed":0.010,"climb":-0.009,"eps":0.01,"epc":89.18,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033505,0.78,M,0.78,M,1.89,M*3E
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:05.500Z","ept":0.005,"lat":33.824362376,"lon":-118.146964933,"alt":18.974,"epx":0.784,"epy":0.784,"epv":1.887,"track":262.2943,"speed":0.011,"climb":0.012,"eps":0.02,"epc":89.19,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033505,0.78,M,0.78,M,1.89,M*3E
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:05.750Z","ept":0.005,"lat":33.824362378,"lon":-118.146964898,"alt":18.973,"epx":0.784,"epy":0.784,"epv":1.885,"track":52.9844,"speed":0.004,"climb":0.008,"eps":0.02,"epc":89.19,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033506,0.78,M,0.78,M,1.89,M*3D
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:06.000Z","ept":0.005,"lat":33.824362378,"lon":-118.146964887,"alt":18.974,"epx":0.785,"epy":0.785,"epv":1.887,"track":68.5289,"speed":0.014,"climb":-0.017,"eps":0.02,"epc":89.19,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.02,"ecefvy":0.01,"ecefvz":-0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033506,0.78,M,0.78,M,1.89,M*3D
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:06.250Z","ept":0.005,"lat":33.824362377,"lon":-118.146964924,"alt":18.974,"epx":0.785,"epy":0.785,"epv":1.888,"track":222.7918,"speed":0.006,"climb":0.004,"eps":0.02,"epc":89.20,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033506,0.79,M,0.79,M,1.89,M*3D
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:06.500Z","ept":0.005,"lat":33.824362379,"lon":-118.146964925,"alt":18.975,"epx":0.785,"epy":0.785,"epv":1.889,"track":219.9662,"speed":0.006,"climb":0.013,"eps":0.02,"epc":89.20,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033506,0.78,M,0.78,M,1.89,M*3D
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,46,78,53,234,55,100,43,286,48,27,09,038,42*42
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:06.750Z","ept":0.005,"lat":33.824362386,"lon":-118.146964934,"alt":18.973,"epx":0.784,"epy":0.784,"epv":1.885,"track":321.6895,"speed":0.002,"climb":-0.006,"eps":0.02,"epc":89.21,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.00,"ecefvy":0.01,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":46,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033507,0.78,M,0.78,M,1.89,M*3C
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:07.000Z","ept":0.005,"lat":33.824362400,"lon":-118.146964929,"alt":18.975,"epx":0.785,"epy":0.785,"epv":1.887,"track":50.2613,"speed":0.006,"climb":-0.001,"eps":0.02,"epc":89.19,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.01,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033507,0.79,M,0.79,M,1.89,M*3C
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,49,13,06,320,40,81,12,052,45*7A
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:07.250Z","ept":0.005,"lat":33.824362400,"lon":-118.146964946,"alt":18.976,"epx":0.785,"epy":0.785,"epv":1.888,"track":213.3380,"speed":0.007,"climb":0.014,"eps":0.02,"epc":89.20,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":49,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033507,0.79,M,0.79,M,1.89,M*3C
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,45*4D
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:07.500Z","ept":0.005,"lat":33.824362398,"lon":-118.146964950,"alt":18.973,"epx":0.785,"epy":0.785,"epv":1.889,"track":331.4661,"speed":0.006,"climb":0.003,"eps":0.01,"epc":89.20,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":45,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033507,0.78,M,0.78,M,1.89,M*3C
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,45*4D
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:07.750Z","ept":0.005,"lat":33.824362403,"lon":-118.146964948,"alt":18.974,"epx":0.785,"epy":0.785,"epv":1.887,"track":315.4742,"speed":0.004,"climb":-0.000,"eps":0.02,"epc":89.21,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":45,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033508,0.78,M,0.78,M,1.89,M*33
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:08.000Z","ept":0.005,"lat":33.824362401,"lon":-118.146964954,"alt":18.972,"epx":0.785,"epy":0.785,"epv":1.887,"track":205.6836,"speed":0.006,"climb":-0.003,"eps":0.01,"epc":89.20,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":-0.01,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033508,0.79,M,0.79,M,1.89,M*33
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,47*42
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:08.250Z","ept":0.005,"lat":33.824362409,"lon":-118.146964952,"alt":18.973,"epx":0.786,"epy":0.786,"epv":1.891,"track":352.4279,"speed":0.002,"climb":0.001,"eps":0.02,"epc":89.20,"ecefx":-2502136.44,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.90,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033508,0.79,M,0.79,M,1.89,M*33
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,45*4D
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,39,81,12,052,45*75
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:08.500Z","ept":0.005,"lat":33.824362410,"lon":-118.146964942,"alt":18.969,"epx":0.786,"epy":0.786,"epv":1.890,"track":12.1304,"speed":0.004,"climb":-0.004,"eps":0.02,"epc":89.22,"ecefx":-2502136.43,"ecefy":-4676854.47,"ecefz":3530271.37,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":45,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033508,0.79,M,0.79,M,1.89,M*33
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,45*4D
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,47*42
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:08.750Z","ept":0.005,"lat":33.824362419,"lon":-118.146964949,"alt":18.971,"epx":0.785,"epy":0.785,"epv":1.889,"track":328.4066,"speed":0.005,"climb":-0.013,"eps":0.01,"epc":89.21,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":0.00,"ecefvy":0.01,"ecefvz":-0.00,"ecefpAcc":0.89,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":45,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033509,0.79,M,0.79,M,1.89,M*32
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,39,81,12,052,45*75
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,47*42
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:09.000Z","ept":0.005,"lat":33.824362406,"lon":-118.146964935,"alt":18.970,"epx":0.786,"epy":0.786,"epv":1.892,"track":237.3799,"speed":0.011,"climb":-0.002,"eps":0.02,"epc":89.21,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":0.00,"ecefvz":-0.01,"ecefpAcc":0.90,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033509,0.79,M,0.79,M,1.89,M*32
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,39,81,12,052,45*75
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,47*42
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:09.250Z","ept":0.005,"lat":33.824362422,"lon":-118.146964927,"alt":18.970,"epx":0.787,"epy":0.787,"epv":1.893,"track":151.7353,"speed":0.004,"climb":0.005,"eps":0.01,"epc":89.22,"ecefx":-2502136.43,"ecefy":-4676854.48,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":0.90,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033509,0.79,M,0.79,M,1.89,M*32
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,46*4E
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,39,81,12,052,46*76
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:09.500Z","ept":0.005,"lat":33.824362431,"lon":-118.146964921,"alt":18.968,"epx":0.787,"epy":0.787,"epv":1.894,"track":79.9734,"speed":0.006,"climb":-0.004,"eps":0.02,"epc":89.23,"ecefx":-2502136.43,"ecefy":-4676854.47,"ecefz":3530271.37,"ecefvx":0.01,"ecefvy":0.00,"ecefvz":-0.00,"ecefpAcc":0.90,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":46,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":46,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033509,0.79,M,0.79,M,1.90,M*3A
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,45*4D
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,40,81,12,052,45*7B
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,45,11,20,120,40*47
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:09.750Z","ept":0.005,"lat":33.824362428,"lon":-118.146964920,"alt":18.968,"epx":0.788,"epy":0.788,"epv":1.896,"track":176.2835,"speed":0.003,"climb":0.013,"eps":0.02,"epc":89.23,"ecefx":-2502136.43,"ecefy":-4676854.47,"ecefz":3530271.37,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":0.90,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":45,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":40,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":45,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033510,0.79,M,0.79,M,1.89,M*3A
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,45*4D
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,39,81,12,052,45*75
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,46,11,20,120,40*44
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,45,131,51,178,47*41
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:10.000Z","ept":0.005,"lat":33.824362427,"lon":-118.146964912,"alt":18.969,"epx":0.787,"epy":0.787,"epv":1.893,"track":178.1227,"speed":0.005,"climb":0.004,"eps":0.01,"epc":89.24,"ecefx":-2502136.43,"ecefy":-4676854.47,"ecefz":3530271.37,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":0.90,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":45,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":46,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":45,"used":true},{"PRN":131,"el":51,"az":178,"ss":47,"used":false}]}
+$GPGSA,A,3,73,8,23,7,78,100,27,5,9,13,81,,1.1,0.6,0.9*0B
+$GPGBS,033510,0.79,M,0.79,M,1.89,M*3A
+$GPGSV,5,1,20,138,49,160,47,73,23,176,47,08,38,062,47,23,16,150,45*4D
+$GPGSV,5,2,20,07,63,036,47,78,53,234,55,100,43,286,48,27,09,038,42*43
+$GPGSV,5,3,20,05,16,288,50,09,48,160,48,13,06,320,39,81,12,052,45*75
+$GPGSV,5,4,20,135,48,206,52,72,58,018,49,28,57,252,45,11,20,120,40*47
+$GPGSV,5,5,20,30,58,332,48,77,32,304,45,17,08,190,46,131,51,178,48*4D
+{"class":"TPV","mode":3,"time":"2017-12-16T03:35:10.250Z","ept":0.005,"lat":33.824362426,"lon":-118.146964903,"alt":18.967,"epx":0.788,"epy":0.788,"epv":1.895,"track":138.6290,"speed":0.003,"climb":-0.017,"eps":0.01,"epc":89.23,"ecefx":-2502136.43,"ecefy":-4676854.47,"ecefz":3530271.37,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":-0.01,"ecefpAcc":0.90,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.44,"ydop":0.41,"vdop":0.89,"tdop":0.52,"hdop":0.61,"gdop":1.18,"pdop":1.08,"satellites":[{"PRN":138,"el":49,"az":160,"ss":47,"used":false},{"PRN":73,"el":23,"az":176,"ss":47,"used":true},{"PRN":8,"el":38,"az":62,"ss":47,"used":true},{"PRN":23,"el":16,"az":150,"ss":45,"used":true},{"PRN":7,"el":63,"az":36,"ss":47,"used":true},{"PRN":78,"el":53,"az":234,"ss":55,"used":true},{"PRN":100,"el":43,"az":286,"ss":48,"used":true},{"PRN":27,"el":9,"az":38,"ss":42,"used":true},{"PRN":5,"el":16,"az":288,"ss":50,"used":true},{"PRN":9,"el":48,"az":160,"ss":48,"used":true},{"PRN":13,"el":6,"az":320,"ss":39,"used":true},{"PRN":81,"el":12,"az":52,"ss":45,"used":true},{"PRN":135,"el":48,"az":206,"ss":52,"used":false},{"PRN":72,"el":58,"az":18,"ss":49,"used":true},{"PRN":28,"el":57,"az":252,"ss":45,"used":true},{"PRN":11,"el":20,"az":120,"ss":40,"used":true},{"PRN":30,"el":58,"az":332,"ss":48,"used":true},{"PRN":77,"el":32,"az":304,"ss":45,"used":true},{"PRN":17,"el":8,"az":190,"ss":46,"used":true},{"PRN":131,"el":51,"az":178,"ss":48,"used":false}]}
diff --git a/test/daemon/greis-def.log b/test/daemon/greis-def.log
new file mode 100644
index 00000000..ac9ab0fa
--- /dev/null
+++ b/test/daemon/greis-def.log
Binary files differ
diff --git a/test/daemon/greis-def.log.chk b/test/daemon/greis-def.log.chk
new file mode 100644
index 00000000..4b77b5a6
--- /dev/null
+++ b/test/daemon/greis-def.log.chk
@@ -0,0 +1,12 @@
+{"class":"TPV","mode":3,"lat":44.068805974,"lon":-121.314086601,"alt":1126.266,"epv":47.256,"track":137.6697,"speed":0.023,"climb":0.056,"ecefx":-2386054.27,"ecefy":-3922197.23,"ecefz":4414357.28,"ecefvx":-0.01,"ecefvy":-0.05,"ecefvz":0.03,"ecefpAcc":0.94,"ecefvAcc":0.02}
+{"class":"TPV","mode":3,"lat":44.068805962,"lon":-121.314086676,"alt":1126.266,"epv":47.256,"track":292.8276,"speed":0.014,"climb":0.025,"ecefx":-2386054.28,"ecefy":-3922197.22,"ecefz":4414357.28,"ecefvx":-0.02,"ecefvy":-0.01,"ecefvz":0.02,"ecefpAcc":0.95,"ecefvAcc":0.05}
+{"class":"TPV","mode":3,"lat":44.068806050,"lon":-121.314086777,"alt":1126.240,"epv":47.250,"track":274.6931,"speed":0.014,"climb":-0.014,"ecefx":-2386054.27,"ecefy":-3922197.20,"ecefz":4414357.27,"ecefvx":-0.01,"ecefvy":0.02,"ecefvz":-0.01,"ecefpAcc":0.95,"ecefvAcc":0.03}
+{"class":"TPV","mode":3,"lat":44.068806145,"lon":-121.314086851,"alt":1126.229,"epv":47.245,"track":312.1641,"speed":0.021,"climb":-0.016,"ecefx":-2386054.27,"ecefy":-3922197.18,"ecefz":4414357.27,"ecefvx":-0.00,"ecefvy":0.03,"ecefvz":-0.00,"ecefpAcc":0.95,"ecefvAcc":0.02}
+{"class":"TPV","mode":3,"lat":44.068806241,"lon":-121.314086973,"alt":1126.213,"epv":47.239,"track":260.1358,"speed":0.012,"climb":0.017,"ecefx":-2386054.27,"ecefy":-3922197.16,"ecefz":4414357.26,"ecefvx":-0.02,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":0.95,"ecefvAcc":0.01}
+{"class":"TPV","mode":3,"lat":44.068806314,"lon":-121.314087011,"alt":1126.199,"epv":47.233,"track":131.4374,"speed":0.025,"climb":0.030,"ecefx":-2386054.26,"ecefy":-3922197.15,"ecefz":4414357.26,"ecefvx":-0.00,"ecefvy":-0.04,"ecefvz":0.01,"ecefpAcc":0.96,"ecefvAcc":0.01}
+{"class":"TPV","mode":3,"lat":44.068806372,"lon":-121.314087067,"alt":1126.196,"epv":47.227,"track":34.9068,"speed":0.004,"climb":-0.007,"ecefx":-2386054.26,"ecefy":-3922197.14,"ecefz":4414357.26,"ecefvx":0.01,"ecefvy":0.00,"ecefvz":-0.00,"ecefpAcc":0.96,"ecefvAcc":0.02}
+{"class":"TPV","mode":3,"lat":44.068806330,"lon":-121.314087036,"alt":1126.222,"epv":47.222,"track":49.2210,"speed":0.006,"climb":0.013,"ecefx":-2386054.27,"ecefy":-3922197.16,"ecefz":4414357.28,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":0.96,"ecefvAcc":0.01}
+{"class":"TPV","mode":3,"lat":44.068806380,"lon":-121.314087023,"alt":1126.214,"epv":47.216,"track":347.4476,"speed":0.008,"climb":-0.031,"ecefx":-2386054.26,"ecefy":-3922197.15,"ecefz":4414357.27,"ecefvx":0.01,"ecefvy":0.02,"ecefvz":-0.02,"ecefpAcc":0.96,"ecefvAcc":0.02}
+{"class":"TPV","mode":3,"lat":44.068806422,"lon":-121.314087047,"alt":1126.203,"epv":47.210,"track":154.9727,"speed":0.013,"climb":0.016,"ecefx":-2386054.26,"ecefy":-3922197.14,"ecefz":4414357.27,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":0.00,"ecefpAcc":0.96,"ecefvAcc":0.01}
+{"class":"TPV","mode":3,"lat":44.068806484,"lon":-121.314087076,"alt":1126.187,"epv":47.204,"track":269.6758,"speed":0.010,"climb":0.003,"ecefx":-2386054.25,"ecefy":-3922197.12,"ecefz":4414357.26,"ecefvx":-0.01,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":0.95,"ecefvAcc":0.02}
+{"class":"TPV","mode":3,"lat":44.068806573,"lon":-121.314087151,"alt":1126.171,"epv":47.198,"track":320.8655,"speed":0.014,"climb":-0.021,"ecefx":-2386054.25,"ecefy":-3922197.11,"ecefz":4414357.26,"ecefvx":0.00,"ecefvy":0.02,"ecefvz":-0.01,"ecefpAcc":0.96,"ecefvAcc":0.02}
diff --git a/test/daemon/greis-reset.log b/test/daemon/greis-reset.log
new file mode 100644
index 00000000..f72c819c
--- /dev/null
+++ b/test/daemon/greis-reset.log
Binary files differ
diff --git a/test/daemon/greis-reset.log.chk b/test/daemon/greis-reset.log.chk
new file mode 100644
index 00000000..639fbce8
--- /dev/null
+++ b/test/daemon/greis-reset.log.chk
@@ -0,0 +1,741 @@
+$GPGSA,A,3,81,82,94,11,8,13,17,28,30,7,18,,1.8,0.9,1.5*33
+$GPGBS,000000,1.50,M,1.50,M,3.47,M*3E
+$GPGSV,4,1,15,81,28,124,42,82,27,064,43,94,35,072,49,11,27,102,47*76
+$GPGSV,4,2,15,08,30,048,42,133,39,192,47,13,40,306,39,17,19,186,45*41
+$GPGSV,4,3,15,28,77,276,50,30,75,076,54,07,49,102,50,18,12,086,41*7A
+$GPGSV,4,4,15,131,39,174,46,135,38,196,47,138,37,160,48*70
+{"class":"TPV","mode":3,"lat":44.068791001,"lon":-121.314098950,"alt":1125.595,"epx":1.498,"epy":1.498,"epv":3.468,"track":205.7930,"speed":0.010,"climb":-0.011,"eps":0.04,"ecefx":-2386055.47,"ecefy":-3922197.29,"ecefz":4414355.62,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":-0.01,"ecefpAcc":1.66,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.68,"ydop":0.75,"vdop":1.50,"tdop":1.08,"hdop":0.92,"gdop":2.12,"pdop":1.76,"satellites":[{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":82,"el":27,"az":64,"ss":43,"used":true},{"PRN":94,"el":35,"az":72,"ss":49,"used":true},{"PRN":11,"el":27,"az":102,"ss":47,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":47,"used":false},{"PRN":13,"el":40,"az":306,"ss":39,"used":true},{"PRN":17,"el":19,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":54,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":48,"used":true}]}
+$GPGSA,A,3,81,82,94,11,8,13,17,28,30,7,18,,1.8,0.9,1.5*33
+$GPGBS,000000,1.52,M,1.52,M,3.52,M*3A
+$GPGSV,4,1,15,81,28,124,42,82,27,064,43,94,35,072,49,11,27,102,47*76
+$GPGSV,4,2,15,08,30,048,42,133,39,192,46,13,40,306,39,17,19,186,45*40
+$GPGSV,4,3,15,28,77,276,50,30,75,076,54,07,49,102,50,18,12,086,41*7A
+$GPGSV,4,4,15,131,39,174,46,135,38,196,47,138,37,160,48*70
+{"class":"TPV","mode":3,"lat":44.068791177,"lon":-121.314098953,"alt":1125.598,"epx":1.520,"epy":1.520,"epv":3.519,"track":148.5058,"speed":0.019,"climb":0.037,"eps":0.03,"ecefx":-2386055.46,"ecefy":-3922197.28,"ecefz":4414355.63,"ecefvx":-0.01,"ecefvy":-0.04,"ecefvz":0.01,"ecefpAcc":1.68,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.68,"ydop":0.75,"vdop":1.50,"tdop":1.08,"hdop":0.92,"gdop":2.12,"pdop":1.76,"satellites":[{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":82,"el":27,"az":64,"ss":43,"used":true},{"PRN":94,"el":35,"az":72,"ss":49,"used":true},{"PRN":11,"el":27,"az":102,"ss":47,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":39,"used":true},{"PRN":17,"el":19,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":54,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":48,"used":true}]}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:19.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:19.500Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:19.750Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:20.000Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:20.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:20.500Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:20.750Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:21.000Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:21.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:21.500Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:21.750Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:22.000Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:22.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:22.500Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:22.750Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:23.000Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:23.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:23.500Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:23.750Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:24.000Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:24.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:24.500Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:24.750Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:25.000Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:25.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:26.000Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:26.250Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:26.500Z","ept":0.005}
+{"class":"TPV","mode":0,"time":"2018-03-29T21:29:26.750Z","ept":0.005}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,1.4,0.9*0D
+$GPGBS,212927,7.80,M,7.80,M,7.48,M*38
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,44,13,40,306,41*4F
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,57,07,49,102,47*72
+$GPGSV,4,3,13,18,12,086,42,131,39,174,46,135,38,196,47,138,37,160,49*42
+$GPGSV,4,4,13,01,07,108,38*4F
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:27.000Z","ept":0.005,"lat":44.068788735,"lon":-121.314117709,"alt":1146.802,"epx":7.803,"epy":7.803,"epv":7.483,"track":284.3061,"speed":0.003,"climb":0.032,"eps":0.05,"ecefx":-2386064.76,"ecefy":-3922209.68,"ecefz":4414370.18,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":0.02,"ecefpAcc":5.44,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":0.94,"tdop":1.01,"hdop":1.39,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":44,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":57,"used":true},{"PRN":7,"el":49,"az":102,"ss":47,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":38,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212927,5.23,M,5.23,M,10.89,M*03
+$GPGSV,4,1,13,11,27,102,45,08,30,048,43,133,39,192,45,13,40,306,41*4F
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,57,07,49,102,47*72
+$GPGSV,4,3,13,18,12,086,42,131,39,174,47,135,38,196,47,138,37,160,49*43
+$GPGSV,4,4,13,01,07,108,38*4F
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:27.250Z","ept":0.005,"lat":44.068788811,"lon":-121.314117892,"alt":1146.620,"epx":5.232,"epy":5.232,"epv":10.887,"track":147.7758,"speed":0.017,"climb":0.022,"eps":0.04,"epc":116.70,"ecefx":-2386064.70,"ecefy":-3922209.55,"ecefz":4414370.06,"ecefvx":-0.01,"ecefvy":-0.03,"ecefvz":0.01,"ecefpAcc":5.37,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":57,"used":true},{"PRN":7,"el":49,"az":102,"ss":47,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":47,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":38,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212927,5.19,M,5.19,M,10.82,M*08
+$GPGSV,4,1,13,11,27,102,45,08,30,048,43,133,39,192,44,13,40,306,42*4D
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,47*73
+$GPGSV,4,3,13,18,12,086,42,131,39,174,47,135,38,196,47,138,37,160,49*43
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:27.500Z","ept":0.005,"lat":44.068788364,"lon":-121.314116991,"alt":1146.493,"epx":5.195,"epy":5.195,"epv":10.816,"track":101.5969,"speed":0.016,"climb":0.009,"eps":0.02,"epc":171.38,"ecefx":-2386064.61,"ecefy":-3922209.54,"ecefz":4414369.94,"ecefvx":0.01,"ecefvy":-0.02,"ecefvz":0.00,"ecefpAcc":5.34,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":44,"used":false},{"PRN":13,"el":40,"az":306,"ss":42,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":47,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":47,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212927,5.17,M,5.17,M,10.78,M*0D
+$GPGSV,4,1,13,11,27,102,45,08,30,048,43,133,39,192,45,13,40,306,42*4C
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,47*73
+$GPGSV,4,3,13,18,12,086,42,131,39,174,46,135,38,196,47,138,37,160,49*42
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:27.750Z","ept":0.005,"lat":44.068788872,"lon":-121.314116757,"alt":1146.429,"epx":5.173,"epy":5.173,"epv":10.775,"track":310.0705,"speed":0.002,"climb":-0.009,"eps":0.03,"epc":171.10,"ecefx":-2386064.55,"ecefy":-3922209.48,"ecefz":4414369.94,"ecefvx":0.00,"ecefvy":0.01,"ecefvz":-0.01,"ecefpAcc":5.32,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":42,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":47,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212928,2.06,M,2.06,M,4.30,M*3B
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,45,13,40,306,42*4D
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,47*73
+$GPGSV,4,3,13,18,12,086,42,131,39,174,46,135,38,196,47,138,37,160,50*4A
+$GPGSV,4,4,13,01,07,108,38*4F
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:28.000Z","ept":0.005,"lat":44.068787737,"lon":-121.314101623,"alt":1127.050,"epx":2.062,"epy":2.062,"epv":4.300,"track":60.3408,"speed":0.016,"climb":0.001,"eps":0.04,"epc":170.95,"ecefx":-2386056.32,"ecefy":-3922198.29,"ecefz":4414356.37,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":2.12,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":42,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":47,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":50,"used":true},{"PRN":1,"el":7,"az":108,"ss":38,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212928,2.04,M,2.04,M,4.25,M*3F
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,45,13,40,306,42*4D
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,42,131,39,174,47,135,38,196,47,138,37,160,49*43
+$GPGSV,4,4,13,01,07,108,38*4F
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:28.250Z","ept":0.005,"lat":44.068787761,"lon":-121.314101649,"alt":1126.966,"epx":2.039,"epy":2.039,"epv":4.253,"track":155.2310,"speed":0.021,"climb":0.007,"eps":0.03,"epc":145.05,"ecefx":-2386056.29,"ecefy":-3922198.23,"ecefz":4414356.31,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":-0.01,"ecefpAcc":2.10,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":42,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":47,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":38,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212928,2.02,M,2.02,M,4.22,M*38
+$GPGSV,4,1,13,11,27,102,45,08,30,048,43,133,39,192,45,13,40,306,41*4F
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,42,131,39,174,47,135,38,196,47,138,37,160,49*43
+$GPGSV,4,4,13,01,07,108,38*4F
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:28.500Z","ept":0.005,"lat":44.068788091,"lon":-121.314102178,"alt":1126.766,"epx":2.020,"epy":2.020,"epv":4.217,"track":296.1535,"speed":0.011,"climb":-0.004,"eps":0.03,"epc":144.87,"ecefx":-2386056.24,"ecefy":-3922198.06,"ecefz":4414356.20,"ecefvx":-0.01,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":2.08,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":47,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":38,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212928,1.99,M,1.99,M,4.16,M*3F
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,45,13,40,306,41*4E
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,42,131,39,174,46,135,38,196,47,138,37,160,49*42
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:28.750Z","ept":0.005,"lat":44.068788617,"lon":-121.314102594,"alt":1126.551,"epx":1.989,"epy":1.989,"epv":4.157,"track":331.1789,"speed":0.008,"climb":0.004,"eps":0.04,"epc":144.73,"ecefx":-2386056.17,"ecefy":-3922197.88,"ecefz":4414356.09,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":0.01,"ecefpAcc":2.05,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212929,1.98,M,1.98,M,4.14,M*3C
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,45,13,40,306,41*4E
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,42,131,39,174,46,135,38,196,47,138,37,160,49*42
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:29.000Z","ept":0.005,"lat":44.068788843,"lon":-121.314102782,"alt":1126.390,"epx":1.979,"epy":1.979,"epv":4.140,"track":130.1917,"speed":0.024,"climb":0.021,"eps":0.04,"epc":144.49,"ecefx":-2386056.11,"ecefy":-3922197.76,"ecefz":4414356.00,"ecefvx":0.00,"ecefvy":-0.03,"ecefvz":0.00,"ecefpAcc":2.04,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212929,1.95,M,1.95,M,4.09,M*30
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,45,13,40,306,41*4E
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,42,131,39,174,46,135,38,196,47,138,37,160,49*42
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:29.250Z","ept":0.005,"lat":44.068788866,"lon":-121.314103188,"alt":1126.248,"epx":1.953,"epy":1.953,"epv":4.092,"track":200.8703,"speed":0.010,"climb":0.001,"eps":0.03,"epc":144.43,"ecefx":-2386056.09,"ecefy":-3922197.65,"ecefz":4414355.90,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":-0.01,"ecefpAcc":2.02,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":42,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212929,1.96,M,1.96,M,4.11,M*39
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,44,13,40,306,41*4F
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,41,131,39,174,47,135,38,196,47,138,37,160,49*40
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:29.500Z","ept":0.005,"lat":44.068788962,"lon":-121.314103575,"alt":1126.129,"epx":1.959,"epy":1.959,"epv":4.110,"track":326.1443,"speed":0.022,"climb":-0.010,"eps":0.04,"epc":144.24,"ecefx":-2386056.07,"ecefy":-3922197.56,"ecefz":4414355.82,"ecefvx":-0.00,"ecefvy":0.02,"ecefvz":0.01,"ecefpAcc":2.02,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":44,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":47,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212929,1.95,M,1.95,M,4.10,M*38
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,45,13,40,306,42*4D
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,47,138,37,160,49*41
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:29.750Z","ept":0.005,"lat":44.068789082,"lon":-121.314103526,"alt":1126.032,"epx":1.952,"epy":1.952,"epv":4.103,"track":336.9622,"speed":0.023,"climb":-0.012,"eps":0.02,"epc":144.32,"ecefx":-2386056.02,"ecefy":-3922197.49,"ecefz":4414355.77,"ecefvx":0.00,"ecefvy":0.02,"ecefvz":0.01,"ecefpAcc":2.02,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":42,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212930,1.94,M,1.94,M,4.09,M*38
+$GPGSV,4,1,13,11,27,102,45,08,30,048,42,133,39,192,45,13,40,306,41*4E
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,47,138,37,160,49*41
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:30.000Z","ept":0.005,"lat":44.068788801,"lon":-121.314103200,"alt":1125.973,"epx":1.942,"epy":1.942,"epv":4.088,"track":173.8500,"speed":0.005,"climb":0.009,"eps":0.02,"epc":144.29,"ecefx":-2386055.99,"ecefy":-3922197.49,"ecefz":4414355.70,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":2.01,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":45,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212930,1.93,M,1.93,M,4.08,M*39
+$GPGSV,4,1,13,11,27,102,46,08,30,048,43,133,39,192,45,13,40,306,41*4C
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,48*7C
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,48,138,37,160,49*4E
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:30.250Z","ept":0.005,"lat":44.068788568,"lon":-121.314103286,"alt":1125.923,"epx":1.933,"epy":1.933,"epv":4.076,"track":44.3564,"speed":0.001,"climb":0.013,"eps":0.02,"epc":144.24,"ecefx":-2386055.98,"ecefy":-3922197.47,"ecefz":4414355.65,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":2.00,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":48,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212930,1.92,M,1.92,M,4.05,M*34
+$GPGSV,4,1,13,11,27,102,46,08,30,048,43,133,39,192,45,13,40,306,42*4F
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,49*7D
+$GPGSV,4,3,13,18,12,086,41,131,39,174,47,135,38,196,48,138,37,160,49*4F
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:30.500Z","ept":0.005,"lat":44.068788464,"lon":-121.314103206,"alt":1125.843,"epx":1.919,"epy":1.919,"epv":4.051,"track":65.4619,"speed":0.006,"climb":0.012,"eps":0.04,"epc":144.19,"ecefx":-2386055.95,"ecefy":-3922197.43,"ecefz":4414355.58,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":1.99,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":42,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":47,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212930,1.91,M,1.91,M,4.03,M*32
+$GPGSV,4,1,13,11,27,102,46,08,30,048,43,133,39,192,45,13,40,306,42*4F
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,49*7D
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,48,138,37,160,49*4E
+$GPGSV,4,4,13,01,07,108,36*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:30.750Z","ept":0.005,"lat":44.068788360,"lon":-121.314103248,"alt":1125.740,"epx":1.907,"epy":1.907,"epv":4.031,"track":101.8120,"speed":0.006,"climb":0.032,"eps":0.03,"epc":144.10,"ecefx":-2386055.92,"ecefy":-3922197.37,"ecefz":4414355.51,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":0.02,"ecefpAcc":1.98,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":42,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212931,1.87,M,1.87,M,3.96,M*38
+$GPGSV,4,1,13,11,27,102,46,08,30,048,42,133,39,192,45,13,40,306,41*4D
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,49*7D
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,47,138,37,160,49*41
+$GPGSV,4,4,13,01,07,108,36*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:31.000Z","ept":0.005,"lat":44.068788240,"lon":-121.314102872,"alt":1125.664,"epx":1.871,"epy":1.871,"epv":3.955,"track":323.2702,"speed":0.008,"climb":-0.002,"eps":0.02,"epc":144.02,"ecefx":-2386055.87,"ecefy":-3922197.35,"ecefz":4414355.44,"ecefvx":-0.00,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":1.94,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212931,1.84,M,1.84,M,3.89,M*36
+$GPGSV,4,1,13,11,27,102,46,08,30,048,42,133,39,192,45,13,40,306,41*4D
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,49*7D
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,47,138,37,160,49*41
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:31.250Z","ept":0.005,"lat":44.068788234,"lon":-121.314102610,"alt":1125.608,"epx":1.840,"epy":1.840,"epv":3.890,"track":207.6093,"speed":0.006,"climb":0.008,"eps":0.03,"epc":143.72,"ecefx":-2386055.83,"ecefy":-3922197.33,"ecefz":4414355.40,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":1.91,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212931,1.82,M,1.82,M,3.85,M*3A
+$GPGSV,4,1,13,11,27,102,46,08,30,048,42,133,39,192,45,13,40,306,41*4D
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,49*7D
+$GPGSV,4,3,13,18,12,086,41,131,39,174,47,135,38,196,47,138,37,160,49*40
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:31.500Z","ept":0.005,"lat":44.068788340,"lon":-121.314102221,"alt":1125.534,"epx":1.822,"epy":1.822,"epv":3.853,"track":321.1297,"speed":0.010,"climb":0.015,"eps":0.03,"epc":143.47,"ecefx":-2386055.78,"ecefy":-3922197.29,"ecefz":4414355.36,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":0.02,"ecefpAcc":1.89,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":47,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212931,1.80,M,1.80,M,3.81,M*3E
+$GPGSV,4,1,13,11,27,102,46,08,30,048,43,133,39,192,45,13,40,306,41*4C
+$GPGSV,4,2,13,17,20,186,44,28,77,276,50,30,75,076,56,07,49,102,49*7D
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,47,138,37,160,49*41
+$GPGSV,4,4,13,01,07,108,36*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:31.750Z","ept":0.005,"lat":44.068788473,"lon":-121.314102152,"alt":1125.457,"epx":1.800,"epy":1.800,"epv":3.805,"track":173.7362,"speed":0.006,"climb":0.011,"eps":0.01,"epc":143.33,"ecefx":-2386055.74,"ecefy":-3922197.24,"ecefz":4414355.32,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":1.87,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,11,8,13,17,28,30,7,18,131,135,138,,1.7,0.9,1.4*0D
+$GPGBS,212932,1.77,M,1.77,M,3.75,M*36
+$GPGSV,4,1,13,11,27,102,46,08,30,048,43,133,39,192,45,13,40,306,41*4C
+$GPGSV,4,2,13,17,20,186,43,28,77,276,50,30,75,076,56,07,49,102,49*7A
+$GPGSV,4,3,13,18,12,086,41,131,39,174,46,135,38,196,48,138,37,160,49*4E
+$GPGSV,4,4,13,01,07,108,37*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:32.000Z","ept":0.005,"lat":44.068788432,"lon":-121.314102018,"alt":1125.396,"epx":1.771,"epy":1.771,"epv":3.745,"track":4.9717,"speed":0.010,"climb":-0.021,"eps":0.01,"epc":143.14,"ecefx":-2386055.71,"ecefy":-3922197.21,"ecefz":4414355.27,"ecefvx":0.01,"ecefvy":0.02,"ecefvz":-0.01,"ecefpAcc":1.84,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.73,"ydop":0.85,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.10,"pdop":1.68,"satellites":[{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":43,"used":true},{"PRN":28,"el":77,"az":276,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212932,1.68,M,1.68,M,3.55,M*34
+$GPGSV,4,1,14,94,34,072,41,11,27,102,46,08,30,048,42,133,39,192,45*46
+$GPGSV,4,2,14,13,40,306,41,17,20,186,43,28,77,278,50,30,75,076,56*71
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,47*76
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:32.250Z","ept":0.005,"lat":44.068788333,"lon":-121.314101822,"alt":1125.346,"epx":1.677,"epy":1.677,"epv":3.547,"track":42.0072,"speed":0.013,"climb":0.010,"eps":0.04,"epc":142.90,"ecefx":-2386055.68,"ecefy":-3922197.19,"ecefz":4414355.23,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":1.74,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":41,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":43,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212932,1.66,M,1.66,M,3.51,M*30
+$GPGSV,4,1,14,94,34,072,42,11,27,102,46,08,30,048,43,133,39,192,45*44
+$GPGSV,4,2,14,13,40,306,41,17,20,186,43,28,77,278,50,30,75,076,56*71
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,48*79
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:32.500Z","ept":0.005,"lat":44.068788248,"lon":-121.314101500,"alt":1125.297,"epx":1.659,"epy":1.659,"epv":3.509,"track":356.2674,"speed":0.015,"climb":0.003,"eps":0.02,"epc":142.11,"ecefx":-2386055.64,"ecefy":-3922197.18,"ecefz":4414355.19,"ecefvx":0.00,"ecefvy":0.01,"ecefvz":0.01,"ecefpAcc":1.72,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":42,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":43,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212932,1.65,M,1.65,M,3.48,M*38
+$GPGSV,4,1,14,94,34,072,43,11,27,102,46,08,30,048,43,133,39,192,45*45
+$GPGSV,4,2,14,13,40,306,41,17,20,186,43,28,77,278,50,30,75,076,56*71
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,48*79
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:32.750Z","ept":0.005,"lat":44.068788278,"lon":-121.314101376,"alt":1125.229,"epx":1.645,"epy":1.645,"epv":3.479,"track":357.7600,"speed":0.026,"climb":-0.010,"eps":0.02,"epc":141.97,"ecefx":-2386055.61,"ecefy":-3922197.14,"ecefz":4414355.14,"ecefvx":0.01,"ecefvy":0.02,"ecefvz":0.01,"ecefpAcc":1.71,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":43,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":43,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212933,1.63,M,1.63,M,3.46,M*37
+$GPGSV,4,1,14,94,34,072,43,11,27,102,46,08,30,048,42,133,39,192,45*44
+$GPGSV,4,2,14,13,40,306,41,17,20,186,44,28,77,278,50,30,75,076,56*76
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,47*76
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:33.000Z","ept":0.005,"lat":44.068788325,"lon":-121.314101483,"alt":1125.170,"epx":1.634,"epy":1.634,"epv":3.456,"track":54.7022,"speed":0.008,"climb":0.018,"eps":0.02,"epc":141.85,"ecefx":-2386055.59,"ecefy":-3922197.10,"ecefz":4414355.11,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":0.02,"ecefpAcc":1.70,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":43,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212933,1.62,M,1.62,M,3.43,M*32
+$GPGSV,4,1,14,94,34,072,44,11,27,102,46,08,30,048,43,133,39,192,45*42
+$GPGSV,4,2,14,13,40,306,41,17,20,186,44,28,77,278,50,30,75,076,56*76
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,47*76
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:33.250Z","ept":0.005,"lat":44.068788191,"lon":-121.314101332,"alt":1125.168,"epx":1.623,"epy":1.623,"epv":3.432,"track":106.2593,"speed":0.010,"climb":0.022,"eps":0.03,"epc":141.76,"ecefx":-2386055.58,"ecefy":-3922197.11,"ecefz":4414355.09,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":0.01,"ecefpAcc":1.69,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":44,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212933,1.61,M,1.61,M,3.41,M*30
+$GPGSV,4,1,14,94,34,072,44,11,27,102,46,08,30,048,43,133,39,192,45*42
+$GPGSV,4,2,14,13,40,306,41,17,20,186,44,28,77,278,50,30,75,076,56*76
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,48*79
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:33.500Z","ept":0.005,"lat":44.068788173,"lon":-121.314101320,"alt":1125.162,"epx":1.611,"epy":1.611,"epv":3.407,"track":137.3661,"speed":0.010,"climb":0.012,"eps":0.03,"epc":141.67,"ecefx":-2386055.58,"ecefy":-3922197.11,"ecefz":4414355.09,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":0.00,"ecefpAcc":1.67,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":44,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212933,1.61,M,1.61,M,3.41,M*30
+$GPGSV,4,1,14,94,34,072,44,11,27,102,46,08,30,048,43,133,39,192,45*42
+$GPGSV,4,2,14,13,40,306,41,17,20,186,44,28,77,278,50,30,75,076,56*76
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,48*79
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:33.750Z","ept":0.005,"lat":44.068788092,"lon":-121.314101318,"alt":1125.178,"epx":1.610,"epy":1.610,"epv":3.406,"track":46.2890,"speed":0.017,"climb":0.015,"eps":0.02,"epc":141.58,"ecefx":-2386055.59,"ecefy":-3922197.13,"ecefz":4414355.09,"ecefvx":0.01,"ecefvy":-0.01,"ecefvz":0.02,"ecefpAcc":1.67,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":44,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,94,11,8,13,17,28,30,7,18,131,135,,1.7,0.9,1.4*3A
+$GPGBS,212934,1.61,M,1.61,M,3.41,M*37
+$GPGSV,4,1,14,94,34,072,44,11,27,102,46,08,30,048,43,133,39,192,45*42
+$GPGSV,4,2,14,13,40,306,41,17,20,186,44,28,77,278,50,30,75,076,56*76
+$GPGSV,4,3,14,07,49,102,49,18,12,086,41,131,39,174,46,135,38,196,47*76
+$GPGSV,4,4,14,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:34.000Z","ept":0.005,"lat":44.068787962,"lon":-121.314101158,"alt":1125.197,"epx":1.610,"epy":1.610,"epv":3.405,"track":113.0212,"speed":0.008,"climb":0.035,"eps":0.02,"epc":141.57,"ecefx":-2386055.59,"ecefy":-3922197.15,"ecefz":4414355.10,"ecefvx":-0.01,"ecefvy":-0.03,"ecefvz":0.02,"ecefpAcc":1.67,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.71,"ydop":0.84,"vdop":1.39,"tdop":1.01,"hdop":0.95,"gdop":2.08,"pdop":1.68,"satellites":[{"PRN":94,"el":34,"az":72,"ss":44,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":56,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212934,1.57,M,1.57,M,3.33,M*32
+$GPGSV,4,1,15,81,28,124,36,94,34,072,45,11,27,102,46,08,30,048,42*72
+$GPGSV,4,2,15,133,39,192,45,13,40,306,41,17,20,186,44,28,77,278,50*44
+$GPGSV,4,3,15,30,75,076,55,07,49,102,49,18,12,086,41,131,39,174,46*46
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:34.250Z","ept":0.005,"lat":44.068788567,"lon":-121.314100987,"alt":1125.204,"epx":1.568,"epy":1.568,"epv":3.332,"track":60.7643,"speed":0.013,"climb":-0.000,"eps":0.03,"epc":141.58,"ecefx":-2386055.56,"ecefy":-3922197.12,"ecefz":4414355.15,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":1.63,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":36,"used":true},{"PRN":94,"el":34,"az":72,"ss":45,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212934,1.56,M,1.56,M,3.32,M*33
+$GPGSV,4,1,15,81,28,124,36,94,34,072,45,11,27,102,46,08,30,048,42*72
+$GPGSV,4,2,15,133,39,192,45,13,40,306,41,17,20,186,44,28,77,278,50*44
+$GPGSV,4,3,15,30,75,076,55,07,49,102,49,18,12,086,40,131,39,174,46*47
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,37*43
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:34.500Z","ept":0.005,"lat":44.068788466,"lon":-121.314100722,"alt":1125.230,"epx":1.561,"epy":1.561,"epv":3.320,"track":48.5547,"speed":0.009,"climb":0.010,"eps":0.02,"epc":141.28,"ecefx":-2386055.55,"ecefy":-3922197.16,"ecefz":4414355.16,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":1.63,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":36,"used":true},{"PRN":94,"el":34,"az":72,"ss":45,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":37,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212934,1.56,M,1.56,M,3.31,M*30
+$GPGSV,4,1,15,81,28,124,36,94,34,072,45,11,27,102,46,08,30,048,42*72
+$GPGSV,4,2,15,133,39,192,45,13,40,306,41,17,20,186,44,28,77,278,50*44
+$GPGSV,4,3,15,30,75,076,55,07,49,102,49,18,12,086,41,131,39,174,46*46
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:34.750Z","ept":0.005,"lat":44.068788309,"lon":-121.314100306,"alt":1125.260,"epx":1.558,"epy":1.558,"epv":3.315,"track":358.7984,"speed":0.016,"climb":0.000,"eps":0.02,"epc":141.24,"ecefx":-2386055.54,"ecefy":-3922197.20,"ecefz":4414355.17,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":0.01,"ecefpAcc":1.62,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":36,"used":true},{"PRN":94,"el":34,"az":72,"ss":45,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212935,1.55,M,1.55,M,3.31,M*31
+$GPGSV,4,1,15,81,28,124,37,94,34,072,46,11,27,102,46,08,30,048,43*71
+$GPGSV,4,2,15,133,39,192,45,13,40,306,41,17,20,186,44,28,77,278,50*44
+$GPGSV,4,3,15,30,75,076,55,07,49,102,49,18,12,086,41,131,39,174,46*46
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:35.000Z","ept":0.005,"lat":44.068788221,"lon":-121.314099862,"alt":1125.302,"epx":1.552,"epy":1.552,"epv":3.305,"track":349.1634,"speed":0.003,"climb":0.026,"eps":0.04,"epc":141.22,"ecefx":-2386055.53,"ecefy":-3922197.25,"ecefz":4414355.19,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.02,"ecefpAcc":1.62,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":37,"used":true},{"PRN":94,"el":34,"az":72,"ss":46,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":49,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212935,1.55,M,1.55,M,3.31,M*31
+$GPGSV,4,1,15,81,28,124,37,94,34,072,46,11,27,102,46,08,30,048,43*71
+$GPGSV,4,2,15,133,39,192,45,13,40,306,41,17,20,186,44,28,77,278,50*44
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:35.250Z","ept":0.005,"lat":44.068788293,"lon":-121.314099535,"alt":1125.319,"epx":1.551,"epy":1.551,"epv":3.306,"track":82.2739,"speed":0.024,"climb":0.029,"eps":0.04,"epc":141.19,"ecefx":-2386055.51,"ecefy":-3922197.27,"ecefz":4414355.21,"ecefvx":0.01,"ecefvy":-0.03,"ecefvz":0.02,"ecefpAcc":1.62,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":37,"used":true},{"PRN":94,"el":34,"az":72,"ss":46,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212935,1.55,M,1.55,M,3.30,M*30
+$GPGSV,4,1,15,81,28,124,38,94,34,072,46,11,27,102,46,08,30,048,43*7E
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:35.500Z","ept":0.005,"lat":44.068788222,"lon":-121.314099315,"alt":1125.336,"epx":1.547,"epy":1.547,"epv":3.300,"track":7.4783,"speed":0.018,"climb":0.006,"eps":0.04,"epc":141.20,"ecefx":-2386055.51,"ecefy":-3922197.30,"ecefz":4414355.21,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":0.02,"ecefpAcc":1.62,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":38,"used":true},{"PRN":94,"el":34,"az":72,"ss":46,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212935,1.54,M,1.54,M,3.28,M*39
+$GPGSV,4,1,15,81,28,124,38,94,34,072,46,11,27,102,46,08,30,048,43*7E
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:35.750Z","ept":0.005,"lat":44.068788212,"lon":-121.314099149,"alt":1125.345,"epx":1.537,"epy":1.537,"epv":3.282,"track":28.6668,"speed":0.013,"climb":0.022,"eps":0.04,"epc":141.18,"ecefx":-2386055.50,"ecefy":-3922197.31,"ecefz":4414355.22,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":0.02,"ecefpAcc":1.61,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":38,"used":true},{"PRN":94,"el":34,"az":72,"ss":46,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212936,1.53,M,1.53,M,3.27,M*35
+$GPGSV,4,1,15,81,28,124,38,94,34,072,47,11,27,102,46,08,30,048,43*7F
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,45*4D
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:36.000Z","ept":0.005,"lat":44.068788144,"lon":-121.314098844,"alt":1125.388,"epx":1.532,"epy":1.532,"epv":3.275,"track":349.4444,"speed":0.016,"climb":-0.008,"eps":0.04,"epc":141.11,"ecefx":-2386055.50,"ecefy":-3922197.35,"ecefz":4414355.24,"ecefvx":0.01,"ecefvy":0.02,"ecefvz":0.01,"ecefpAcc":1.60,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":38,"used":true},{"PRN":94,"el":34,"az":72,"ss":47,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212936,1.52,M,1.52,M,3.26,M*34
+$GPGSV,4,1,15,81,28,124,38,94,34,072,47,11,27,102,46,08,30,048,43*7F
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:36.250Z","ept":0.005,"lat":44.068788040,"lon":-121.314098566,"alt":1125.418,"epx":1.524,"epy":1.524,"epv":3.263,"track":340.3129,"speed":0.020,"climb":-0.005,"eps":0.04,"epc":141.09,"ecefx":-2386055.49,"ecefy":-3922197.39,"ecefz":4414355.26,"ecefvx":0.00,"ecefvy":0.02,"ecefvz":0.01,"ecefpAcc":1.60,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":38,"used":true},{"PRN":94,"el":34,"az":72,"ss":47,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":30,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212936,1.52,M,1.52,M,3.26,M*34
+$GPGSV,4,1,15,81,28,124,39,94,34,072,47,11,27,102,46,08,29,048,43*76
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:36.500Z","ept":0.005,"lat":44.068788162,"lon":-121.314098655,"alt":1125.429,"epx":1.521,"epy":1.521,"epv":3.260,"track":313.4769,"speed":0.021,"climb":-0.014,"eps":0.05,"epc":141.04,"ecefx":-2386055.50,"ecefy":-3922197.39,"ecefz":4414355.27,"ecefvx":-0.00,"ecefvy":0.03,"ecefvz":0.00,"ecefpAcc":1.59,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":39,"used":true},{"PRN":94,"el":34,"az":72,"ss":47,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212936,1.52,M,1.52,M,3.27,M*35
+$GPGSV,4,1,15,81,28,124,39,94,34,072,47,11,27,102,46,08,29,048,43*76
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,45*4C
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:36.750Z","ept":0.005,"lat":44.068788256,"lon":-121.314098643,"alt":1125.430,"epx":1.522,"epy":1.522,"epv":3.265,"track":329.8515,"speed":0.028,"climb":-0.017,"eps":0.06,"epc":141.03,"ecefx":-2386055.50,"ecefy":-3922197.38,"ecefz":4414355.28,"ecefvx":0.00,"ecefvy":0.03,"ecefvz":0.01,"ecefpAcc":1.60,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":39,"used":true},{"PRN":94,"el":34,"az":72,"ss":47,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212937,1.52,M,1.52,M,3.28,M*3B
+$GPGSV,4,1,15,81,28,124,39,94,34,072,47,11,27,102,46,08,29,048,43*76
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,45*4C
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:37.000Z","ept":0.005,"lat":44.068788382,"lon":-121.314098669,"alt":1125.424,"epx":1.525,"epy":1.525,"epv":3.275,"track":300.2726,"speed":0.023,"climb":0.004,"eps":0.07,"epc":141.06,"ecefx":-2386055.49,"ecefy":-3922197.37,"ecefz":4414355.29,"ecefvx":-0.01,"ecefvy":0.01,"ecefvz":0.01,"ecefpAcc":1.60,"ecefvAcc":0.05}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":39,"used":true},{"PRN":94,"el":34,"az":72,"ss":47,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212937,1.53,M,1.53,M,3.29,M*3A
+$GPGSV,4,1,15,81,28,124,39,94,34,072,47,11,27,102,46,08,29,048,43*76
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:37.250Z","ept":0.005,"lat":44.068788656,"lon":-121.314098789,"alt":1125.417,"epx":1.529,"epy":1.529,"epv":3.288,"track":314.8602,"speed":0.033,"climb":-0.007,"eps":0.06,"epc":141.11,"ecefx":-2386055.48,"ecefy":-3922197.34,"ecefz":4414355.30,"ecefvx":-0.01,"ecefvy":0.03,"ecefvz":0.01,"ecefpAcc":1.61,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":39,"used":true},{"PRN":94,"el":34,"az":72,"ss":47,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212937,1.53,M,1.53,M,3.30,M*32
+$GPGSV,4,1,15,81,28,124,39,94,34,072,47,11,27,102,46,08,29,048,43*76
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,48,138,37,160,49,01,07,108,36*4D
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:37.500Z","ept":0.005,"lat":44.068788911,"lon":-121.314098937,"alt":1125.405,"epx":1.531,"epy":1.531,"epv":3.296,"track":305.5412,"speed":0.040,"climb":-0.026,"eps":0.05,"epc":141.16,"ecefx":-2386055.48,"ecefy":-3922197.31,"ecefz":4414355.32,"ecefvx":-0.01,"ecefvy":0.05,"ecefvz":-0.00,"ecefpAcc":1.61,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":39,"used":true},{"PRN":94,"el":34,"az":72,"ss":47,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212937,1.53,M,1.53,M,3.30,M*32
+$GPGSV,4,1,15,81,28,124,39,94,34,072,48,11,27,102,46,08,29,048,43*79
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,48,138,37,160,49,01,07,108,36*4D
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:37.750Z","ept":0.005,"lat":44.068789079,"lon":-121.314099060,"alt":1125.376,"epx":1.533,"epy":1.533,"epv":3.302,"track":306.1403,"speed":0.020,"climb":-0.033,"eps":0.06,"epc":141.20,"ecefx":-2386055.47,"ecefy":-3922197.28,"ecefz":4414355.31,"ecefvx":0.00,"ecefvy":0.04,"ecefvz":-0.01,"ecefpAcc":1.61,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":39,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212938,1.53,M,1.53,M,3.31,M*3C
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,27,102,46,08,29,048,43*77
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:38.000Z","ept":0.005,"lat":44.068789213,"lon":-121.314099117,"alt":1125.366,"epx":1.534,"epy":1.534,"epv":3.306,"track":309.7535,"speed":0.021,"climb":-0.043,"eps":0.05,"epc":141.23,"ecefx":-2386055.47,"ecefy":-3922197.26,"ecefz":4414355.31,"ecefvx":0.01,"ecefvy":0.04,"ecefvz":-0.02,"ecefpAcc":1.61,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212938,1.53,M,1.53,M,3.31,M*3C
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,27,102,46,08,29,048,42*76
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,45*4C
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:38.250Z","ept":0.005,"lat":44.068789359,"lon":-121.314099067,"alt":1125.363,"epx":1.534,"epy":1.534,"epv":3.307,"track":319.8260,"speed":0.017,"climb":-0.009,"eps":0.05,"epc":141.25,"ecefx":-2386055.45,"ecefy":-3922197.25,"ecefz":4414355.32,"ecefvx":-0.00,"ecefvy":0.02,"ecefvz":0.00,"ecefpAcc":1.61,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.04,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":27,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212938,1.54,M,1.54,M,3.31,M*3C
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,28,102,46,08,29,048,42*79
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,45,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,35*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:38.500Z","ept":0.005,"lat":44.068789478,"lon":-121.314099141,"alt":1125.360,"epx":1.537,"epy":1.537,"epv":3.315,"track":266.4108,"speed":0.018,"climb":0.001,"eps":0.04,"epc":141.25,"ecefx":-2386055.45,"ecefy":-3922197.24,"ecefz":4414355.33,"ecefvx":-0.02,"ecefvy":0.01,"ecefvz":-0.00,"ecefpAcc":1.62,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212938,1.54,M,1.54,M,3.33,M*3E
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,28,102,46,08,29,048,42*79
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,45,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,48,138,37,160,49,01,07,108,36*4D
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:38.750Z","ept":0.005,"lat":44.068789602,"lon":-121.314099219,"alt":1125.352,"epx":1.542,"epy":1.542,"epv":3.325,"track":291.4513,"speed":0.029,"climb":-0.011,"eps":0.05,"epc":141.29,"ecefx":-2386055.45,"ecefy":-3922197.22,"ecefz":4414355.33,"ecefvx":-0.02,"ecefvy":0.03,"ecefvz":0.00,"ecefpAcc":1.62,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212939,1.54,M,1.54,M,3.33,M*3F
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,28,102,46,08,29,048,42*79
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,45,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,48,138,37,160,49,01,07,108,36*4D
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:39.000Z","ept":0.005,"lat":44.068789654,"lon":-121.314099288,"alt":1125.335,"epx":1.543,"epy":1.543,"epv":3.327,"track":273.3503,"speed":0.017,"climb":-0.019,"eps":0.04,"epc":141.34,"ecefx":-2386055.45,"ecefy":-3922197.20,"ecefz":4414355.33,"ecefvx":-0.01,"ecefvy":0.02,"ecefvz":-0.01,"ecefpAcc":1.62,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":42,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212939,1.55,M,1.55,M,3.34,M*38
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,45,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,46*4F
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:39.250Z","ept":0.005,"lat":44.068789558,"lon":-121.314099257,"alt":1125.322,"epx":1.547,"epy":1.547,"epv":3.336,"track":293.0727,"speed":0.020,"climb":-0.017,"eps":0.03,"epc":141.35,"ecefx":-2386055.44,"ecefy":-3922197.20,"ecefz":4414355.31,"ecefvx":-0.01,"ecefvy":0.02,"ecefvz":-0.01,"ecefpAcc":1.63,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212939,1.55,M,1.55,M,3.34,M*38
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,45,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,45*4C
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:39.500Z","ept":0.005,"lat":44.068789416,"lon":-121.314099107,"alt":1125.314,"epx":1.547,"epy":1.547,"epv":3.336,"track":248.5204,"speed":0.005,"climb":-0.001,"eps":0.04,"epc":141.39,"ecefx":-2386055.44,"ecefy":-3922197.21,"ecefz":4414355.29,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":-0.00,"ecefpAcc":1.63,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212939,1.55,M,1.55,M,3.34,M*38
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,40,131,39,174,45*4C
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:39.750Z","ept":0.005,"lat":44.068789309,"lon":-121.314099022,"alt":1125.296,"epx":1.548,"epy":1.548,"epv":3.338,"track":248.1946,"speed":0.019,"climb":-0.005,"eps":0.06,"epc":141.39,"ecefx":-2386055.43,"ecefy":-3922197.21,"ecefz":4414355.27,"ecefvx":-0.02,"ecefvy":0.01,"ecefvz":-0.01,"ecefpAcc":1.63,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":40,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212940,1.54,M,1.54,M,3.33,M*31
+$GPGSV,4,1,15,81,28,124,40,94,34,072,48,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:40.000Z","ept":0.005,"lat":44.068789268,"lon":-121.314099089,"alt":1125.274,"epx":1.545,"epy":1.545,"epv":3.331,"track":253.8919,"speed":0.019,"climb":-0.004,"eps":0.06,"epc":141.41,"ecefx":-2386055.43,"ecefy":-3922197.20,"ecefz":4414355.25,"ecefvx":-0.02,"ecefvy":0.01,"ecefvz":-0.01,"ecefpAcc":1.63,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":48,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212940,1.54,M,1.54,M,3.32,M*30
+$GPGSV,4,1,15,81,28,124,40,94,34,072,49,11,28,102,46,08,29,048,43*79
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:40.250Z","ept":0.005,"lat":44.068789257,"lon":-121.314099141,"alt":1125.237,"epx":1.539,"epy":1.539,"epv":3.318,"track":317.7172,"speed":0.018,"climb":-0.011,"eps":0.04,"epc":141.38,"ecefx":-2386055.42,"ecefy":-3922197.18,"ecefz":4414355.23,"ecefvx":-0.00,"ecefvy":0.02,"ecefvz":0.00,"ecefpAcc":1.62,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212940,1.53,M,1.53,M,3.30,M*32
+$GPGSV,4,1,15,81,28,124,40,94,34,072,49,11,28,102,46,08,29,048,43*79
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,45*4D
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:40.500Z","ept":0.005,"lat":44.068789187,"lon":-121.314099250,"alt":1125.220,"epx":1.528,"epy":1.528,"epv":3.295,"track":318.8611,"speed":0.005,"climb":-0.010,"eps":0.01,"epc":141.34,"ecefx":-2386055.42,"ecefy":-3922197.17,"ecefz":4414355.21,"ecefvx":0.00,"ecefvy":0.01,"ecefvz":-0.00,"ecefpAcc":1.61,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212940,1.51,M,1.51,M,3.26,M*35
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,41,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,45*4D
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:40.750Z","ept":0.005,"lat":44.068789186,"lon":-121.314099369,"alt":1125.208,"epx":1.511,"epy":1.511,"epv":3.260,"track":217.9008,"speed":0.013,"climb":0.001,"eps":0.03,"epc":141.25,"ecefx":-2386055.42,"ecefy":-3922197.15,"ecefz":4414355.20,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":-0.01,"ecefpAcc":1.59,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":41,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212941,1.51,M,1.51,M,3.25,M*37
+$GPGSV,4,1,15,81,28,124,40,94,34,072,49,11,28,102,46,08,29,048,43*79
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,35*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:41.000Z","ept":0.005,"lat":44.068789249,"lon":-121.314099561,"alt":1125.170,"epx":1.507,"epy":1.507,"epv":3.251,"track":250.6047,"speed":0.010,"climb":-0.003,"eps":0.03,"epc":141.11,"ecefx":-2386055.42,"ecefy":-3922197.12,"ecefz":4414355.18,"ecefvx":-0.01,"ecefvy":0.00,"ecefvz":-0.00,"ecefpAcc":1.59,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":40,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212941,1.49,M,1.49,M,3.22,M*30
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:41.250Z","ept":0.005,"lat":44.068789231,"lon":-121.314099789,"alt":1125.135,"epx":1.491,"epy":1.491,"epv":3.217,"track":132.1819,"speed":0.011,"climb":0.017,"eps":0.03,"epc":141.08,"ecefx":-2386055.42,"ecefy":-3922197.09,"ecefz":4414355.15,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":0.01,"ecefpAcc":1.57,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212941,1.49,M,1.49,M,3.22,M*30
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:41.500Z","ept":0.005,"lat":44.068789331,"lon":-121.314099877,"alt":1125.110,"epx":1.493,"epy":1.493,"epv":3.221,"track":154.9352,"speed":0.009,"climb":0.004,"eps":0.03,"epc":140.95,"ecefx":-2386055.42,"ecefy":-3922197.06,"ecefz":4414355.14,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.57,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212941,1.49,M,1.49,M,3.22,M*30
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,35*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:41.750Z","ept":0.005,"lat":44.068789465,"lon":-121.314100016,"alt":1125.094,"epx":1.493,"epy":1.493,"epv":3.221,"track":336.6704,"speed":0.003,"climb":0.007,"eps":0.03,"epc":140.97,"ecefx":-2386055.41,"ecefy":-3922197.04,"ecefz":4414355.14,"ecefvx":-0.00,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":1.57,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212942,1.49,M,1.49,M,3.22,M*33
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,35*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:42.000Z","ept":0.005,"lat":44.068789552,"lon":-121.314100065,"alt":1125.082,"epx":1.494,"epy":1.494,"epv":3.223,"track":126.7951,"speed":0.013,"climb":0.007,"eps":0.02,"epc":140.97,"ecefx":-2386055.41,"ecefy":-3922197.02,"ecefz":4414355.14,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.57,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212942,1.49,M,1.49,M,3.21,M*30
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,35*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:42.250Z","ept":0.005,"lat":44.068789557,"lon":-121.314100062,"alt":1125.083,"epx":1.489,"epy":1.489,"epv":3.212,"track":221.7634,"speed":0.010,"climb":0.009,"eps":0.02,"epc":140.99,"ecefx":-2386055.41,"ecefy":-3922197.02,"ecefz":4414355.14,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":1.57,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212942,1.49,M,1.49,M,3.21,M*30
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,45*4D
+$GPGSV,4,4,15,135,38,196,46,138,37,160,49,01,07,108,35*40
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:42.500Z","ept":0.005,"lat":44.068789547,"lon":-121.314100006,"alt":1125.078,"epx":1.486,"epy":1.486,"epv":3.207,"track":143.3294,"speed":0.023,"climb":0.014,"eps":0.05,"epc":140.95,"ecefx":-2386055.40,"ecefy":-3922197.02,"ecefz":4414355.14,"ecefvx":0.00,"ecefvy":-0.03,"ecefvz":-0.00,"ecefpAcc":1.56,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212942,1.48,M,1.48,M,3.20,M*31
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,46,13,40,306,40,17,20,186,44,28,77,278,50*46
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,35*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:42.750Z","ept":0.005,"lat":44.068789588,"lon":-121.314100037,"alt":1125.068,"epx":1.481,"epy":1.481,"epv":3.195,"track":125.3918,"speed":0.038,"climb":0.050,"eps":0.07,"epc":140.93,"ecefx":-2386055.40,"ecefy":-3922197.01,"ecefz":4414355.14,"ecefvx":-0.00,"ecefvy":-0.06,"ecefvz":0.02,"ecefpAcc":1.56,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212943,1.48,M,1.48,M,3.19,M*3A
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,47,13,40,306,40,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,46*4E
+$GPGSV,4,4,15,135,38,196,48,138,37,160,49,01,07,108,35*4E
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:43.000Z","ept":0.005,"lat":44.068789541,"lon":-121.314100057,"alt":1125.052,"epx":1.478,"epy":1.478,"epv":3.190,"track":155.1502,"speed":0.017,"climb":0.005,"eps":0.05,"epc":140.89,"ecefx":-2386055.40,"ecefy":-3922197.01,"ecefz":4414355.12,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":-0.01,"ecefpAcc":1.56,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":47,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":48,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212943,1.49,M,1.49,M,3.21,M*31
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,43*78
+$GPGSV,4,2,15,133,39,192,47,13,40,306,40,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,45*4D
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,35*41
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:43.250Z","ept":0.005,"lat":44.068789647,"lon":-121.314100110,"alt":1125.042,"epx":1.487,"epy":1.487,"epv":3.210,"track":158.3930,"speed":0.029,"climb":-0.006,"eps":0.05,"epc":140.87,"ecefx":-2386055.39,"ecefy":-3922196.99,"ecefz":4414355.12,"ecefvx":0.00,"ecefvy":-0.02,"ecefvz":-0.02,"ecefpAcc":1.57,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":47,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,81,94,11,8,13,17,28,30,7,18,131,,1.7,0.9,1.4*04
+$GPGBS,212943,1.48,M,1.48,M,3.20,M*30
+$GPGSV,4,1,15,81,28,124,41,94,34,072,49,11,28,102,46,08,29,048,44*7F
+$GPGSV,4,2,15,133,39,192,47,13,40,306,40,17,20,186,44,28,77,278,50*47
+$GPGSV,4,3,15,30,75,076,55,07,49,102,50,18,12,086,41,131,39,174,45*4D
+$GPGSV,4,4,15,135,38,196,47,138,37,160,49,01,07,108,36*42
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:43.500Z","ept":0.005,"lat":44.068789683,"lon":-121.314100149,"alt":1125.028,"epx":1.481,"epy":1.481,"epv":3.197,"track":128.1834,"speed":0.018,"climb":0.035,"eps":0.05,"epc":140.96,"ecefx":-2386055.39,"ecefy":-3922196.98,"ecefz":4414355.12,"ecefvx":-0.01,"ecefvy":-0.04,"ecefvz":0.02,"ecefpAcc":1.56,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.78,"vdop":1.39,"tdop":1.01,"hdop":0.93,"gdop":2.03,"pdop":1.67,"satellites":[{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":47,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212943,1.43,M,1.43,M,3.09,M*3B
+$GPGSV,4,1,16,82,27,064,34,81,28,124,41,94,34,072,50,11,28,102,46*71
+$GPGSV,4,2,16,08,29,048,44,133,39,192,47,13,40,306,40,17,20,186,44*49
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:43.750Z","ept":0.005,"lat":44.068789689,"lon":-121.314100224,"alt":1125.012,"epx":1.429,"epy":1.429,"epv":3.087,"track":151.9023,"speed":0.020,"climb":0.010,"eps":0.06,"epc":140.91,"ecefx":-2386055.39,"ecefy":-3922196.96,"ecefz":4414355.10,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":-0.01,"ecefpAcc":1.51,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":34,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":47,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212944,1.42,M,1.42,M,3.08,M*3D
+$GPGSV,4,1,16,82,27,064,35,81,28,124,41,94,34,072,49,11,28,102,46*78
+$GPGSV,4,2,16,08,29,048,43,133,39,192,46,13,40,306,40,17,20,186,44*4F
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:44.000Z","ept":0.005,"lat":44.068789647,"lon":-121.314100220,"alt":1125.011,"epx":1.423,"epy":1.423,"epv":3.076,"track":186.8177,"speed":0.010,"climb":0.004,"eps":0.04,"epc":139.39,"ecefx":-2386055.39,"ecefy":-3922196.97,"ecefz":4414355.10,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.50,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":35,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212944,1.42,M,1.42,M,3.07,M*32
+$GPGSV,4,1,16,82,27,064,36,81,28,124,41,94,34,072,49,11,28,102,46*7B
+$GPGSV,4,2,16,08,29,048,43,133,39,192,46,13,40,306,40,17,20,186,44*4F
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:44.250Z","ept":0.005,"lat":44.068789615,"lon":-121.314100281,"alt":1125.007,"epx":1.419,"epy":1.419,"epv":3.067,"track":183.8412,"speed":0.014,"climb":0.007,"eps":0.03,"epc":139.35,"ecefx":-2386055.39,"ecefy":-3922196.96,"ecefz":4414355.10,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":-0.01,"ecefpAcc":1.50,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":36,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":49,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212944,1.41,M,1.41,M,3.06,M*33
+$GPGSV,4,1,16,82,27,064,36,81,28,124,41,94,34,072,50,11,28,102,46*73
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:44.500Z","ept":0.005,"lat":44.068789648,"lon":-121.314100331,"alt":1125.007,"epx":1.415,"epy":1.415,"epv":3.059,"track":291.7415,"speed":0.011,"climb":-0.015,"eps":0.02,"epc":139.32,"ecefx":-2386055.40,"ecefy":-3922196.96,"ecefz":4414355.10,"ecefvx":-0.00,"ecefvy":0.02,"ecefvz":-0.01,"ecefpAcc":1.49,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":36,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212944,1.42,M,1.42,M,3.07,M*32
+$GPGSV,4,1,16,82,27,064,37,81,28,124,42,94,34,072,50,11,28,102,46*71
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:44.750Z","ept":0.005,"lat":44.068789734,"lon":-121.314100413,"alt":1125.012,"epx":1.419,"epy":1.419,"epv":3.069,"track":255.5419,"speed":0.015,"climb":0.007,"eps":0.03,"epc":139.30,"ecefx":-2386055.40,"ecefy":-3922196.95,"ecefz":4414355.11,"ecefvx":-0.02,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":1.50,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":37,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212945,1.42,M,1.42,M,3.07,M*33
+$GPGSV,4,1,16,82,27,064,37,81,28,124,41,94,34,072,50,11,28,102,46*72
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:45.000Z","ept":0.005,"lat":44.068789739,"lon":-121.314100392,"alt":1125.022,"epx":1.419,"epy":1.419,"epv":3.070,"track":158.8070,"speed":0.025,"climb":0.029,"eps":0.03,"epc":139.34,"ecefx":-2386055.40,"ecefy":-3922196.96,"ecefz":4414355.12,"ecefvx":-0.01,"ecefvy":-0.04,"ecefvz":0.00,"ecefpAcc":1.50,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":37,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212945,1.42,M,1.42,M,3.08,M*3C
+$GPGSV,4,1,16,82,27,064,37,81,28,124,42,94,34,072,50,11,28,102,46*71
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,45,135,38,196,47,138,37,160,49,01,07,108,35*48
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:45.250Z","ept":0.005,"lat":44.068789764,"lon":-121.314100292,"alt":1125.034,"epx":1.422,"epy":1.422,"epv":3.078,"track":165.9107,"speed":0.015,"climb":0.001,"eps":0.04,"epc":139.35,"ecefx":-2386055.40,"ecefy":-3922196.97,"ecefz":4414355.13,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.01,"ecefpAcc":1.50,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":37,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212945,1.42,M,1.42,M,3.08,M*3C
+$GPGSV,4,1,16,82,27,064,38,81,28,124,42,94,34,072,50,11,28,102,46*7E
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:45.500Z","ept":0.005,"lat":44.068789730,"lon":-121.314100194,"alt":1125.029,"epx":1.423,"epy":1.423,"epv":3.080,"track":182.5198,"speed":0.021,"climb":0.008,"eps":0.03,"epc":139.38,"ecefx":-2386055.39,"ecefy":-3922196.97,"ecefz":4414355.12,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":-0.01,"ecefpAcc":1.50,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":38,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212945,1.42,M,1.42,M,3.08,M*3C
+$GPGSV,4,1,16,82,27,064,38,81,28,124,42,94,34,072,50,11,28,102,46*7E
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:45.750Z","ept":0.005,"lat":44.068789751,"lon":-121.314100204,"alt":1125.031,"epx":1.424,"epy":1.424,"epv":3.083,"track":165.7681,"speed":0.011,"climb":0.004,"eps":0.04,"epc":139.39,"ecefx":-2386055.39,"ecefy":-3922196.97,"ecefz":4414355.12,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.50,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":38,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212946,1.43,M,1.43,M,3.10,M*36
+$GPGSV,4,1,16,82,27,064,38,81,28,124,42,94,34,072,50,11,28,102,46*7E
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:46.000Z","ept":0.005,"lat":44.068789771,"lon":-121.314100166,"alt":1125.036,"epx":1.430,"epy":1.430,"epv":3.099,"track":179.2276,"speed":0.034,"climb":0.015,"eps":0.06,"epc":139.41,"ecefx":-2386055.39,"ecefy":-3922196.98,"ecefz":4414355.13,"ecefvx":-0.02,"ecefvy":-0.03,"ecefvz":-0.01,"ecefpAcc":1.51,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":38,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212946,1.43,M,1.43,M,3.10,M*36
+$GPGSV,4,1,16,82,27,064,39,81,28,124,41,94,34,072,50,11,28,102,46*7C
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:46.250Z","ept":0.005,"lat":44.068789769,"lon":-121.314100078,"alt":1125.038,"epx":1.429,"epy":1.429,"epv":3.097,"track":180.5602,"speed":0.028,"climb":0.001,"eps":0.04,"epc":139.48,"ecefx":-2386055.39,"ecefy":-3922196.98,"ecefz":4414355.13,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":-0.02,"ecefpAcc":1.51,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":39,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212946,1.43,M,1.43,M,3.10,M*36
+$GPGSV,4,1,16,82,27,064,39,81,28,124,42,94,34,072,50,11,28,102,46*7F
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:46.500Z","ept":0.005,"lat":44.068789740,"lon":-121.314100025,"alt":1125.031,"epx":1.429,"epy":1.429,"epv":3.098,"track":179.1814,"speed":0.025,"climb":-0.011,"eps":0.05,"epc":139.48,"ecefx":-2386055.38,"ecefy":-3922196.98,"ecefz":4414355.12,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.03,"ecefpAcc":1.51,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":39,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212946,1.43,M,1.43,M,3.10,M*36
+$GPGSV,4,1,16,82,27,064,39,81,28,124,42,94,34,072,50,11,28,102,46*7F
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:46.750Z","ept":0.005,"lat":44.068789787,"lon":-121.314100087,"alt":1125.025,"epx":1.430,"epy":1.430,"epv":3.102,"track":189.2821,"speed":0.021,"climb":0.011,"eps":0.03,"epc":139.48,"ecefx":-2386055.38,"ecefy":-3922196.97,"ecefz":4414355.12,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":-0.01,"ecefpAcc":1.51,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":39,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212947,1.43,M,1.43,M,3.10,M*37
+$GPGSV,4,1,16,82,27,064,39,81,28,124,41,94,34,072,50,11,28,102,46*7C
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:47.000Z","ept":0.005,"lat":44.068789782,"lon":-121.314100139,"alt":1125.031,"epx":1.430,"epy":1.430,"epv":3.104,"track":241.4621,"speed":0.012,"climb":-0.016,"eps":0.03,"epc":139.50,"ecefx":-2386055.39,"ecefy":-3922196.97,"ecefz":4414355.13,"ecefvx":-0.01,"ecefvy":0.01,"ecefvz":-0.02,"ecefpAcc":1.51,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":39,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212947,1.43,M,1.43,M,3.11,M*36
+$GPGSV,4,1,16,82,27,064,40,81,28,124,41,94,34,072,50,11,28,102,46*72
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:47.250Z","ept":0.005,"lat":44.068789798,"lon":-121.314100215,"alt":1125.024,"epx":1.433,"epy":1.433,"epv":3.113,"track":168.8478,"speed":0.026,"climb":0.036,"eps":0.03,"epc":139.52,"ecefx":-2386055.39,"ecefy":-3922196.97,"ecefz":4414355.12,"ecefvx":-0.02,"ecefvy":-0.04,"ecefvz":0.01,"ecefpAcc":1.52,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":40,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212947,1.43,M,1.43,M,3.11,M*36
+$GPGSV,4,1,16,82,27,064,40,81,28,124,42,94,34,072,50,11,28,102,46*71
+$GPGSV,4,2,16,08,29,048,43,133,39,192,46,13,40,306,40,17,20,186,44*4F
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,45,135,38,196,46,138,37,160,49,01,07,108,35*49
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:47.500Z","ept":0.005,"lat":44.068789937,"lon":-121.314100269,"alt":1125.000,"epx":1.433,"epy":1.433,"epv":3.113,"track":174.4074,"speed":0.014,"climb":0.023,"eps":0.02,"epc":139.56,"ecefx":-2386055.38,"ecefy":-3922196.94,"ecefz":4414355.12,"ecefvx":-0.01,"ecefvy":-0.02,"ecefvz":0.01,"ecefpAcc":1.52,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":40,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212947,1.43,M,1.43,M,3.11,M*36
+$GPGSV,4,1,16,82,27,064,40,81,28,124,42,94,34,072,50,11,28,102,46*71
+$GPGSV,4,2,16,08,29,048,43,133,39,192,46,13,40,306,40,17,20,186,44*4F
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,50,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:47.750Z","ept":0.005,"lat":44.068789991,"lon":-121.314100225,"alt":1124.990,"epx":1.431,"epy":1.431,"epv":3.111,"track":320.9271,"speed":0.012,"climb":-0.009,"eps":0.03,"epc":139.56,"ecefx":-2386055.37,"ecefy":-3922196.93,"ecefz":4414355.11,"ecefvx":0.00,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":1.51,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":40,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212948,1.43,M,1.43,M,3.12,M*3A
+$GPGSV,4,1,16,82,27,064,40,81,28,124,41,94,34,072,50,11,28,102,46*72
+$GPGSV,4,2,16,08,29,048,44,133,39,192,46,13,40,306,40,17,20,186,44*48
+$GPGSV,4,3,16,28,77,278,50,30,75,076,55,07,49,102,51,18,12,086,41*77
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,36*48
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:48.000Z","ept":0.005,"lat":44.068790061,"lon":-121.314100136,"alt":1124.989,"epx":1.433,"epy":1.433,"epv":3.117,"track":187.9245,"speed":0.008,"climb":0.002,"eps":0.03,"epc":139.56,"ecefx":-2386055.36,"ecefy":-3922196.93,"ecefz":4414355.12,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.52,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":40,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":44,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":55,"used":true},{"PRN":7,"el":49,"az":102,"ss":51,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":36,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212948,1.43,M,1.43,M,3.12,M*3A
+$GPGSV,4,1,16,82,27,064,40,81,28,124,41,94,34,072,50,11,28,102,46*72
+$GPGSV,4,2,16,08,29,048,43,133,39,192,46,13,40,306,40,17,20,186,44*4F
+$GPGSV,4,3,16,28,77,278,50,30,75,076,54,07,49,102,50,18,12,086,41*77
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,49,01,07,108,35*4B
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:48.250Z","ept":0.005,"lat":44.068790084,"lon":-121.314100078,"alt":1124.980,"epx":1.434,"epy":1.434,"epv":3.120,"track":118.4276,"speed":0.007,"climb":0.018,"eps":0.03,"epc":139.59,"ecefx":-2386055.35,"ecefy":-3922196.92,"ecefz":4414355.11,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":0.01,"ecefpAcc":1.52,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":40,"used":true},{"PRN":81,"el":28,"az":124,"ss":41,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":44,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":54,"used":true},{"PRN":7,"el":49,"az":102,"ss":50,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":49,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
+$GPGSA,A,3,82,81,94,11,8,13,17,28,30,7,18,,1.7,0.9,1.4*3D
+$GPGBS,212948,1.44,M,1.44,M,3.13,M*3B
+$GPGSV,4,1,16,82,27,064,40,81,28,124,42,94,34,072,50,11,28,102,46*71
+$GPGSV,4,2,16,08,29,048,43,133,39,192,46,13,40,306,40,17,20,186,45*4E
+$GPGSV,4,3,16,28,77,278,50,30,75,076,54,07,49,102,51,18,12,086,41*76
+$GPGSV,4,4,16,131,39,174,46,135,38,196,47,138,37,160,48,01,07,108,35*4A
+{"class":"TPV","mode":3,"time":"2018-03-29T21:29:48.500Z","ept":0.005,"lat":44.068790111,"lon":-121.314100032,"alt":1124.966,"epx":1.440,"epy":1.440,"epv":3.132,"track":148.2200,"speed":0.019,"climb":0.012,"eps":0.02,"epc":139.60,"ecefx":-2386055.34,"ecefy":-3922196.92,"ecefz":4414355.11,"ecefvx":-0.00,"ecefvy":-0.02,"ecefvz":-0.00,"ecefpAcc":1.52,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.69,"ydop":0.74,"vdop":1.38,"tdop":1.00,"hdop":0.91,"gdop":2.01,"pdop":1.66,"satellites":[{"PRN":82,"el":27,"az":64,"ss":40,"used":true},{"PRN":81,"el":28,"az":124,"ss":42,"used":true},{"PRN":94,"el":34,"az":72,"ss":50,"used":true},{"PRN":11,"el":28,"az":102,"ss":46,"used":true},{"PRN":8,"el":29,"az":48,"ss":43,"used":true},{"PRN":133,"el":39,"az":192,"ss":46,"used":false},{"PRN":13,"el":40,"az":306,"ss":40,"used":true},{"PRN":17,"el":20,"az":186,"ss":45,"used":true},{"PRN":28,"el":77,"az":278,"ss":50,"used":true},{"PRN":30,"el":75,"az":76,"ss":54,"used":true},{"PRN":7,"el":49,"az":102,"ss":51,"used":true},{"PRN":18,"el":12,"az":86,"ss":41,"used":true},{"PRN":131,"el":39,"az":174,"ss":46,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":138,"el":37,"az":160,"ss":48,"used":true},{"PRN":1,"el":7,"az":108,"ss":35,"used":true}]}
diff --git a/test/daemon/greis-test.log b/test/daemon/greis-test.log
new file mode 100644
index 00000000..96a1ae3b
--- /dev/null
+++ b/test/daemon/greis-test.log
Binary files differ
diff --git a/test/daemon/greis-test.log.chk b/test/daemon/greis-test.log.chk
new file mode 100644
index 00000000..909a8240
--- /dev/null
+++ b/test/daemon/greis-test.log.chk
@@ -0,0 +1,308 @@
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.14,M,1.14,M,3.14,M*38
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,43,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,46,15,30,298,43,30,48,122,48,01,23,080,42*7F
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,40,140,47*74
+{"class":"TPV","mode":3,"lat":44.068809013,"lon":-121.314096779,"alt":1123.727,"epx":1.142,"epy":1.142,"epv":3.138,"track":25.0225,"speed":0.008,"climb":-0.002,"eps":0.01,"ecefx":-2386053.90,"ecefy":-3922195.04,"ecefz":4414355.75,"ecefvx":0.01,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":1.44,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.61,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":43,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":43,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":40,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.14,M,1.14,M,3.13,M*3F
+$GPGSV,5,1,18,131,39,174,45,135,38,196,47,79,08,206,41,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,46,15,30,298,43,30,48,122,48,01,23,080,42*7F
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,40,140,47*74
+{"class":"TPV","mode":3,"lat":44.068809026,"lon":-121.314096799,"alt":1123.732,"epx":1.140,"epy":1.140,"epv":3.132,"track":309.0270,"speed":0.001,"climb":-0.002,"eps":0.02,"ecefx":-2386053.90,"ecefy":-3922195.04,"ecefz":4414355.76,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":-0.00,"ecefpAcc":1.44,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.61,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":43,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":40,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.14,M,1.14,M,3.13,M*3F
+$GPGSV,5,1,18,131,39,174,45,135,38,196,47,79,08,206,41,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,43,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,46,15,30,298,43,30,48,122,48,01,23,080,42*7F
+$GPGSV,5,4,18,28,67,038,46,138,37,160,47,133,39,192,45,94,69,326,44*7C
+$GPGSV,5,5,18,17,53,186,47,82,40,140,47*74
+{"class":"TPV","mode":3,"lat":44.068809023,"lon":-121.314096795,"alt":1123.731,"epx":1.139,"epy":1.139,"epv":3.131,"track":83.8207,"speed":0.008,"climb":-0.005,"eps":0.02,"ecefx":-2386053.90,"ecefy":-3922195.04,"ecefz":4414355.76,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":1.44,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.61,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":43,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":43,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":47,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":40,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.14,M,1.14,M,3.13,M*3F
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,46,15,30,298,43,30,48,122,48,01,23,080,42*7F
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,40,140,47*74
+{"class":"TPV","mode":3,"lat":44.068809032,"lon":-121.314096770,"alt":1123.739,"epx":1.137,"epy":1.137,"epv":3.126,"track":54.2451,"speed":0.008,"climb":0.002,"eps":0.02,"ecefx":-2386053.90,"ecefy":-3922195.05,"ecefz":4414355.76,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":1.43,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.61,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":43,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":40,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.14,M,1.14,M,3.12,M*3E
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,43,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,42*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809010,"lon":-121.314096763,"alt":1123.743,"epx":1.136,"epy":1.136,"epv":3.123,"track":1.3779,"speed":0.004,"climb":0.009,"eps":0.01,"ecefx":-2386053.90,"ecefy":-3922195.05,"ecefz":4414355.76,"ecefvx":-0.00,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":1.43,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":43,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.14,M,1.14,M,3.12,M*3E
+$GPGSV,5,1,18,131,39,174,45,135,38,196,47,79,08,206,41,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,43,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,43*79
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809034,"lon":-121.314096725,"alt":1123.750,"epx":1.135,"epy":1.135,"epv":3.121,"track":84.8268,"speed":0.007,"climb":0.013,"eps":0.02,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.77,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":1.43,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":47,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":43,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,6.81,M,8.86,M,27.32,M*03
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,42*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,47,133,39,192,45,94,69,326,44*7C
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809038,"lon":-121.314096717,"alt":1123.748,"epx":6.812,"epy":8.860,"epv":27.325,"track":43.6643,"speed":0.009,"climb":0.000,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.77,"ecefvx":0.01,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":1.43,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":47,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.13,M,1.13,M,3.12,M*3E
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,42*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809031,"lon":-121.314096692,"alt":1123.751,"epx":1.135,"epy":1.135,"epv":3.119,"track":144.3912,"speed":0.015,"climb":0.003,"eps":0.02,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.77,"ecefvx":0.00,"ecefvy":-0.01,"ecefvz":-0.01,"ecefpAcc":1.43,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.13,M,1.13,M,3.11,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,42*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809047,"lon":-121.314096684,"alt":1123.750,"epx":1.133,"epy":1.133,"epv":3.114,"track":90.5884,"speed":0.007,"climb":0.002,"eps":0.03,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.77,"ecefvx":0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":1.43,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.13,M,1.13,M,3.11,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,43,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,43*79
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809047,"lon":-121.314096680,"alt":1123.754,"epx":1.132,"epy":1.132,"epv":3.112,"track":109.7432,"speed":0.009,"climb":-0.003,"eps":0.03,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.78,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":1.43,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":43,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+{"class":"TPV","mode":3,"lat":44.068809051,"lon":-121.314096675,"alt":1123.752,"epx":1.131,"epy":1.131,"epv":3.108,"track":347.8175,"speed":0.005,"climb":-0.002,"eps":0.03,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.77,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":1.43,"ecefvAcc":0.02}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.13,M,1.13,M,3.10,M*3C
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,43*79
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809062,"lon":-121.314096655,"alt":1123.754,"epx":1.128,"epy":1.128,"epv":3.101,"track":0.0257,"speed":0.009,"climb":-0.012,"eps":0.02,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.78,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":-0.00,"ecefpAcc":1.42,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+{"class":"TPV","mode":3,"lat":44.068809084,"lon":-121.314096645,"alt":1123.752,"epx":1.125,"epy":1.125,"epv":3.092,"track":20.8831,"speed":0.010,"climb":-0.001,"eps":0.03,"ecefx":-2386053.89,"ecefy":-3922195.06,"ecefz":4414355.78,"ecefvx":0.01,"ecefvy":0.00,"ecefvz":0.01,"ecefpAcc":1.42,"ecefvAcc":0.03}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.12,M,1.12,M,3.08,M*35
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,43,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809096,"lon":-121.314096615,"alt":1123.758,"epx":1.122,"epy":1.122,"epv":3.084,"track":44.5163,"speed":0.015,"climb":0.002,"eps":0.03,"ecefx":-2386053.89,"ecefy":-3922195.06,"ecefz":4414355.78,"ecefvx":0.01,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":1.42,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":43,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+{"class":"TPV","mode":3,"lat":44.068809124,"lon":-121.314096630,"alt":1123.760,"epx":1.120,"epy":1.120,"epv":3.077,"track":347.8254,"speed":0.003,"climb":0.006,"eps":0.02,"ecefx":-2386053.90,"ecefy":-3922195.06,"ecefz":4414355.79,"ecefvx":-0.00,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":1.41,"ecefvAcc":0.02}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.12,M,1.12,M,3.07,M*3A
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809143,"lon":-121.314096624,"alt":1123.762,"epx":1.115,"epy":1.115,"epv":3.065,"track":10.5222,"speed":0.006,"climb":-0.000,"eps":0.02,"ecefx":-2386053.89,"ecefy":-3922195.06,"ecefz":4414355.79,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":1.41,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+{"class":"TPV","mode":3,"lat":44.068809166,"lon":-121.314096609,"alt":1123.764,"epx":1.112,"epy":1.112,"epv":3.055,"track":5.7631,"speed":0.016,"climb":-0.007,"eps":0.03,"ecefx":-2386053.89,"ecefy":-3922195.06,"ecefz":4414355.79,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":0.01,"ecefpAcc":1.40,"ecefvAcc":0.02}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.11,M,1.11,M,3.05,M*38
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,42,13,51,262,47*71
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,43*79
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809188,"lon":-121.314096622,"alt":1123.763,"epx":1.110,"epy":1.110,"epv":3.049,"track":357.2622,"speed":0.003,"climb":-0.003,"eps":0.02,"ecefx":-2386053.89,"ecefy":-3922195.06,"ecefz":4414355.79,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":-0.00,"ecefpAcc":1.40,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,43*79
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809203,"lon":-121.314096629,"alt":1123.757,"epx":1.106,"epy":1.106,"epv":3.039,"track":24.5535,"speed":0.009,"climb":-0.004,"eps":0.02,"ecefx":-2386053.89,"ecefy":-3922195.06,"ecefz":4414355.79,"ecefvx":0.01,"ecefvy":0.01,"ecefvz":0.00,"ecefpAcc":1.40,"ecefvAcc":0.02}
+{"class":"SKY","vdop":1.19,"tdop":0.80,"hdop":0.70,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":false},{"PRN":135,"el":38,"az":196,"ss":46,"used":false},{"PRN":79,"el":8,"az":206,"ss":41,"used":false},{"PRN":11,"el":31,"az":66,"ss":47,"used":false},{"PRN":7,"el":21,"az":126,"ss":47,"used":false},{"PRN":18,"el":18,"az":56,"ss":35,"used":false},{"PRN":75,"el":26,"az":254,"ss":42,"used":false},{"PRN":13,"el":51,"az":262,"ss":47,"used":false},{"PRN":19,"el":31,"az":196,"ss":46,"used":false},{"PRN":15,"el":30,"az":298,"ss":44,"used":false},{"PRN":30,"el":48,"az":122,"ss":48,"used":false},{"PRN":1,"el":23,"az":80,"ss":43,"used":false},{"PRN":28,"el":67,"az":38,"ss":46,"used":false},{"PRN":138,"el":37,"az":160,"ss":46,"used":false},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":false},{"PRN":17,"el":53,"az":186,"ss":47,"used":false},{"PRN":82,"el":41,"az":140,"ss":47,"used":false}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.04,M*39
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,34,75,26,254,43,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809202,"lon":-121.314096636,"alt":1123.759,"epx":1.104,"epy":1.104,"epv":3.036,"track":329.3512,"speed":0.002,"climb":0.001,"eps":0.02,"ecefx":-2386053.89,"ecefy":-3922195.06,"ecefz":4414355.79,"ecefvx":-0.00,"ecefvy":0.00,"ecefvz":0.00,"ecefpAcc":1.39,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":34,"used":true},{"PRN":75,"el":26,"az":254,"ss":43,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.03,M*3E
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,46,15,30,298,44,30,48,122,48,01,23,080,43*79
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809217,"lon":-121.314096648,"alt":1123.759,"epx":1.102,"epy":1.102,"epv":3.028,"track":345.3285,"speed":0.000,"climb":-0.004,"eps":0.01,"ecefx":-2386053.89,"ecefy":-3922195.05,"ecefz":4414355.79,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":-0.00,"ecefpAcc":1.39,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":46,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.02,M*3F
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,42*79
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809237,"lon":-121.314096662,"alt":1123.762,"epx":1.097,"epy":1.097,"epv":3.016,"track":20.0759,"speed":0.008,"climb":0.012,"eps":0.02,"ecefx":-2386053.89,"ecefy":-3922195.05,"ecefz":4414355.80,"ecefvx":0.00,"ecefvy":-0.00,"ecefvz":0.01,"ecefpAcc":1.38,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":42,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.00,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809257,"lon":-121.314096701,"alt":1123.755,"epx":1.093,"epy":1.093,"epv":3.005,"track":320.0172,"speed":0.013,"climb":0.007,"eps":0.03,"ecefx":-2386053.89,"ecefy":-3922195.05,"ecefz":4414355.79,"ecefvx":-0.01,"ecefvy":0.01,"ecefvz":0.01,"ecefpAcc":1.38,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.00,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809265,"lon":-121.314096739,"alt":1123.750,"epx":1.091,"epy":1.091,"epv":2.999,"track":303.7154,"speed":0.016,"climb":-0.005,"eps":0.02,"ecefx":-2386053.89,"ecefy":-3922195.04,"ecefz":4414355.79,"ecefvx":-0.01,"ecefvy":0.02,"ecefvz":0.00,"ecefpAcc":1.38,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,2.99,M*3C
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809263,"lon":-121.314096756,"alt":1123.748,"epx":1.090,"epy":1.090,"epv":2.995,"track":231.6439,"speed":0.010,"climb":-0.022,"eps":0.03,"ecefx":-2386053.89,"ecefy":-3922195.04,"ecefz":4414355.79,"ecefvx":-0.00,"ecefvy":0.01,"ecefvz":-0.02,"ecefpAcc":1.37,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.00,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809261,"lon":-121.314096823,"alt":1123.745,"epx":1.091,"epy":1.091,"epv":2.998,"track":222.0091,"speed":0.011,"climb":0.012,"eps":0.03,"ecefx":-2386053.90,"ecefy":-3922195.04,"ecefz":4414355.79,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":1.38,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.00,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809268,"lon":-121.314096874,"alt":1123.740,"epx":1.092,"epy":1.092,"epv":3.002,"track":232.0213,"speed":0.009,"climb":0.011,"eps":0.05,"ecefx":-2386053.90,"ecefy":-3922195.03,"ecefz":4414355.78,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":1.38,"ecefvAcc":0.04}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.00,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"lat":44.068809230,"lon":-121.314096936,"alt":1123.735,"epx":1.091,"epy":1.091,"epv":2.998,"track":183.4138,"speed":0.005,"climb":-0.010,"eps":0.03,"ecefx":-2386053.90,"ecefy":-3922195.03,"ecefz":4414355.78,"ecefvx":0.00,"ecefvy":0.00,"ecefvz":-0.01,"ecefpAcc":1.38,"ecefvAcc":0.03}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.00,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809223,"lon":-121.314096970,"alt":1123.730,"epx":1.091,"epy":1.091,"epv":3.001,"track":217.9745,"speed":0.006,"climb":-0.001,"eps":0.03,"ecefx":-2386053.90,"ecefy":-3922195.02,"ecefz":4414355.77,"ecefvx":-0.00,"ecefvy":-0.00,"ecefvz":-0.00,"ecefpAcc":1.38,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.00,M*3D
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"epx":1.091,"epy":1.091,"epv":3.001,"eps":0.01,"ecefy":-3922195.03,"ecefz":4414355.77,"ecefvx":-0.02,"ecefvy":-0.02,"ecefvz":0.01,"ecefpAcc":1.38,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.01,M*3C
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"lat":44.068809186,"lon":-121.314097004,"alt":1123.727,"epx":1.093,"epy":1.093,"epv":3.006,"track":255.0720,"speed":0.012,"climb":0.009,"eps":0.01,"ecefx":-2386053.91,"ecefy":-3922195.02,"ecefz":4414355.77,"ecefvx":-0.01,"ecefvy":-0.00,"ecefvz":0.00,"ecefpAcc":1.38,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.09,M,1.09,M,3.01,M*3C
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"epx":1.094,"epy":1.094,"epv":3.007,"eps":0.01,"ecefy":-3922195.02,"ecefz":4414355.77,"ecefvx":-0.00,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.38,"ecefvAcc":0.01}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.01,M*3C
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,36,75,26,254,42,13,51,262,47*73
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"lat":44.068809145,"lon":-121.314097010,"alt":1123.723,"epx":1.096,"epy":1.096,"epv":3.013,"track":195.5423,"speed":0.015,"climb":0.009,"eps":0.02,"ecefx":-2386053.91,"ecefy":-3922195.02,"ecefz":4414355.76,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.38,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":36,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.02,M*3F
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,36,75,26,254,42,13,51,262,47*73
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"lat":0.000000000,"lon":-90.000000000,"epx":1.097,"epy":1.097,"epv":3.017,"track":251.6971,"speed":0.013,"climb":0.012,"eps":0.02,"ecefx":-2386053.91,"ecefz":4414355.76,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":-0.00,"ecefpAcc":1.38,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":36,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.02,M*3F
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"lat":44.068809123,"lon":-121.314097044,"alt":1123.718,"epx":1.099,"epy":1.099,"epv":3.022,"track":220.0046,"speed":0.010,"climb":-0.004,"eps":0.02,"ecefx":-2386053.91,"ecefy":-3922195.02,"ecefz":4414355.76,"ecefvx":-0.01,"ecefvy":0.00,"ecefvz":-0.01,"ecefpAcc":1.39,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.03,M*3E
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,41,11,31,066,47*78
+$GPGSV,5,2,18,07,21,126,47,18,18,056,35,75,26,254,42,13,51,262,47*70
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"lat":44.068809118,"lon":-121.314097059,"alt":1123.714,"epx":1.101,"epy":1.101,"epv":3.026,"track":217.0212,"speed":0.009,"climb":0.014,"eps":0.02,"ecefx":-2386053.91,"ecefy":-3922195.02,"ecefz":4414355.75,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.00,"ecefpAcc":1.39,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":41,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":35,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.02,M*3F
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,36,75,26,254,42,13,51,262,47*73
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,48*7A
+{"class":"TPV","mode":3,"lat":44.068809118,"lon":-121.314097075,"alt":1123.714,"epx":1.100,"epy":1.100,"epv":3.023,"track":294.2972,"speed":0.005,"climb":0.014,"eps":0.02,"ecefx":-2386053.91,"ecefy":-3922195.02,"ecefz":4414355.75,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":1.39,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":36,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":48,"used":true}]}
+$GPGSA,A,3,131,135,79,11,7,18,75,13,19,15,30,1,1.4,0.7,1.2*39
+$GPGBS,000000,1.10,M,1.10,M,3.03,M*3E
+$GPGSV,5,1,18,131,39,174,45,135,38,196,46,79,08,206,40,11,31,066,47*79
+$GPGSV,5,2,18,07,21,126,47,18,18,056,36,75,26,254,42,13,51,262,47*73
+$GPGSV,5,3,18,19,31,196,47,15,30,298,44,30,48,122,48,01,23,080,43*78
+$GPGSV,5,4,18,28,67,038,46,138,37,160,46,133,39,192,45,94,69,326,44*7D
+$GPGSV,5,5,18,17,53,186,47,82,41,140,47*75
+{"class":"TPV","mode":3,"lat":44.068809122,"lon":-121.314097087,"alt":1123.711,"epx":1.101,"epy":1.101,"epv":3.026,"track":290.8300,"speed":0.005,"climb":0.019,"eps":0.02,"ecefx":-2386053.91,"ecefy":-3922195.01,"ecefz":4414355.75,"ecefvx":-0.01,"ecefvy":-0.01,"ecefvz":0.01,"ecefpAcc":1.39,"ecefvAcc":0.02}
+{"class":"SKY","xdop":0.45,"ydop":0.59,"vdop":1.19,"tdop":0.80,"hdop":0.70,"gdop":1.60,"pdop":1.38,"satellites":[{"PRN":131,"el":39,"az":174,"ss":45,"used":true},{"PRN":135,"el":38,"az":196,"ss":46,"used":true},{"PRN":79,"el":8,"az":206,"ss":40,"used":true},{"PRN":11,"el":31,"az":66,"ss":47,"used":true},{"PRN":7,"el":21,"az":126,"ss":47,"used":true},{"PRN":18,"el":18,"az":56,"ss":36,"used":true},{"PRN":75,"el":26,"az":254,"ss":42,"used":true},{"PRN":13,"el":51,"az":262,"ss":47,"used":true},{"PRN":19,"el":31,"az":196,"ss":47,"used":true},{"PRN":15,"el":30,"az":298,"ss":44,"used":true},{"PRN":30,"el":48,"az":122,"ss":48,"used":true},{"PRN":1,"el":23,"az":80,"ss":43,"used":true},{"PRN":28,"el":67,"az":38,"ss":46,"used":true},{"PRN":138,"el":37,"az":160,"ss":46,"used":true},{"PRN":133,"el":39,"az":192,"ss":45,"used":false},{"PRN":94,"el":69,"az":326,"ss":44,"used":true},{"PRN":17,"el":53,"az":186,"ss":47,"used":true},{"PRN":82,"el":41,"az":140,"ss":47,"used":true}]}
diff --git a/test/daemon/greis-test2.log b/test/daemon/greis-test2.log
new file mode 100644
index 00000000..88aef12a
--- /dev/null
+++ b/test/daemon/greis-test2.log
Binary files differ
diff --git a/test/daemon/greis-test2.log.chk b/test/daemon/greis-test2.log.chk
new file mode 100644
index 00000000..cd74dfbd
--- /dev/null
+++ b/test/daemon/greis-test2.log.chk
@@ -0,0 +1,42 @@
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:17.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY"}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:18.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:19.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:20.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:21.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:22.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:23.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:24.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:25.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:26.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}
+$GPGSV,2,1,07,01,-91,000,00,02,20,100,20,03,30,180,30,04,40,150,40*50
+$GPGSV,2,2,07,05,90,000,90,06,-91,-01,255,00,00,000,00*46
+{"class":"TPV","mode":3,"time":"2018-05-15T22:02:27.000Z","ept":0.005,"lat":44.068812095,"lon":-121.313997737,"alt":2000020.152,"track":10.1606,"speed":0.000,"climb":-3389.549,"ecefx":-3132489.00,"ecefy":-5149205.00,"ecefz":5804632.00,"ecefvx":9400.00,"ecefvy":10001.00,"ecefvz":9000.00,"ecefpAcc":50.00,"ecefvAcc":30.00}
+{"class":"SKY","satellites":[{"PRN":1,"el":-91,"az":0,"ss":0,"used":true},{"PRN":2,"el":20,"az":100,"ss":20,"used":true},{"PRN":3,"el":30,"az":180,"ss":30,"used":true},{"PRN":4,"el":40,"az":150,"ss":40,"used":true},{"PRN":5,"el":90,"az":0,"ss":90,"used":false},{"PRN":6,"el":-91,"az":-1,"ss":255,"used":true}]}