Recent Releases of pyspartn
pyspartn - v1.0.7
What's Changed
- RC 1.0.7 by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/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: https://github.com/semuconsulting/pyspartn/compare/v1.0.6...v1.0.7
- Python
Published by semuadmin 8 months ago
pyspartn - v1.0.6
What's Changed
- RC 1.0.6 by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/36
- Update build configuration and minimum cryptography version - no functional changes.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v1.0.5...v1.0.6
- Python
Published by semuadmin 9 months ago
pyspartn - v1.0.5
What's Changed
- RC 1.0.5 by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/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: https://github.com/semuconsulting/pyspartn/compare/v1.0.4...v1.0.5
- Python
Published by semuadmin over 1 year ago
pyspartn - v1.0.4
What's Changed
- RC 1.0.4 by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/33
- Add active support for Python 3.13
- Drop active support for Python 3.8 - now EOL as at October 2024.
- Rename socketstream to socketwrapper for clarity.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v1.0.3...v1.0.4
- Python
Published by semuadmin over 1 year ago
pyspartn - v1.0.3
What's Changed
- add troposphere coefficient offsets by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/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 https://github.com/semuconsulting/pyspartn/discussions/30
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v1.0.2...v1.0.3
- Python
Published by semuadmin over 1 year ago
pyspartn - v1.0.2
What's Changed
- Enhance exception handling to Include SPARTNStreamError. by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/28
- Enhance exception handling to Include SPARTNStreamError. Fixes issue where
SPARTNStreamErrormay still be raised even if ERRIGNORE is set.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v1.0.1...v1.0.2
- Python
Published by semuadmin over 1 year ago
pyspartn - v1.0.0
What's Changed
- Rc 1.0.0 by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/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: https://github.com/semuconsulting/pyspartn/compare/v0.4.0-beta...v1.0.0
- Python
Published by semuadmin almost 2 years ago
pyspartn - v0.4.0-beta
What's Changed
- Rc 0.4.0 by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/24 FIXES:
- Fix
TypeError: can't subtract offset-naive and offset-aware datetimeserror when using default basedates. Basedates must always contain timezone information. - Use
timezone.utcrather thandatetime.UTCfor compatibility with older Python versions.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v0.3.3-beta...v0.4.0-beta
- Python
Published by semuadmin almost 2 years ago
pyspartn - v0.3.3-beta
What's Changed
- Release candidate 0.3.3 beta by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/22
- Update handling of SPARTN-1X-BPAC and SPARTN-1X-EAS-DYN message types (not yet tested).
- Add improved handling of half-day rollovers when decrypting SPARTN datastreams - thanks to @JonathanMullerGeosatis for contribution:
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v0.3.2-beta...v0.3.3-beta
- Python
Published by semuadmin almost 2 years ago
pyspartn - v0.3.2-beta
What's Changed
- Release Candidate 0.3.2-beta by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/19
ENHANCEMENTS:
Thanks to @jonathanmuller for contributions.
- Attributes are now converted to type automatically e.g. float attributes will automatically be converted to floats via the enc2float() helper method using the documented resolution and range minimum values.
- SPARTNReader will now store any 32-bit gnssTimeTags for each msgSubtype (GPS, GLO, GAL, etc.) from the incoming datastream for use as 'basedates' in the decryption of any encrypted messages with ambiguous 16-bit gnssTimetags (timeTagtype = 0). If no 32-bit gnssTimeTags are available for a given msgSubtype, the input argument 'basedate' will be used instead, adjusted for any UTC & leap second shift for that msgSubtype (e.g. GLONASS basedate = GPS + 3600*3-18).
- Add enumerations in spartntables.py.
- Update test cases.
- Other minor internal streamlining.
FIXES:
- Fix datadesc() helper method with certain attribute names e.g. SF049a.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v0.3.1-beta...v0.3.2-beta
- Python
Published by semuadmin almost 2 years ago
pyspartn - v0.3.1-beta
What's Changed
- Rc 0.3.1 beta by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/18
FIXES:
- Fix Area count iterations - attribute
SF030represents (area count - 1). Affects GAD and HPAC payloads - if you're iterating through area groups, remember to use a range ofSF030+1rather thanSF030(see, for example, gad_plot.py).
ENHANCEMENTS:
- Examples updated.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v0.3.0-beta...v0.3.1-beta
- Python
Published by semuadmin almost 2 years ago
pyspartn - v0.3.0-beta
What's Changed
- RELEASE CANDIDATE 0.3.0 beta by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/15
ENHANCEMENTS:
- Streamline and simplify conditional group parsing.
- Enable decrypt for all OCB messages (not just where nData > 35).
- Update development status to 'Beta'.
- Additional examples added for SPARTN MQTT client processing.
FIXES:
- Fix OCB IODE payload definition - thanks to @jonathanmuller for contribution.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v0.2.1-alpha...v0.3.0-beta
- Python
Published by semuadmin almost 2 years ago
pyspartn - v0.2.1-alpha
What's Changed
- Release Candidate 0.2.1-alpha by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/13
- Fix to "no authInd attribute" error when parsing PointPerfect NTRIP SPARTN datastreams.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v0.2.0-alpha...v0.2.1-alpha
- Python
Published by semuadmin almost 2 years ago
pyspartn - v0.2.0-alpha
What's Changed
- update OCB decoding by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/12
- OCB payload definitions and decoding updated.
pyspartncan now successfully decode all GAD and HPAC payloads and the majority of OCB payloads (though further testing is required to validate decoded payload content), but some small OCB payloads (nData< 35 bytes) cannot yet be successfully decoded. For the time being, a temporary override has been implemented inspartnmessage.pyto suppress the decode flag for those payload types that cannot yet be successfully decoded. This will be removed once testing is completed.
Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v0.1.10-alpha...v0.2.0-alpha
- Python
Published by semuadmin over 2 years ago
pyspartn - v0.1.10-alpha
RELEASE 0.1.10-alpha
ENHANCEMENTS:
- Add helper methods timetag2date and date2timetag.
- Allow basedate decryption parameter to be passed as either datetime or an integer representing a 32-bit gnssTimeTag. See /examples/gad_plot.py for usage.
CHANGES:
- Update constructor arguments and docstrings to clarify API (no functional changes).
- Python
Published by semuadmin over 2 years ago
pyspartn - v0.1.9-alpha
RELEASE 0.1.9-alpha
ENHANCEMENTS:
- Add
enc2floathelper method to convert SPARTN encoded floating point values to floats.
CHANGES:
- Add temporary override of decode flag for message types that cannot yet be properly decoded (e.g. OCB)
- Add
gad_plot.pyexample to illustrate how to extract geographic area definitions from SPARTN-1X-GAD messages.
- Python
Published by semuadmin over 2 years ago
pyspartn - v0.1.8-alpha
RELEASE 0.1.8-alpha
FIXES:
convert_timetagroutine updated - should now correctly convert 16-bit timetag to 32-bit for a given 'basedate'.basedatekeyword added to read and parse routines. Defaults todatetime.now(). This argument must be provided in order to decrypt messages where timeTagType = 0 (ambiguous 16-bit gnssTimeTag format), which typically includes GAD and some OCB message types but not HPAC message types.- As a result of the changes above, pyspartn can now successfully decode HPAC and GAD messages, but issues remain with decoding OCB payloads.
- Python
Published by semuadmin over 2 years ago
pyspartn - v0.1.7-alpha
RELEASE 0.1.7-alpha
- 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.
- Python
Published by semuadmin over 2 years ago
pyspartn - v0.1.6-alpha
RELEASE CANDIDATE 0.1.6-alpha
CHANGES:
- Further work on Alpha parsing and decoding functions.
- Python
Published by semuadmin almost 3 years ago
pyspartn - v0.1.5-alpha
RELEASE 0.1.5-alpha
CHANGES:
- Further work on Alpha parsing and decoding functions.
- Python
Published by semuadmin almost 3 years ago
pyspartn - v0.1.4-alpha
Further work on Alpha parsing and decoding functions. Code now includes complete field and payload definitions and provisional parsing and decryption (AES-CTR) routines for OCB, HPAC and GAD SPARTN message types.
NB: Message decrypt and decode not yet fully tested.
- Python
Published by semuadmin almost 3 years ago
pyspartn - v0.1.3-alpha
RELEASE 0.1.3-alpha
- Byte attributes in parsed messages will be fully escaped e.g. b'/x61/x62/x63' rather than b'abc'
- Python
Published by semuadmin about 3 years ago
pyspartn - v0.1.2-alpha
RELEASE 0.1.2-alpha
- Add CRC checking
- Add RXM-PMP SPARTN message parsing example
- Python
Published by semuadmin about 3 years ago
pyspartn - v0.1.1-alpha
RELEASE 0.1.1-ALPHA
- Enhance parsing. Message decryption & decoding still a work in progress.
- Python
Published by semuadmin about 3 years ago