summaryrefslogtreecommitdiff
path: root/driver_ubx.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-04-12 18:01:26 -0700
committerGary E. Miller <gem@rellim.com>2019-04-12 18:01:26 -0700
commit9c6c514fd751cfc35ca0fad388748d3e9fde7765 (patch)
tree5b815acdda5c32c603f39348de385ebca6d5ce14 /driver_ubx.c
parentd24a1dcd6f81e22d891c75252bfcac8f5e6a54b3 (diff)
downloadgpsd-9c6c514fd751cfc35ca0fad388748d3e9fde7765.tar.gz
driver_ubx: Force report on UBX-NAV-PVT. +new comments.
UBX needs a cycle detector...
Diffstat (limited to 'driver_ubx.c')
-rw-r--r--driver_ubx.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/driver_ubx.c b/driver_ubx.c
index b7827fc9..a6bac450 100644
--- a/driver_ubx.c
+++ b/driver_ubx.c
@@ -328,7 +328,8 @@ ubx_msg_nav_pvt(struct gps_device_t *session, unsigned char *buf,
/**
* Navigation solution message: UBX-NAV-SOL
*
- * Not in u-blox 9
+ * UBX-NAV-SOL deprecated in u-blox 6, gone in u-blox 9.
+ * Use UBX-NAV-PVT instead
*/
static gps_mask_t
ubx_msg_nav_sol(struct gps_device_t *session, unsigned char *buf,
@@ -414,7 +415,8 @@ ubx_msg_nav_sol(struct gps_device_t *session, unsigned char *buf,
mask |= MODE_SET | STATUS_SET;
gpsd_log(&session->context->errout, LOG_DATA,
- "UBX_NAV_SOL: time=%.2f lat=%.2f lon=%.2f alt=%.2f track=%.2f speed=%.2f climb=%.2f mode=%d status=%d used=%d\n",
+ "UBX_NAV_SOL: time=%.2f lat=%.2f lon=%.2f alt=%.2f track=%.2f\n"
+ " speed=%.2f climb=%.2f mode=%d status=%d used=%d\n",
session->newdata.time,
session->newdata.latitude,
session->newdata.longitude,
@@ -1391,6 +1393,7 @@ gps_mask_t ubx_parse(struct gps_device_t * session, unsigned char *buf,
case UBX_NAV_PVT:
gpsd_log(&session->context->errout, LOG_PROG, "UBX_NAV_PVT\n");
mask = ubx_msg_nav_pvt(session, &buf[UBX_PREFIX_LEN], data_len);
+ mask |= REPORT_IS;
break;
case UBX_NAV_RELPOSNED:
gpsd_log(&session->context->errout, LOG_DATA, "UBX_NAV_RELPOSNED\n");
@@ -1407,7 +1410,8 @@ gps_mask_t ubx_parse(struct gps_device_t * session, unsigned char *buf,
ubx_msg_sbas(session, &buf[UBX_PREFIX_LEN], data_len);
break;
case UBX_NAV_SOL:
- /* UBX-NAV-SOL deprecated, use UBX-NAV-PVT instead */
+ /* UBX-NAV-SOL deprecated in u-blox 6, gone in u-blox 9.
+ * Use UBX-NAV-PVT instead */
gpsd_log(&session->context->errout, LOG_PROG, "UBX_NAV_SOL\n");
mask = ubx_msg_nav_sol(session, &buf[UBX_PREFIX_LEN], data_len)
| REPORT_IS;
@@ -1539,6 +1543,7 @@ gps_mask_t ubx_parse(struct gps_device_t * session, unsigned char *buf,
"UBX: unknown packet id 0x%04hx (length %zd)\n",
msgid, len);
}
+ /* FIXME: need cycle detection here... */
return mask | ONLINE_SET;
}
@@ -1773,7 +1778,8 @@ static void ubx_cfg_prt(struct gps_device_t *session,
msg[2] = 0x00; /* rate */
(void)ubx_write(session, 0x06u, 0x01, msg, 3);
- /* UBX-NAV-SOL deprecated, use UBX-NAV-PVT instead */
+ /* UBX-NAV-SOL deprecated in u-blox 6, gone in u-blox 9.
+ * Use UBX-NAV-PVT instead */
msg[0] = 0x01; /* class */
msg[1] = 0x06; /* msg id = NAV-SOL */
msg[2] = 0x00; /* rate */
@@ -1846,7 +1852,8 @@ static void ubx_cfg_prt(struct gps_device_t *session,
msg[2] = 0x01; /* rate */
(void)ubx_write(session, 0x06u, 0x01, msg, 3);
- /* UBX-NAV-SOL deprecated, use UBX-NAV-PVT instead */
+ /* UBX-NAV-SOL deprecated in u-blox 6, gone in u-blox 9.
+ * Use UBX-NAV-PVT instead */
msg[0] = 0x01; /* class */
msg[1] = 0x06; /* msg id = NAV-SOL */
msg[2] = 0x01; /* rate */