summaryrefslogtreecommitdiff
path: root/pseudonmea.c
diff options
context:
space:
mode:
authorGary E. Miller <gem@rellim.com>2019-03-13 18:42:02 -0700
committerGary E. Miller <gem@rellim.com>2019-03-13 18:42:02 -0700
commit41757d5898172baaa43e2d99f854d90633db73ad (patch)
tree19b63622ede6f040341e1e42d6556e57ecda2670 /pseudonmea.c
parent9b50a4af1c67ac4c49d606a165d5ab79045fc31c (diff)
downloadgpsd-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.c28
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);