diff options
author | Gary E. Miller <gem@rellim.com> | 2019-03-13 18:42:02 -0700 |
---|---|---|
committer | Gary E. Miller <gem@rellim.com> | 2019-03-13 18:42:02 -0700 |
commit | 41757d5898172baaa43e2d99f854d90633db73ad (patch) | |
tree | 19b63622ede6f040341e1e42d6556e57ecda2670 /pseudonmea.c | |
parent | 9b50a4af1c67ac4c49d606a165d5ab79045fc31c (diff) | |
download | gpsd-41757d5898172baaa43e2d99f854d90633db73ad.tar.gz |
pseudonmea: Renable no-time $GPGBS. This time w/o zeros.
Ouput time as blank.
Diffstat (limited to 'pseudonmea.c')
-rw-r--r-- | pseudonmea.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/pseudonmea.c b/pseudonmea.c index 9e9c0003..f7e14e9b 100644 --- a/pseudonmea.c +++ b/pseudonmea.c @@ -238,20 +238,28 @@ static void gpsd_binary_quality_dump(struct gps_device_t *session, if (0 != isfinite(session->gpsdata.fix.epx) && 0 != isfinite(session->gpsdata.fix.epy) && 0 != isfinite(session->gpsdata.fix.epv) && - 0 != isfinite(session->gpsdata.epe) && - 0 != isfinite(session->gpsdata.fix.time)) { - struct tm tm; - double integral; - time_t integral_time; - double fractional = modf(session->gpsdata.fix.time, &integral); - integral_time = (time_t) integral; + 0 != isfinite(session->gpsdata.epe)) { - (void)gmtime_r(&integral_time, &tm); + char time_str[20]; + if (0 != isfinite(session->gpsdata.fix.time)) { + struct tm tm; + double integral; + double fractional = modf(session->gpsdata.fix.time, &integral); + time_t integral_time = (time_t)integral; + + (void)gmtime_r(&integral_time, &tm); + + (void)snprintf(time_str, sizeof(time_str), + "%02d%02d%05.2f", + tm.tm_hour, tm.tm_min, tm.tm_sec + fractional); + } else { + time_str[0] = '\0'; + } bufp2 = bufp + strlen(bufp); str_appendf(bufp, len, - "$GPGBS,%02d%02d%05.2f,%.3f,%.3f,%.3f,,,,", - tm.tm_hour, tm.tm_min, tm.tm_sec + fractional, + "$GPGBS,%s,%.3f,%.3f,%.3f,,,,", + time_str, session->gpsdata.fix.epx, session->gpsdata.fix.epy, session->gpsdata.fix.epv); |