summaryrefslogtreecommitdiff
blob: 0eb646cda6c08ec7f09d7fd7383aa94a17ca3853 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
--- gps.py.orig	2005-05-16 18:27:07.000000000 -0700
+++ gps.py	2005-05-28 11:56:33.000000000 -0700
@@ -319,46 +319,47 @@
                     if self.fix.epc:
                         self.valid |= CLIMBERR_SET
 	    elif cmd in ('P', 'p'):
-	      (self.fix.latitude, self.fix.longitude) = map(float, data.split())
-              self.valid |= LATLON_SET
+                (self.fix.latitude, self.fix.longitude) = map(float, data.split())
+                self.valid |= LATLON_SET
 	    elif cmd in ('Q', 'q'):
-	      parts = data.split()
-	      self.satellites_used = int(parts[0])
-	      (self.pdop, self.hdop, self.vdop) = map(float, parts[1:])
-              self.valid |= HDOP_SET | VDOP_SET | PDOP_SET
+                parts = data.split()
+                self.satellites_used = int(parts[0])
+                (self.pdop, self.hdop, self.vdop) = map(float, parts[1:])
+                self.valid |= HDOP_SET | VDOP_SET | PDOP_SET
 	    elif cmd in ('S', 's'):
-	      self.status = int(data)
-              self.valid |= STATUS_SET
+                self.status = int(data)
+                self.valid |= STATUS_SET
 	    elif cmd in ('T', 't'):
-	      self.fix.track = float(data)
-              self.valid |= TRACK_SET
+                self.fix.track = float(data)
+                self.valid |= TRACK_SET
 	    elif cmd in ('U', 'u'):
-	      self.fix.climb = float(data)
-              self.valid |= CLIMB_SET
+                self.fix.climb = float(data)
+                self.valid |= CLIMB_SET
 	    elif cmd in ('V', 'v'):
-	      self.fix.speed = float(data)
-              self.valid |= SPEED_SET
+                self.fix.speed = float(data)
+                self.valid |= SPEED_SET
 	    elif cmd in ('X', 'x'):
-              if data == '?':
-                  self.online = -1
-                  self.device = None
-              else:
-                  self.online = float(data)
-                  self.valid |= ONLINE_SET
+                if data == '?':
+                    self.online = -1
+                    self.device = None
+                else:
+                    self.online = float(data)
+                    self.valid |= ONLINE_SET
 	    elif cmd in ('Y', 'y'):
 	      satellites = data.split(":")
-              self.timings.sentence_tag = satellites.pop(0)
-	      self.timings.sentence_time = satellites.pop(0)
+              prefix = satellites.pop(0).split()
+              self.timings.sentence_tag = prefix.pop(0)
+	      self.timings.sentence_time = prefix.pop(0)
               if self.timings.sentence_time != "?":
-                  float(self.timings.sentence_time)
-	      d1 = int(satellites.pop(0))
+                  self.timings.sentence_time = float(self.timings.sentence_time)
+	      d1 = int(prefix.pop(0))
 	      newsats = []
 	      for i in range(d1):
 		newsats.append(gps.satellite(*map(int, satellites[i].split())))
 	      self.satellites = newsats
               self.valid |= SATELLITE_SET
 	    elif cmd in ('Z', 'z'):
-              self.profiling = (data[0] == '1')
+                self.profiling = (data[0] == '1')
             elif cmd == '$':
                 self.timings.collect(*data.split())
 	if self.raw_hook:
@@ -373,12 +374,13 @@
             sys.stderr.write("GPS DATA %s\n" % repr(data))
         self.timings.c_recv_time = time.time()
 	self.__unpack(data)
-        if self.timings.sentence_time:
-            basetime = self.timings.sentence_time
-        else:
-            basetime = self.timings.d_xmit_time
-        self.timings.c_decode_time = time.time() - basetime
-        self.timings.c_recv_time -= basetime
+        if self.profiling:
+            if self.timings.sentence_time != '?':
+                basetime = self.timings.sentence_time
+            else:
+                basetime = self.timings.d_xmit_time
+            self.timings.c_decode_time = time.time() - basetime
+            self.timings.c_recv_time -= basetime
         return 0
 
     def query(self, commands):