| 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 |
| |