Releases: semuconsulting/pyspartn
Releases · semuconsulting/pyspartn
v1.0.8
What's Changed
- RC 1.0.8 by @semuadmin in #38
- As of October 2025, u-blox have discontinued all their encrypted SPARTN services (PointPerfect L-Band and MQTT). For this reason, the
cryptographypackage used for SPARTN message decryption is now an optional dependency forpyspartn. To enable decryption support, installcryptographyseparately e.g.
python3 -m pip install --upgrade cryptography- Minimum actively supported Python version updated to 3.10 (3.9 EOL end October 2025).
Full Changelog: v1.0.7...v1.0.8
v1.0.7
What's Changed
- RC 1.0.7 by @semuadmin in #37
- Make SPARTN decryption (and associated
cryptographylibrary dependencies) an optional feature, to avoid a hard dependency on thecryptographylibrary (which can be problematic on some platforms). To install without SPARTN decryption support, usepython3 -m pip install pyspartn --no-deps.
Full Changelog: v1.0.6...v1.0.7
v1.0.6
What's Changed
- RC 1.0.6 by @semuadmin in #36
- Update build configuration and minimum cryptography version - no functional changes.
Full Changelog: v1.0.5...v1.0.6
v1.0.5
What's Changed
- RC 1.0.5 by @semuadmin in #34
- Add new optional
timetagsargument to SPARTNReader & SPARTNMessage, to allow them to use any available 32-bit gnssTimeTag values from the incoming datastream in order to decrypt messages (rather than having to provide an explicit basedate).- The
timetagsargument is a dict of the format{0: 495763673, 1: 485866844, 3: 410283479}where the key represents the message subType (0 = GPS, 1 = GLO, 2 = GAL, etc.), and the value represents the 32-bit gnssTimeTag value from the data stream (if present). - If a nominal decryption basedate of
TIMEBASE(datetime(2010, 1, 1, 0, 0, tzinfo=timezone.utc)), or integer0, is passed to SPARTNReader, it will endeavour to capture 32-bitgnssTimeTagvalues for eachmsgSubtypefrom the incoming data stream and pass these to SPARTNMessage via thetimetagsarg to decrypt messages of the samemsgSubtypewith 16-bit gnssTimeTags (timeTagtype=0). - NB: this will only work if the data stream contains valid 32-bit
gnssTimeTagvalues for the samemsgSubtypee.g. if an HPAC message withmsgSubtype=2precedes a GAD or OCB message withmsgSubType=2andtimeTagtype=0- until such an eventuality occurs, decryption of GAD or OCB messages may fail! - Always use
quitonerror=ERRLOGorquitonerror=ERRIGNOREwhen setting basedate toTIMEBASE.
- The
- SPARTMMessage will now return explicit
SPARTNDecryptionErrorif unable to successfully decrypt/decode message using key and basedate provided.
Full Changelog: v1.0.4...v1.0.5
v1.0.4
What's Changed
- RC 1.0.4 by @semuadmin in #33
- Add active support for Python 3.13
- Drop active support for Python 3.8 - now EOL as at October 2024.
- Rename socket_stream to socket_wrapper for clarity.
Full Changelog: v1.0.3...v1.0.4
v1.0.3
What's Changed
- add troposphere coefficient offsets by @semuadmin in #31
-
Fixed offsets added to troposphere attributes, in accordance with SPARTN 2.0.2 specification:
- SF043 (Area average vertical hydrostatic delay )-> add 2.3m
- SF045 (Small troposphere coefficient T00) -> add 0.252m
- SF048 (Large troposphere coefficient T00) -> add 0.252m
Thanks for @jonathanmuller for contribution.
Fixes #30
Full Changelog: v1.0.2...v1.0.3
v1.0.2
What's Changed
- Enhance exception handling to Include SPARTNStreamError. by @semuadmin in #28
- Enhance exception handling to Include SPARTNStreamError. Fixes issue where
SPARTNStreamErrormay still be raised even if ERRIGNORE is set.
Full Changelog: v1.0.1...v1.0.2
v1.0.1
What's Changed
- Rc 1.0.1 by @semuadmin in #27
- Internal enhancements to logging and exception handling.
Full Changelog: v1.0.0...v1.0.1
v1.0.0
What's Changed
- Rc 1.0.0 by @semuadmin in #26
- Add payload attributes for PRN, Phase Bias and Code Bias values, derived from the corresponding bitmasks for each constellation type. e.g.
PRN_01=3,PhaseBias_01_03=L2L,CodeBias_02_03=C2L. - Add examples
parse_ocb.py&parse_hpac.pyillustrating how to convert parsed and decoded OCB and HPAC messages into iterable data structures. - Add
naive2aware(dt,tz)helper method - convert naive basedates to aware with UTC timezone. - Internal enhancements to simplify basedate handling.
Full Changelog: v0.4.0-beta...v1.0.0