Andrew Geissler | e34f896 | 2021-04-15 15:53:51 -0500 | [diff] [blame] | 1 | From c9cec2a888d4fea8534be78a0f46d920155ceae6 Mon Sep 17 00:00:00 2001 |
| 2 | From: Paul Fertser <fercerpav@gmail.com> |
| 3 | Date: Wed, 4 Nov 2020 12:40:50 -0800 |
| 4 | Subject: [PATCH] gpsd/dbusexport.c: Fix broken d-bus message time. |
| 5 | |
| 6 | Change-Id: I4b9990ce4517a8feb29fc9e090c62f5a0c56ddd5 |
| 7 | --- |
| 8 | dbusexport.c | 4 +++- |
| 9 | 1 file changed, 3 insertions(+), 1 deletion(-) |
| 10 | |
| 11 | diff --git a/dbusexport.c b/dbusexport.c |
| 12 | index 40b35739e..5d08a8702 100644 |
| 13 | --- a/dbusexport.c |
| 14 | +++ b/dbusexport.c |
| 15 | @@ -38,6 +38,7 @@ void send_dbus_fix(struct gps_device_t *channel) |
| 16 | /*DBusMessageIter iter; */ |
| 17 | dbus_uint32_t serial; /* collected, but not used */ |
| 18 | char *gpsd_devname; |
| 19 | + double dtime; // time as a double, loss of precision! |
| 20 | |
| 21 | /* if the connection is non existent, return without doing anything */ |
| 22 | if (connection == NULL) |
| 23 | @@ -51,8 +52,9 @@ void send_dbus_fix(struct gps_device_t *channel) |
| 24 | /* the dbus/locationd doc fails to specify altitude as WGS84 or MSL. |
| 25 | * assume altMSL */ |
| 26 | message = dbus_message_new_signal("/org/gpsd", "org.gpsd", "fix"); |
| 27 | + dtime = TSTONS(&gpsfix->time); |
| 28 | dbus_message_append_args(message, |
| 29 | - DBUS_TYPE_DOUBLE, &(gpsfix->time), |
| 30 | + DBUS_TYPE_DOUBLE, &dtime, |
| 31 | DBUS_TYPE_INT32, &(gpsfix->mode), |
| 32 | DBUS_TYPE_DOUBLE, &(gpsfix->ept), |
| 33 | DBUS_TYPE_DOUBLE, &(gpsfix->latitude), |
| 34 | -- |
| 35 | 2.20.1 |
| 36 | |