aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-navigation/gpsd/gpsd/0001-gpsd-dbusexport.c-Fix-broken-d-bus-message-time.patch
blob: 659865efe1065d9fb3153745eed354a48a35b83b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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