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