Skip to content

Commit bf34bd0

Browse files
committed
update gsv_data handling for NAV-SVINFO & PUBX003
1 parent d2ae05a commit bf34bd0

File tree

4 files changed

+27
-23
lines changed

4 files changed

+27
-23
lines changed

src/pygpsclient/levelsview_frame.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ def update_frame(self):
159159
data = self.__app.gnss_status.gsv_data
160160
show_unused = self.__app.configuration.get("unusedsat_b")
161161
siv = len(data)
162-
if siv == 0:
163-
return
164162
siv = siv if show_unused else siv - unused_sats(data)
163+
if siv <= 0:
164+
return
165165

166166
w, h = self.width, self.height
167167
self.init_frame()

src/pygpsclient/nmea_handler.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ def __init__(self, app):
4646

4747
self._raw_data = None
4848
self._parsed_data = None
49-
# Holds array of current satellites in view from NMEA GSV sentences
50-
self.gsv_data = {}
5149

5250
def process_data(self, raw_data: bytes, parsed_data: object):
5351
"""
@@ -304,8 +302,7 @@ def _process_UBX03(self, data: NMEAMessage):
304302
"""
305303
# pylint: disable=consider-using-dict-items
306304

307-
show_unused = self.__app.configuration.get("unusedsat_b")
308-
self.gsv_data = {}
305+
self.__app.gnss_status.gsv_data = {}
309306
now = time()
310307
for i in range(data.numSv):
311308
idx = f"_{i+1:02d}"
@@ -321,8 +318,6 @@ def _process_UBX03(self, data: NMEAMessage):
321318
svid -= 210
322319
if gnss == 3 and svid > 32: # Beidou
323320
svid -= 32
324-
if cno in ("", "0", 0) and not show_unused: # omit unused sats
325-
continue
326321
self.__app.gnss_status.gsv_data[(gnss, svid)] = (
327322
gnss,
328323
svid,
@@ -332,7 +327,7 @@ def _process_UBX03(self, data: NMEAMessage):
332327
now,
333328
)
334329

335-
self.__app.gnss_status.siv = len(self.gsv_data)
330+
self.__app.gnss_status.siv = len(self.__app.gnss_status.gsv_data)
336331

337332
def _process_QTMVERNO(self, data: NMEAMessage):
338333
"""

src/pygpsclient/skyview_frame.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,9 @@ def update_frame(self):
108108
data = self.__app.gnss_status.gsv_data
109109
show_unused = self.__app.configuration.get("unusedsat_b")
110110
siv = len(data)
111-
if siv == 0:
112-
return
113111
siv = siv if show_unused else siv - unused_sats(data)
112+
if siv <= 0:
113+
return
114114

115115
self.init_frame()
116116

src/pygpsclient/ubx_handler.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ def __init__(self, app):
4545
self._cdb = 0
4646
self._raw_data = None
4747
self._parsed_data = None
48-
# Holds array of current satellites in view from NMEA GSV or UBX NAV-SVINFO sentences
49-
self.gsv_data = {}
5048

5149
def process_data(self, raw_data: bytes, parsed_data: object):
5250
"""
@@ -324,7 +322,7 @@ def _process_NAV_SAT(self, data: UBXMessage):
324322
:param UBXMessage data: NAV-SAT parsed message
325323
"""
326324

327-
self.gsv_data = {}
325+
self.__app.gnss_status.gsv_data = {}
328326
num_siv = int(data.numSvs)
329327
now = time()
330328

@@ -338,10 +336,16 @@ def _process_NAV_SAT(self, data: UBXMessage):
338336
elev = getattr(data, "elev" + idx)
339337
azim = getattr(data, "azim" + idx)
340338
cno = getattr(data, "cno" + idx)
341-
self.gsv_data[(gnssId, svid)] = (gnssId, svid, elev, azim, cno, now)
339+
self.__app.gnss_status.gsv_data[(gnssId, svid)] = (
340+
gnssId,
341+
svid,
342+
elev,
343+
azim,
344+
cno,
345+
now,
346+
)
342347

343-
self.__app.gnss_status.siv = len(self.gsv_data)
344-
self.__app.gnss_status.gsv_data = self.gsv_data
348+
self.__app.gnss_status.siv = len(self.__app.gnss_status.gsv_data)
345349

346350
def _process_NAV_STATUS(self, data: UBXMessage):
347351
"""
@@ -376,9 +380,9 @@ def _process_NAV_SVINFO(self, data: UBXMessage):
376380
:param UBXMessage data: NAV-SVINFO parsed message
377381
"""
378382

379-
show_unused = self.__app.configuration.get("unusedsat_b")
380-
self.gsv_data = {}
383+
self.__app.gnss_status.gsv_data = {}
381384
num_siv = int(data.numCh)
385+
now = time()
382386

383387
for i in range(num_siv):
384388
idx = f"_{i+1:02d}"
@@ -387,11 +391,16 @@ def _process_NAV_SVINFO(self, data: UBXMessage):
387391
elev = getattr(data, "elev" + idx)
388392
azim = getattr(data, "azim" + idx)
389393
cno = getattr(data, "cno" + idx)
390-
if cno == 0 and not show_unused: # omit unused sats
391-
continue
392-
self.gsv_data[f"{gnssId}-{svid}"] = (gnssId, svid, elev, azim, cno)
394+
self.__app.gnss_status.gsv_data[(gnssId, svid)] = (
395+
gnssId,
396+
svid,
397+
elev,
398+
azim,
399+
cno,
400+
now,
401+
)
393402

394-
self.__app.gnss_status.gsv_data = self.gsv_data
403+
self.__app.gnss_status.siv = len(self.__app.gnss_status.gsv_data)
395404

396405
def _process_NAV_SOL(self, data: UBXMessage):
397406
"""

0 commit comments

Comments
 (0)