summaryrefslogtreecommitdiff
path: root/driver_oncore.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2014-08-27 16:42:04 -0400
committerEric S. Raymond <esr@thyrsus.com>2014-08-27 16:42:04 -0400
commit995976ab06a8f688343b8fec87e1305e2d5ee80e (patch)
tree104bf6b57b68676529409f4374cc5881b07b1e7b /driver_oncore.c
parent6203e5b8fcac9d78ea54b7b3c53cb8d084e8a219 (diff)
downloadgpsd-995976ab06a8f688343b8fec87e1305e2d5ee80e.tar.gz
The big leap. Most instances of gpsd_report are replaced...
...with calls to gps_notify(), which indirects to its output method through a slot in an errout structure. Usually the errout structure lives inside the session context, but because struct errout_t is its own thing this does not have to be the case. One large clique of gpsd_notify() calls, in packet.c and isgps.c, looks at a struct errout_t copy in a lexer control block This change is not complete. Remnant gpsd_report calls need to be changed, and gpsmon needs to be tweaked so that the struct_error_t in its context is a non-defaukt hook updating the cuses display rather than simply dumping to stderr. Also the report label functionality needs to be added. All regression tests pass.
Diffstat (limited to 'driver_oncore.c')
-rw-r--r--driver_oncore.c32
1 files changed, 16 insertions, 16 deletions
diff --git a/driver_oncore.c b/driver_oncore.c
index 5724033d..8dff324a 100644
--- a/driver_oncore.c
+++ b/driver_oncore.c
@@ -75,7 +75,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
return 0;
mask = ONLINE_SET;
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"oncore NAVSOL - navigation data\n");
flags = (unsigned char)getub(buf, 72);
@@ -88,7 +88,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(session->context->errout.debug, LOG_WARN,
+ gpsd_notify(&session->context->errout, LOG_WARN,
"oncore NAVSOL no fix - flags 0x%02x\n", flags);
session->newdata.mode = MODE_NO_FIX;
session->gpsdata.status = STATUS_NO_FIX;
@@ -114,7 +114,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(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"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,
@@ -130,7 +130,7 @@ oncore_msg_navsol(struct gps_device_t *session, unsigned char *buf,
dop = getbeu16(buf, 35) / 10.0f;
/*@+type@*/
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"oncore NAVSOL - %lf %lf %.2lfm-%.2lfm | %.2fm/s %.1fdeg dop=%.1f\n",
lat, lon, alt, wgs84_separation(lat, lon), speed, track,
(float)dop);
@@ -160,7 +160,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(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"%2d %2d %2d %3d %02x\n", i, sv, mode, sn, status);
if (sn) {
@@ -215,7 +215,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(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, 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,
@@ -238,7 +238,7 @@ oncore_msg_utc_offset(struct gps_device_t *session, unsigned char *buf,
if (data_len != 8)
return 0;
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"oncore UTCTIME - leap seconds\n");
utc_offset = (int)getub(buf, 4);
if (utc_offset == 0)
@@ -261,7 +261,7 @@ oncore_msg_pps_offset(struct gps_device_t *session, unsigned char *buf,
if (data_len != 11)
return 0;
- gpsd_report(session->context->errout.debug, LOG_DATA, "oncore PPS offset\n");
+ gpsd_notify(&session->context->errout, LOG_DATA, "oncore PPS offset\n");
pps_offset_ns = (int)getbes32(buf, 4);
session->driver.oncore.pps_offset_ns = pps_offset_ns;
@@ -281,10 +281,10 @@ oncore_msg_svinfo(struct gps_device_t *session, unsigned char *buf,
if (data_len != 92)
return 0;
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"oncore SVINFO - satellite data\n");
nchan = (unsigned int)getub(buf, 4);
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"oncore SVINFO - %d satellites:\n", nchan);
/* Then we clamp the value to not read outside the table. */
if (nchan > 12)
@@ -298,7 +298,7 @@ oncore_msg_svinfo(struct gps_device_t *session, unsigned char *buf,
int el = (int)getub(buf, off + 3);
int az = (int)getbeu16(buf, off + 4);
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"%2d %2d %2d %3d\n", i, sv, el, az);
/* Store for use when Ea messages come. */
@@ -313,7 +313,7 @@ oncore_msg_svinfo(struct gps_device_t *session, unsigned char *buf,
}
}
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"SVINFO: mask={SATELLITE}\n");
return SATELLITE_SET;
}
@@ -331,7 +331,7 @@ oncore_msg_time_raim(struct gps_device_t *session UNUSED,
return 0;
sawtooth_ns = (int)getub(buf, 25);
- gpsd_report(session->context->errout.debug, LOG_DATA,
+ gpsd_notify(&session->context->errout, LOG_DATA,
"oncore PPS sawtooth: %d\n",sawtooth_ns);
/* session->driver.oncore.traim_sawtooth_ns = sawtooth_ns; */
@@ -366,7 +366,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(session->context->errout.debug, LOG_RAW,
+ gpsd_notify(&session->context->errout, LOG_RAW,
"raw Oncore packet type 0x%04x\n", type);
session->cycle_end_reliable = true;
@@ -391,7 +391,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(session->context->errout.debug, LOG_WARN,
+ gpsd_notify(&session->context->errout, LOG_WARN,
"unknown packet id @@%c%c length %zd\n",
type >> 8, type & 0xff, len);
return 0;
@@ -426,7 +426,7 @@ static ssize_t oncore_control_send(struct gps_device_t *session,
session->msgbuf[msglen + 4] = '\n';
session->msgbuflen = msglen + 5;
- gpsd_report(session->context->errout.debug, LOG_PROG,
+ gpsd_notify(&session->context->errout, LOG_PROG,
"writing oncore control type %c%c\n", msg[0], msg[1]);
return gpsd_write(session, session->msgbuf, session->msgbuflen);
}