Skip to content

Commit 089a61e

Browse files
authored
Merge pull request #123 from semuconsulting/RC-1.1.18
add support for QGC
2 parents b74c948 + 8ee5fa6 commit 089a61e

File tree

8 files changed

+560
-55
lines changed

8 files changed

+560
-55
lines changed

README.md

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ pygnssutils
33

44
[Current Status](#currentstatus) |
55
[Installation](#installation) |
6+
[gnssreader](#gnssreader) |
67
[gnssstreamer CLI](#gnssstreamer) |
78
[gnssserver CLI](#gnssserver) |
89
[gnssntripclient CLI](#gnssntripclient) |
@@ -16,12 +17,14 @@ pygnssutils is an original series of Python GNSS utility classes and CLI tools b
1617

1718
- [pyubx2](https://github.com/semuconsulting/pyubx2) - UBX parsing and generation library
1819
- [pysbf2](https://github.com/semuconsulting/pysbf2) - SBF parsing and generation library
20+
- [pyqgc](https://github.com/semuconsulting/pyqgc) - QGC parsing and generation library
1921
- [pynmeagps](https://github.com/semuconsulting/pynmeagps) - NMEA parsing and generation library
2022
- [pyrtcm](https://github.com/semuconsulting/pyrtcm) - RTCM3 parsing library
2123
- [pyspartn](https://github.com/semuconsulting/pyspartn) - SPARTN parsing library
2224

2325
Originally developed in support of the [PyGPSClient](https://github.com/semuconsulting/PyGPSClient) GUI GNSS application, the utilities provided by pygnssutils can also be used in their own right:
2426

27+
1. `GNSSReader` class. This is essentially an amalgamation of the `*Reader` classes in all the subsidiary parsers listed above, allowing the user to seamlessly stream any of NMEA, UBX, SBF, QGC, RTCM3 and SPARTN message protocols concurrently from a single stream.
2528
1. `GNSSStreamer` class and its associated [`gnssstreamer`](#gnssstreamer) (*formerly `gnssdump`*) CLI utility. This is essentially a configurable bidirectional input/output wrapper around the [`pyubx2.UBXReader`](https://github.com/semuconsulting/pyubx2#reading) class with flexible message formatting, filtering and output handling options for NMEA, UBX, SBF and RTCM3 protocols (**NB:** UBX and SBF protocols are mutually exclusive).
2629
1. `GNSSSocketServer` class and its associated [`gnssserver`](#gnssserver) CLI utility. This implements a TCP Socket Server for GNSS data streams which is also capable of being run as a simple NTRIP Server/Caster.
2730
1. `GNSSNTRIPClient` class and its associated [`gnssntripclient`](#gnssntripclient) CLI utility. This implements
@@ -58,7 +61,7 @@ Contributions welcome - please refer to [CONTRIBUTING.MD](https://github.com/sem
5861
[![PyPI version](https://img.shields.io/pypi/v/pygnssutils.svg?style=flat)](https://pypi.org/project/pygnssutils/)
5962
[![PyPI downloads](https://github.com/semuconsulting/pygpsclient/blob/master/images/clickpy_top10.svg?raw=true)](https://clickpy.clickhouse.com/dashboard/pygnssutils)
6063

61-
`pygnssutils` is compatible with Python 3.9-3.13.
64+
`pygnssutils` is compatible with Python>=3.10.
6265

6366
In the following, `python3` & `pip` refer to the Python 3 executables. You may need to substitute `python` for `python3`, depending on your particular environment (*on Windows it's generally `python`*). **It is strongly recommended that** the Python 3 binaries (\Scripts or /bin) and site_packages directories are included in your PATH (*most standard Python 3 installation packages will do this automatically if you select the 'Add to PATH' option during installation*).
6467

@@ -85,16 +88,25 @@ For [Conda](https://docs.conda.io/en/latest/) users, `pygnssutils` is also avail
8588
conda install -c conda-forge pygnssutils
8689
```
8790

91+
---
92+
## <a name="gnssreader">GNSSReader class</a>
93+
94+
```
95+
class pygnssutils.gnssreader.GNSSReader(**kwargs)
96+
```
97+
98+
`GNSSReader` is an amalgamation of the individual `*Reader` classes from the parser libraries listed above, utilising the same input arguments (`protfilter`, `quitonerror`, etc). It allows the user to seamlessly stream any of NMEA, UBX, SBF, QGC, RTCM3 and SPARTN message protocols concurrently from a single GNSS binary data stream.
99+
100+
Refer to the [Sphinx API documentation](https://www.semuconsulting.com/pygnssutils/pygnssutils.html#module-pygnssutils.gnssreader) for further details.
101+
88102
---
89103
## <a name="gnssstreamer">GNSSStreamer and gnssstreamer CLI (*formerly gnssdump*)</a>
90104

91105
```
92106
class pygnssutils.gnssstreamer.GNSSStreamer(**kwargs)
93107
```
94108

95-
`gnssstreamer` (*formerly `gnssdump`*) is a command line utility for concurrent bidirectional communication with a GNSS datastream - typically a GNSS receiver. It supports NMEA, UBX, SBF, RTCM3, SPARTN, NTRIP and MQTT protocols.
96-
97-
**NB:** Currently, `gnsssstreamer` can parse data streams containing *either* UBX *or* SBF messages, but not both at the same time. If both are included in `protfilter`, UBX will take precedence over SBF.
109+
`gnssstreamer` (*formerly `gnssdump`*) is a command line utility for concurrent bidirectional communication with a GNSS datastream - typically a GNSS receiver. It supports NMEA, UBX, SBF, QGC, RTCM3, SPARTN, NTRIP and MQTT protocols - individual protocols can be filtered via the `protfilter` arguments.
98110

99111
- The CLI utility can acquire data from any one of the following sources:
100112
- `port`: serial port e.g. `COM3` or `/dev/ttyACM1` (can specify `--baudrate` and `--timeout`)

RELEASE_NOTES.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
# pygnssutils
22

3-
### RELEASE 1.1.17
3+
### RELEASE 1.1.18
44

5-
CHANGES:
5+
ENHANCEMENTS:
6+
7+
1. Add support for Quectel QGC protocol.
8+
9+
### RELEASE 1.1.17
610

7-
1. Min pyubx2 ver updated to 1.2.58 - incorporates several minor fixes and additional support for proprietary Quectel NMEA message definitions.
11+
1. Update minimum versions of pyubx2 and pynmeagps to cater for various fixes and new message types.
812

913
### RELEASE 1.1.16
1014

docs/pygnssutils.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,14 @@ pygnssutils.gnssntripclient\_cli module
5252
:undoc-members:
5353
:show-inheritance:
5454

55+
pygnssutils.gnssreader module
56+
-----------------------------
57+
58+
.. automodule:: pygnssutils.gnssreader
59+
:members:
60+
:undoc-members:
61+
:show-inheritance:
62+
5563
pygnssutils.gnssserver module
5664
-----------------------------
5765

pyproject.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description = "GNSS Command Line Utilities"
1111
license = "BSD-3-Clause"
1212
license-files = ["LICENSE"]
1313
readme = "README.md"
14-
requires-python = ">=3.9"
14+
requires-python = ">=3.10"
1515
classifiers = [
1616
"Operating System :: OS Independent",
1717
"Development Status :: 5 - Production/Stable",
@@ -23,7 +23,6 @@ classifiers = [
2323
"Intended Audience :: Science/Research",
2424
"Intended Audience :: End Users/Desktop",
2525
"Programming Language :: Python :: 3",
26-
"Programming Language :: Python :: 3.9",
2726
"Programming Language :: Python :: 3.10",
2827
"Programming Language :: Python :: 3.11",
2928
"Programming Language :: Python :: 3.12",
@@ -42,6 +41,7 @@ dependencies = [
4241
"pyubx2>=1.2.58",
4342
"pysbf2>=1.0.0",
4443
"pyubxutils>=1.0.3",
44+
"pyqgc>=0.1.1",
4545
]
4646

4747
[project.scripts]
@@ -83,10 +83,10 @@ deploy = [{ include-group = "build" }, { include-group = "test" }]
8383
version = { attr = "pygnssutils._version.__version__" }
8484

8585
[tool.black]
86-
target-version = ['py39']
86+
target-version = ['py310']
8787

8888
[tool.isort]
89-
py_version = 39
89+
py_version = 310
9090
profile = "black"
9191

9292
[tool.bandit]
@@ -103,7 +103,7 @@ skips = [
103103
jobs = 0
104104
recursive = "y"
105105
reports = "y"
106-
py-version = "3.9"
106+
py-version = "3.10"
107107
fail-under = "9.8"
108108
fail-on = "E,F"
109109
clear-cache-post-run = "y"

src/pygnssutils/_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.1.17"
11+
__version__ = "1.1.18"

0 commit comments

Comments
 (0)