Ticket #305: gypsy-time

File gypsy-time, 1.1 KB (added by RedDog, 14 years ago)

gypsy-time

Line 
1Index: navit-0.1.1.~svn2032/navit/vehicle/gypsy/vehicle_gypsy.c
2===================================================================
3--- navit-0.1.1.~svn2032.orig/navit/vehicle/gypsy/vehicle_gypsy.c       2009-02-22 19:46:16.000000000 +0100
4+++ navit-0.1.1.~svn2032/navit/vehicle/gypsy/vehicle_gypsy.c    2009-02-22 19:46:23.000000000 +0100
5@@ -48,6 +48,8 @@
6        double direction;
7        double height;
8        int fix_type;
9+       time_t fix_time;
10+       char fixiso8601[128];
11        int sats;
12        int sats_used;
13        guint retry_timer;
14@@ -84,6 +86,9 @@
15        struct vehicle_priv *priv = vehicle_last;
16        int cb = FALSE;
17 
18+       if (timestamp > 0)
19+               priv->fix_time = timestamp;
20+
21        if (fields_set & GYPSY_POSITION_FIELDS_LATITUDE)
22        {
23                cb = TRUE;
24@@ -277,6 +282,18 @@
25                if (!priv->have_cords)
26                        return 0;
27                break;
28+       case attr_position_time_iso8601:
29+               {
30+               struct tm tm;
31+               if (!priv->fix_time)
32+                       return 0;
33+               if (gmtime_r(&priv->fix_time, &tm)) {
34+                       strftime(priv->fixiso8601, sizeof(priv->fixiso8601),
35+                                       "%Y-%m-%dT%TZ", &tm);
36+                       attr->u.str=priv->fixiso8601;
37+               } else
38+                       return 0;
39+               }
40        case attr_active:
41          active = attr_search(priv->attrs,NULL,attr_active);
42          if(active != NULL && active->u.num == 1)