summaryrefslogtreecommitdiff
path: root/driver_oncore.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2013-09-29 01:42:45 -0400
committerEric S. Raymond <esr@thyrsus.com>2013-09-29 01:46:53 -0400
commit4361ec2d89bdf451602d659ddfd0fb9a79c178a2 (patch)
treeaf067d1d7614a9e67f449eec933ba3347cde10b0 /driver_oncore.c
parenta77b95b57475c2856707e91b197f8aaa8e5eb407 (diff)
downloadgpsd-4361ec2d89bdf451602d659ddfd0fb9a79c178a2.tar.gz
Change gpsd_report to no longer use a global. All regression tests pass.
This is a large, ugly change. But without it we can't troubleshoot the ICP/IP-source initialization bug properly - colliding definitions of gpsd_report() were interfering with error reporting early in gpsd runs. More cleanup work remains to be done, but at least this is working.
Diffstat (limited to 'driver_oncore.c')
-rw-r--r--driver_oncore.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/driver_oncore.c b/driver_oncore.c
index 1cdefa5d..cf383a72 100644
--- a/driver_oncore.c
+++ b/driver_oncore.c
@@ -80,7 +80,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
return 0;
mask = ONLINE_SET;
- gpsd_report(LOG_IO, "oncore NAVSOL - navigation data\n");
+ gpsd_report(session->context->debug, LOG_IO, "oncore NAVSOL - navigation data\n");
flags = (unsigned char)getub(buf, 72);
@@ -92,7 +92,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
session->gpsdata.status = STATUS_FIX;
session->newdata.mode = MODE_2D;
} else {
- gpsd_report(LOG_WARN, "oncore NAVSOL no fix - flags 0x%02x\n", flags);
+ gpsd_report(session->context->debug, LOG_WARN, "oncore NAVSOL no fix - flags 0x%02x\n", flags);
session->newdata.mode = MODE_NO_FIX;
session->gpsdata.status = STATUS_NO_FIX;
}
@@ -116,7 +116,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
session->newdata.time = (timestamp_t)timegm(&unpacked_date) + nsec * 1e-9;
/*@ +unrecog */
mask |= TIME_SET;
- gpsd_report(LOG_IO,
+ gpsd_report(session->context->debug, LOG_IO,
"oncore NAVSOL - time: %04d-%02d-%02d %02d:%02d:%02d.%09d\n",
unpacked_date.tm_year + 1900, unpacked_date.tm_mon + 1,
unpacked_date.tm_mday, unpacked_date.tm_hour,
@@ -132,7 +132,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
dop = getbeu16(buf, 35) / 10.0f;
/*@+type@*/
- gpsd_report(LOG_IO,
+ gpsd_report(session->context->debug, LOG_IO,
"oncore NAVSOL - %lf %lf %.2lfm-%.2lfm | %.2fm/s %.1fdeg dop=%.1f\n",
lat, lon, alt, wgs84_separation(lat, lon), speed, track,
(float)dop);
@@ -161,7 +161,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
sn = (int)getub(buf, off + 2);
status = (int)getub(buf, off + 3);
- gpsd_report(LOG_IO, "%2d %2d %2d %3d %02x\n", i, sv, mode, sn,
+ gpsd_report(session->context->debug, LOG_IO, "%2d %2d %2d %3d %02x\n", i, sv, mode, sn,
status);
if (sn) {
@@ -216,7 +216,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
(void)oncore_control_send(session, (char *)pollBo, sizeof(pollBo));
(void)oncore_control_send(session, (char *)pollEn, sizeof(pollEn));
- gpsd_report(LOG_DATA,
+ gpsd_report(session->context->debug, LOG_DATA,
"NAVSOL: time=%.2f lat=%.2f lon=%.2f alt=%.2f speed=%.2f track=%.2f mode=%d status=%d visible=%d used=%d\n",
session->newdata.time, session->newdata.latitude,
session->newdata.longitude, session->newdata.altitude,
@@ -239,7 +239,7 @@ oncore_msg_utc_offset(struct gps_device_t *session, unsigned char *buf,
if (data_len != 8)
return 0;
- gpsd_report(LOG_IO, "oncore UTCTIME - leap seconds\n");
+ gpsd_report(session->context->debug, LOG_IO, "oncore UTCTIME - leap seconds\n");
utc_offset = (int)getub(buf, 4);
if (utc_offset == 0)
return 0; /* that part of almanac not received yet */
@@ -261,7 +261,7 @@ oncore_msg_pps_offset(struct gps_device_t *session, unsigned char *buf,
if (data_len != 11)
return 0;
- gpsd_report(LOG_IO, "oncore PPS offset\n");
+ gpsd_report(session->context->debug, LOG_IO, "oncore PPS offset\n");
pps_offset_ns = (int)getbes32(buf, 4);
session->driver.oncore.pps_offset_ns = pps_offset_ns;
@@ -283,9 +283,9 @@ oncore_msg_svinfo(struct gps_device_t *session, unsigned char *buf,
if (data_len != 92)
return 0;
- gpsd_report(LOG_IO, "oncore SVINFO - satellite data\n");
+ gpsd_report(session->context->debug, LOG_IO, "oncore SVINFO - satellite data\n");
nchan = (unsigned int)getub(buf, 4);
- gpsd_report(LOG_IO, "oncore SVINFO - %d satellites:\n", nchan);
+ gpsd_report(session->context->debug, LOG_IO, "oncore SVINFO - %d satellites:\n", nchan);
/* Then we clamp the value to not read outside the table. */
if (nchan > 12)
nchan = 12;
@@ -298,7 +298,7 @@ oncore_msg_svinfo(struct gps_device_t *session, unsigned char *buf,
el = (int)getub(buf, off + 3);
az = (int)getbeu16(buf, off + 4);
- gpsd_report(LOG_IO, "%2d %2d %2d %3d\n", i, sv, el, az);
+ gpsd_report(session->context->debug, LOG_IO, "%2d %2d %2d %3d\n", i, sv, el, az);
/* Store for use when Ea messages come. */
session->driver.oncore.PRN[i] = sv;
@@ -312,7 +312,7 @@ oncore_msg_svinfo(struct gps_device_t *session, unsigned char *buf,
}
}
- gpsd_report(LOG_DATA, "SVINFO: mask={SATELLITE}\n");
+ gpsd_report(session->context->debug, LOG_DATA, "SVINFO: mask={SATELLITE}\n");
return SATELLITE_SET;
}
@@ -329,7 +329,7 @@ oncore_msg_time_raim(struct gps_device_t *session UNUSED,
return 0;
sawtooth_ns = (int)getub(buf, 25);
- gpsd_report(LOG_IO, "oncore PPS sawtooth: %d\n",sawtooth_ns);
+ gpsd_report(session->context->debug, LOG_IO, "oncore PPS sawtooth: %d\n",sawtooth_ns);
/* session->driver.oncore.traim_sawtooth_ns = sawtooth_ns; */
@@ -363,7 +363,7 @@ gps_mask_t oncore_dispatch(struct gps_device_t * session, unsigned char *buf,
type = ONCTYPE(buf[2], buf[3]);
/* we may need to dump the raw packet */
- gpsd_report(LOG_RAW, "raw Oncore packet type 0x%04x\n", type);
+ gpsd_report(session->context->debug, LOG_RAW, "raw Oncore packet type 0x%04x\n", type);
(void)snprintf(session->gpsdata.tag, sizeof(session->gpsdata.tag),
"MOT-%c%c", type >> 8, type & 0xff);
@@ -390,7 +390,7 @@ gps_mask_t oncore_dispatch(struct gps_device_t * session, unsigned char *buf,
default:
/* FIX-ME: This gets noisy in a hurry. Change once your driver works */
- gpsd_report(LOG_WARN, "unknown packet id @@%c%c length %zd\n",
+ gpsd_report(session->context->debug, LOG_WARN, "unknown packet id @@%c%c length %zd\n",
type >> 8, type & 0xff, len);
return 0;
}
@@ -424,7 +424,8 @@ static ssize_t oncore_control_send(struct gps_device_t *session,
session->msgbuf[msglen + 4] = '\n';
session->msgbuflen = msglen + 5;
- gpsd_report(LOG_IO, "writing oncore control type %c%c\n", msg[0], msg[1]);
+ gpsd_report(session->context->debug, LOG_IO,
+ "writing oncore control type %c%c\n", msg[0], msg[1]);
return gpsd_write(session, session->msgbuf, session->msgbuflen);
}