Skip to content

Commit 432584e

Browse files
authored
Merge pull request #156 from semuconsulting/RC-1.4.24
Rc 1.4.24
2 parents e417a8d + 1807d47 commit 432584e

File tree

9 files changed

+30
-40
lines changed

9 files changed

+30
-40
lines changed

.vscode/settings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
"editor.formatOnSave": true,
55
"modulename": "pygpsclient",
66
"distname": "pygpsclient",
7-
"moduleversion": "1.4.23",
7+
"moduleversion": "1.4.24",
88
"python.defaultInterpreterPath": "python3",
99
}

RELEASE_NOTES.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# PyGPSClient Release Notes
22

3+
### RELEASE 1.4.24
4+
5+
FIXES:
6+
7+
1. Fix NMEA GSV SV range handling - was omitting certain SVIDs.
8+
39
### RELEASE 1.4.23
410

511
CHANGES:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ name = "pygpsclient"
77
authors = [{ name = "semuadmin", email = "[email protected]" }]
88
maintainers = [{ name = "semuadmin", email = "[email protected]" }]
99
description = "GNSS Diagnostic and UBX Configuration GUI Application"
10-
version = "1.4.23"
10+
version = "1.4.24"
1111
license = { file = "LICENSE" }
1212
keywords = [
1313
"PyGPSClient",

src/pygpsclient/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@
88
:license: BSD 3-Clause
99
"""
1010

11-
__version__ = "1.4.23"
11+
__version__ = "1.4.24"

src/pygpsclient/gnss_status.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def __init__(self):
4949
self.acc_heading = 0.0 # rover relative position heading accuracy
5050
self.acc_length = 0.0 # rover relative position distance accuracy
5151
self.rel_pos_flags = [] # rover relative position flags
52-
self.gsv_data = [] # list of satellite tuples (gnssId, svid, elev, azim, cno)
52+
self.gsv_data = {} # list of satellite tuples (gnssId, svid, elev, azim, cno)
5353
self.version_data = {} # dict of hardware, firmware and software versions
5454
self.sysmon_data = {} # dict of system monitor data (cpu and memory load, etc.)
5555
self.spectrum_data = [] # list of spectrum data (spec, spn, res, ctr, pga)

src/pygpsclient/graphview_frame.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ def update_frame(self):
167167
offset = AXIS_XL + 2
168168
colwidth = (w - AXIS_XL - AXIS_XR + 1) / siv
169169
resize_font = font.Font(size=min(int(colwidth / 2), 10))
170-
for d in sorted(data): # sort by ascending gnssid, svid
170+
for d in sorted(data.values()): # sort by ascending gnssid, svid
171171
gnssId, prn, _, _, snr = d
172172
if snr in ("", "0", 0):
173173
snr = 1 # show 'place marker' in graph

src/pygpsclient/nmea_handler.py

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,8 @@ def __init__(self, app):
4343

4444
self._raw_data = None
4545
self._parsed_data = None
46-
self.gsv_data = (
47-
[]
48-
) # Holds array of current satellites in view from NMEA GSV sentences
46+
# Holds array of current satellites in view from NMEA GSV sentences
47+
self.gsv_data = {}
4948
self.gsv_log = {} # Holds cumulative log of all satellites seen
5049

5150
def process_data(self, raw_data: bytes, parsed_data: object):
@@ -197,7 +196,7 @@ def _process_GSV(self, data: NMEAMessage):
197196
"""
198197

199198
show_unused = self.__app.frm_settings.config["unusedsat_b"]
200-
self.gsv_data = []
199+
self.gsv_data = {}
201200
gsv_dict = {}
202201
now = time()
203202
if data.talker == "GA":
@@ -212,7 +211,7 @@ def _process_GSV(self, data: NMEAMessage):
212211
gnss = 0 # GPS, SBAS, QZSS
213212

214213
for i in range(4):
215-
idx = f"_{i:02d}"
214+
idx = f"_{i+1:02d}"
216215
svid = getattr(data, "svid" + idx, "")
217216
if svid != "":
218217
key = f"{gnss}-{svid}"
@@ -232,7 +231,7 @@ def _process_GSV(self, data: NMEAMessage):
232231
if cno in ("", "0", 0) and not show_unused: # omit unused sats
233232
continue
234233
if now - lastupdate < SAT_EXPIRY: # expire passed sats
235-
self.gsv_data.append((gnssId, svid, elev, azim, cno))
234+
self.gsv_data[key] = (gnssId, svid, elev, azim, cno)
236235

237236
self.__app.gnss_status.siv = len(self.gsv_data)
238237
self.__app.gnss_status.gsv_data = self.gsv_data
@@ -292,36 +291,22 @@ def _process_UBX03(self, data: NMEAMessage):
292291

293292
settings = self.__app.frm_settings.config
294293
show_unused = settings["unusedsat_b"]
295-
self.gsv_data = []
296-
gsv_dict = {}
297-
now = time()
294+
self.gsv_data = {}
298295
for i in range(data.numSv):
299-
svid = getattr(data, f"svid_{i+1:02}")
296+
idx = f"_{i+1:02d}"
297+
svid = getattr(data, "svid" + idx)
300298
gnss = svid2gnssid(svid)
299+
elev = getattr(data, "ele" + idx)
300+
azim = getattr(data, "azi" + idx)
301+
cno = str(getattr(data, "cno" + idx))
301302
# fudge to make PUBX03 svid numbering consistent with GSV
302303
if gnss == 2 and svid > 210: # Galileo
303304
svid -= 210
304305
if gnss == 3 and svid > 32: # Beidou
305306
svid -= 32
306-
key = f"{gnss}-{svid}"
307-
gsv_dict[key] = (
308-
gnss,
309-
svid,
310-
getattr(data, f"ele_{i+1:02}"),
311-
getattr(data, f"azi_{i+1:02}"),
312-
str(getattr(data, f"cno_{i+1:02}")),
313-
now,
314-
)
315-
316-
for key in gsv_dict:
317-
self.gsv_log[key] = gsv_dict[key]
318-
319-
for key in self.gsv_log:
320-
gnssId, svid, elev, azim, snr, lastupdate = self.gsv_log[key]
321-
if snr in ("", "0", 0) and not show_unused: # omit unused sats
307+
if cno in ("", "0", 0) and not show_unused: # omit unused sats
322308
continue
323-
if now - lastupdate < SAT_EXPIRY: # expire passed sats
324-
self.gsv_data.append((gnssId, svid, elev, azim, snr))
309+
self.gsv_data[f"{gnss}-{svid}"] = (gnss, svid, elev, azim, cno)
325310

326311
self.__app.gnss_status.siv = len(self.gsv_data)
327312
self.__app.gnss_status.gsv_data = self.gsv_data

src/pygpsclient/skyview_frame.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ def update_frame(self):
117117
resize_font = font.Font(size=min(int(maxr / 10), 8))
118118
self.init_frame()
119119

120-
for d in sorted(data, key=itemgetter(4)): # sort by ascending snr
120+
for d in sorted(data.values(), key=itemgetter(4)): # sort by ascending snr
121121
try:
122122
gnssId, prn, ele, azi, snr = d
123123
ele = int(ele)

src/pygpsclient/ubx_handler.py

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

5150
def process_data(self, raw_data: bytes, parsed_data: object):
5251
"""
@@ -314,7 +313,7 @@ def _process_NAV_SAT(self, data: UBXMessage):
314313

315314
settings = self.__app.frm_settings.config
316315
show_unused = settings["unusedsat_b"]
317-
self.gsv_data = []
316+
self.gsv_data = {}
318317
num_siv = int(data.numSvs)
319318

320319
for i in range(num_siv):
@@ -329,7 +328,7 @@ def _process_NAV_SAT(self, data: UBXMessage):
329328
cno = getattr(data, "cno" + idx)
330329
if cno == 0 and not show_unused: # omit unused sats
331330
continue
332-
self.gsv_data.append((gnssId, svid, elev, azim, cno))
331+
self.gsv_data[f"{gnssId}-{svid}"] = (gnssId, svid, elev, azim, cno)
333332

334333
self.__app.gnss_status.siv = len(self.gsv_data)
335334
self.__app.gnss_status.gsv_data = self.gsv_data
@@ -379,7 +378,7 @@ def _process_NAV_SVINFO(self, data: UBXMessage):
379378
cno = getattr(data, "cno" + idx)
380379
if cno == 0 and not show_unused: # omit unused sats
381380
continue
382-
self.gsv_data.append((gnssId, svid, elev, azim, cno))
381+
self.gsv_data[f"{gnssId}-{svid}"] = (gnssId, svid, elev, azim, cno)
383382

384383
self.__app.gnss_status.gsv_data = self.gsv_data
385384

0 commit comments

Comments
 (0)