ENHANCEMENTS:
- gnssmqttclient updated to support
pyspartn>=1.0.5
(see pyspartn Release Notes for new functionality).
ENHANCEMENTS:
- gnssntripclient will now tolerate an NTRIP 1.0 response to an NTRIP 2.0 request if the caster only supports NTRIP 1.0, or vice versa.
- gnssstreamer now supports both NTRIP 1.0 and NTRIP 2.0 clients via the
-rtkntripversion
flag (previously it assumed NTRIP 2.0).
FIXES:
- Remove print() statement.
ENHANCEMENTS:
- Enhance gnssntripclient exit and exception handling - Fixes #98.
ENHANCEMENTS:
- Fix UnicodeDecodeError in gnssntripclient - Fixes #93.
- Fix occasional
ubxload
'lockups' - Fixes #48. - Update
ubx...
utilities to use common logging provisions. - Drop active support for Python 3.8 - End of Life as at October 2024.
- Update min pyubx2 version to 1.2.47.
ENHANCEMENTS:
- Refactor gnssserver keyword arguments to facilitate code completion hints.
FIXES:
- Fix #90
- Minor fix to verbosity setting passthrough to lower modules e.g.
pyubx2
. - Minor fix to stream validation in gnssstreamer.
ENHANCEMENTS:
gnssstreamer
(akagnssdump
) completely refactored to support bidirectional communications with GNSS datastream via args--cliinput
,--input
and--clioutput
,--output
. CLI utility is now namedgnssstreamer
but the deprecatedgnssdump
will continue to work until at least v1.1.3.
Supported --clioutput
values are:
- 0 = terminal (default)
- 1 = binary file
- 2 = serial port
- 3 = TCP socket server
- 4 = evaluable Python (lamba) expression
- 5 = text file
Supported --cliinput
values are:
- 0 = none (default)
- 1 = RTK NTRIP RTCM
- 2 = RTK NTRIP SPARTN
- 3 = RTK MQTT SPARTN
- 4 = serial port (e.g. SPARTN RTK data from D9S L-Band receiver)
- 5 = binary file (e.g file containing UBX configuration commands)
- Improved test coverage.
ENHANCEMENTS:
- gnssntripclient now supports chunked transfer-encoded NTRIP datastreams.
- gnssntripclient improved handling of NTRIP 1.0 casters.
- gnssserver now supports NTRIP version 1.0 or 2.0 in NTRIP mode via arg
--ntripversion
.
ENHANCEMENTS:
- Add configuration file option to all CLI utilities via
-C
or--config
argument. Default location of configuration file can be specified in environment variable{utility}_CONF
e.g.gnssstreamer_CONF
,GNSSNTRIPCLIENT_CONF
, etc. Config files are text files containing key-value pairs which mirror the existing CLI arguments, e.g.
gnssstreamer -C gnssstreamer.conf
where gnssstreamer.conf contains...
filename=pygpsdata-MIXED3.log
verbosity=3
format=2
clioutput=1
output=testfile.bin
is equivalent to:
gnssstreamer --filename pygpsdata-MIXED3.log --verbosity 3 --format 2 --clioutput 1 --output testfile.bin
- Streamline logging. CLI usage unchanged; to use pygnssutils logging within calling application, invoke
logging.getLogger("pygnssutils")
in calling module. - Internal enhancements to experimental UBXSimulator to add close() and in_waiting() methods; recognise incoming RTCM data.
- GGA message sent to NTRIP Caster in GGALIVE mode will include additional live attributes (siv, hdop, quality, diffage, diffstation). Thanks to @yydgis for contribution.
FIXES:
- gnssntripclient - update HTTP GET request for better NTRIP 2.0 compliance
- issue with delay on gnssntripclient retry limit
ENHANCEMENTS:
- Minor internal enhancements to logging support - add explicit CRITICAL log level (verbosity = -1).
- Add logging to socket_server.py module.
ENHANCEMENTS:
- Add automated network connection timeout and retry to gnssntripclient - new CLI arguments --retries, --retryinterval, --timeout. See gnssntripclient -h for help.
- Add multi-client TCP socket server output option to gnssntripclient and gnssmqttclient - new CLI argument --cliout 3.
- Refactor utilties to use standard Python logging module - --verbosity arguments are now mapped to logging levels (0 low => error, critical; 1 medium => warning; 2 high => info; 3 debug => debug).
--logtofile
CLI argument now contains fully qualified path to logfile, or "" to log to stderr;--logpath
argument removed. - Refactor utilities to use separate *_cli.py module for command line argument parsing.
Use -h
for help.
ENHANCEMENTS:
- Add --clioutput CLI option to gnssntripclient - supports output types of binary file or Serial port
ENHANCEMENTS:
- Fix waittime in ubxload - thanks to @hugokernel for contribution.
ENHANCEMENTS:
- Add
ubxcompare
CLI utility.
FIXES:
- Update SPARTN decryption argument names - Fixes no
decode
setting error.
ENHANCEMENTS:
- Add SPARTN payload decrypt option to gnssnmqqclient.
- Minor internal streamlining.
FIXES:
- Further fixes to socket_server NTRIP caster to return properly formatted HTTP header with RTCM3 data stream.
FIXES:
- Fix to socket_server NTRIP caster source table HTTP response which was causing some NTRIP clients to timeout. Fixes #60
ENHANCEMENTS:
- Add support for u-blox PointPerfect NTRIP SPARTN service in gnssntripclient.
ENHANCEMENTS:
- Add SSL support to gnssntripclient.
FIXES:
- Fix simvector function in ubxsimulator.
CHANGES:
- Add support for paho-mqtt v2.0.0.
- Update min pyubx2 version to 1.2.38.
- Add support for pyubx2 SETPOLL msgmode (auto-detect input message mode SET or POLL)
ENHANCEMENTS:
- Add experimental UBX Simulator.
CHANGES:
- Update min pyubx2 version to 1.2.37.
CHANGES:
- Internal enhancements to IP6 address handling.
- Update min pyubx2 version to 1.2.35
CHANGES:
- Update min pyubx2 version to 1.2.32
ENHANCEMENTS:
- GNSSMQTTClient updated to support SPARTN MQTT L-Band Topics (including
/pp/frequencies/Lb
) in addition to IP. - Add MQTTMessage container class for any MQTT topics which contain JSON payloads, e.g.,
<MQTT(/PP/FREQUENCIES/LB, frequencies_us_current_value=1556.29, frequencies_eu_current_value=1545.26)>
CHANGES:
- GNSSNTRIPClient amended to output sourcetable and closest mountpoint to designated output medium, if
--output
argument is notNone
and--mountpoint
argument is blank. Previously only output RTCM3 data.
CHANGES:
- Add settings.setter methods to GNSSNTRIPClient and GNSSMQTTClient (to support saving settings in
PyGPSClient>=1.4.1
json configuration file). No functional changes to command line clients.
CHANGES:
- Add
ntripuser
andntrippassword
keyword arguments toSockerServer
,GNSSSockerServer
andGNSSNTRIPClient
classes for use in NTRIP Caster authentication. If not supplied, these will default to environment variablesPYGPSCLIENT_USER
andPYGPSCLIENT_PASSWORD
or, failing that, "anon" and "password". NB: these arguments were previously nameduser
andpassword
inGNSSSockerServer
andGNSSNTRIPClient
classes - any scripts instantiating either of these classes will require updating. - Updated minimum version dependency for pyubx2 (1.2.29)
CHANGES:
- Updated minimum version dependencies for pyubx2 (1.2.28) and pyspartn (0.1.10). No functional changes.
- Python 3.7 is officially end of life on 27 June 2023. This change removes Python 3.7 from workflows and documentation.
- No other functional changes.
FIXES:
- Fix error when cycling log files #29
ENHANCEMENTS:
- Add IPv6 support in gnssserver, gnssstreamer and gnssntripclient.
- Add
on_disconnect
callback tognssmqttclient.py
and enhance exception reporting back to calling app. - Minor enhancements to SPARTN and NTRIP client exception handling.
CHANGES:
- Add bandit security analysis to workflows.
- Other internal updates to VSCode and GitHub Actions workflows
- Update min pyubx2 and pyspartn versions.
- imports sorted using isort and black.
No functional changes.
CHANGES:
- superfluous haversine helper, latlon2dms and latlon2dmm methods removed - use pynmeagps helpers instead
- Minimum pyubx2 version updated to 1.2.23
- Minimum pyspartn version updated to 0.1.4
- Minor updates to VSCode tasks and GitHub actions for pyproject.toml build framework
FIXES:
- Fix gnssserver crash - Fixes #17
ENHANCEMENTS:
- Enhance gnssstreamer.py msgfilter functionality to include periodic filtering = thanks to @acottuli for contribution.
FIXES:
- Add omitted dependency for paho-mqtt.
ENHANCEMENTS:
GNSSMQTTClient
SPARTN MQTT client class and command line utility added - see README for details
CHANGES:
-
All CLI utilities amended to use standard Python
argparse
library for parsing input arguments. For example:- Previously:
gnssstreamer port=/dev/tty.usbmodem1101 baud=115200 timeout=5
- Now:
gnssstreamer --port /dev/tty.usbmodem1101 --baudrate 115200 --timeout 5
- For all CLI utilities, type
-h
for help. Refer to README for other examples. - The
kwargs
for the underlying Class constructors are unchanged.
- Previously:
ENHANCEMENTS:
- Add two new CLI utilities
ubxload
andubxsave
which allow user to save and reload the current configuration of a Gen 9+ UBX GNSS device. Theubxsave
utility works by polling a complete set of CFG-VALGET keys from the UBX Configuration Database, converting the responses to CFG-VALSET commands and saving these as binary UBXMessages. Theubxload
utility loads these CFG-VALSET messages from a file and uploads them to the receiver's volatile memory (RAM) memory layer. The two utilities provide an easy way to copy configurations between compatible devices.
CHANGES:
- First post-beta release; some internal streamlining.
- Add
ubxsetrate
CLI utility to set message rates on u-blox receivers.
FIXES:
- Fix error in
gnssntripclient
which was causingHTTP 403 Forbidden
errors from some NTRIP casters (e.g. UNAVCO).
FIXES:
- Fix gnssntripclient issue #6 arising from blank lines in HTTP sourcetable responses.
ENHANCEMENTS:
- NTRIP client enhancement.
ggamode
keyword argument added tognssntripclient
- allows user to select GGA position source; 0 = live position from receiver, 1 = fixed reference position. Default is 0.
FIXES:
- Fix to NTRIP V2 HTTP GET Header - thanks to @polytopes-design for contribution.
CHANGES:
pyubx2.UBXReader
class used in place ofpygnssutils.GNSSReader
to eliminate code and test duplication.
ENHANCEMENTS:
- Outfile option added to gnssstreamer. See README and
gnssstreamer -h
for details.
FIXES:
- Fix typo error in formatGGA routine in gnssntripclient.py.
- Fix \examples\rtk_example.py.
CHANGES:
- Min versions of pyubx2 and pynmeagps updated to 1.2.14 and 1.0.14 respectively.
ENHANCEMENTS:
- NTRIP Client class
GNSSNTRIPClient
and CLI utilitygnssntripclient
added. See README for details.
CHANGES
- Output handler processing simplified.
- Documentation updated.
FIXES:
- JSON output now correct for all output handler types (not just stdout and File)
ENHANCEMENTS:
- JSON added to range of available output formats in gnssstreamer.
- 'allhandler' protocol handler option added to gnssstreamer; Use same external protocol handler for all protocols. Will override any individual protocol handlers (ubxhandler etc.)
- Context management added to GNSSStreamer and GNSSServer modules.
- Documentation updated.
CHANGES:
GNSSServer
class renamed toGNSSSocketServer
for clarity.- Test coverage extended.
- Cosmetic documentation tidy up.
- Initial public release of combined Python 3 GNSS utility library which consolidates the common capabilities of three existing GNSS libraries:
pynmeagps
(NMEA),pyubx2
(UBX) andpyrtcm
(RTCM3) pynmeagps
,pyubx2
andpyrtcm
will continue to be developed as independent libraries for their respective GNSS protocols, but functionality which is common to all three - as well as other useful generic GNSS functions - will be incorporated intopygnssutils
.