@@ -97,6 +97,7 @@ def __init__(self, uart, debug=False):
97
97
self .fix_quality = None
98
98
self .fix_quality_3d = None
99
99
self .satellites = None
100
+ self .satellites_prev = None
100
101
self .horizontal_dilution = None
101
102
self .altitude_m = None
102
103
self .height_geoid = None
@@ -126,7 +127,6 @@ def update(self):
126
127
try :
127
128
sentence = self ._parse_sentence ()
128
129
except UnicodeError :
129
- print ("UnicodeError" )
130
130
return None
131
131
if sentence is None :
132
132
return False
@@ -196,12 +196,10 @@ def _parse_sentence(self):
196
196
197
197
sentence = self ._uart .readline ()
198
198
if sentence is None or sentence == b'' or len (sentence ) < 1 :
199
- print ("Sentence is none" )
200
199
return None
201
200
try :
202
201
sentence = str (sentence , 'ascii' ).strip ()
203
202
except UnicodeError :
204
- print ("UnicodeError" )
205
203
return None
206
204
# Look for a checksum and validate it if present.
207
205
if len (sentence ) > 7 and sentence [- 3 ] == '*' :
@@ -211,15 +209,13 @@ def _parse_sentence(self):
211
209
for i in range (1 , len (sentence )- 3 ):
212
210
actual ^= ord (sentence [i ])
213
211
if actual != expected :
214
- print ("Actual != expected" )
215
212
return None # Failed to validate checksum.
216
213
# Remove checksum once validated.
217
214
sentence = sentence [:- 3 ]
218
215
# Parse out the type of sentence (first string after $ up to comma)
219
216
# and then grab the rest as data within the sentence.
220
217
delimiter = sentence .find (',' )
221
218
if delimiter == - 1 :
222
- print ("Bad delimiter" )
223
219
return None # Invalid sentence, no comma after data type.
224
220
data_type = sentence [1 :delimiter ]
225
221
return (data_type , sentence [delimiter + 1 :])
@@ -415,3 +411,16 @@ def _parse_gpgsv(self, args):
415
411
self .sats = {}
416
412
for satnum in satdict :
417
413
self .sats [satnum ] = satdict [satnum ]
414
+
415
+ try :
416
+ if self .satellites < self .satellites_prev :
417
+ for i in self .sats :
418
+ try :
419
+ if int (i [- 2 ]) >= self .satellites :
420
+ del self .sats [i ]
421
+ except ValueError :
422
+ if int (i [- 1 ]) >= self .satellites :
423
+ del self .sats [i ]
424
+ except TypeError :
425
+ pass
426
+ self .satellites_prev = self .satellites
0 commit comments