blob: 659865efe1065d9fb3153745eed354a48a35b83b [file] [log] [blame]
From c9cec2a888d4fea8534be78a0f46d920155ceae6 Mon Sep 17 00:00:00 2001
From: Paul Fertser <fercerpav@gmail.com>
Date: Wed, 4 Nov 2020 12:40:50 -0800
Subject: [PATCH] gpsd/dbusexport.c: Fix broken d-bus message time.
Change-Id: I4b9990ce4517a8feb29fc9e090c62f5a0c56ddd5
---
dbusexport.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dbusexport.c b/dbusexport.c
index 40b35739e..5d08a8702 100644
--- a/dbusexport.c
+++ b/dbusexport.c
@@ -38,6 +38,7 @@ void send_dbus_fix(struct gps_device_t *channel)
/*DBusMessageIter iter; */
dbus_uint32_t serial; /* collected, but not used */
char *gpsd_devname;
+ double dtime; // time as a double, loss of precision!
/* if the connection is non existent, return without doing anything */
if (connection == NULL)
@@ -51,8 +52,9 @@ void send_dbus_fix(struct gps_device_t *channel)
/* the dbus/locationd doc fails to specify altitude as WGS84 or MSL.
* assume altMSL */
message = dbus_message_new_signal("/org/gpsd", "org.gpsd", "fix");
+ dtime = TSTONS(&gpsfix->time);
dbus_message_append_args(message,
- DBUS_TYPE_DOUBLE, &(gpsfix->time),
+ DBUS_TYPE_DOUBLE, &dtime,
DBUS_TYPE_INT32, &(gpsfix->mode),
DBUS_TYPE_DOUBLE, &(gpsfix->ept),
DBUS_TYPE_DOUBLE, &(gpsfix->latitude),
--
2.20.1