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
  1. Make SPARTN decryption (and associated cryptography library dependencies) an optional feature, to avoid a hard dependency on the cryptography library (which can be problematic on some platforms). To install without SPARTN decryption support, use python3 -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
  1. 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
  1. Add new optional timetags argument 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 timetags argument 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 integer 0, is passed to SPARTNReader, it will endeavour to capture 32-bit gnssTimeTag values for each msgSubtype from the incoming data stream and pass these to SPARTNMessage via the timetags arg to decrypt messages of the same msgSubtype with 16-bit gnssTimeTags (timeTagtype=0).
    • NB: this will only work if the data stream contains valid 32-bit gnssTimeTag values for the same msgSubtype e.g. if an HPAC message with msgSubtype=2 precedes a GAD or OCB message with msgSubType=2 and timeTagtype=0 - until such an eventuality occurs, decryption of GAD or OCB messages may fail!
    • Always use quitonerror=ERRLOG or quitonerror=ERRIGNORE when setting basedate to TIMEBASE.
  2. SPARTMMessage will now return explicit SPARTNDecryptionError if 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
  1. Add active support for Python 3.13
  2. Drop active support for Python 3.8 - now EOL as at October 2024.
  3. 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
  1. 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
  1. Enhance exception handling to Include SPARTNStreamError. Fixes issue where SPARTNStreamError may 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.1

What's Changed

  • Rc 1.0.1 by @semuadmin in https://github.com/semuconsulting/pyspartn/pull/27
  1. Internal enhancements to logging and exception handling.

Full Changelog: https://github.com/semuconsulting/pyspartn/compare/v1.0.0...v1.0.1

- 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
  1. 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.
  2. Add examples parse_ocb.py & parse_hpac.py illustrating how to convert parsed and decoded OCB and HPAC messages into iterable data structures.
  3. Add naive2aware(dt,tz) helper method - convert naive basedates to aware with UTC timezone.
  4. 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:
  1. Fix TypeError: can't subtract offset-naive and offset-aware datetimes error when using default basedates. Basedates must always contain timezone information.
  2. Use timezone.utc rather than datetime.UTC for 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
  1. Update handling of SPARTN-1X-BPAC and SPARTN-1X-EAS-DYN message types (not yet tested).
  2. 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.

  1. 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.
  2. 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).
  3. Add enumerations in spartntables.py.
  4. Update test cases.
  5. Other minor internal streamlining.

FIXES:

  1. 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:

  1. Fix Area count iterations - attribute SF030 represents (area count - 1). Affects GAD and HPAC payloads - if you're iterating through area groups, remember to use a range of SF030+1 rather than SF030 (see, for example, gad_plot.py).

ENHANCEMENTS:

  1. 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:

  1. Streamline and simplify conditional group parsing.
  2. Enable decrypt for all OCB messages (not just where nData > 35).
  3. Update development status to 'Beta'.
  4. Additional examples added for SPARTN MQTT client processing.

FIXES:

  1. 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
  1. 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
  1. OCB payload definitions and decoding updated.
  2. pyspartn can 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 in spartnmessage.py to 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:

  1. Add helper methods timetag2date and date2timetag.
  2. 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:

  1. 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:

  1. Add enc2float helper method to convert SPARTN encoded floating point values to floats.

CHANGES:

  1. Add temporary override of decode flag for message types that cannot yet be properly decoded (e.g. OCB)
  2. Add gad_plot.py example 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:

  1. convert_timetag routine updated - should now correctly convert 16-bit timetag to 32-bit for a given 'basedate'.
  2. basedate keyword added to read and parse routines. Defaults to datetime.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.
  3. 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

  1. Python 3.7 is officially end of life on 27 June 2023. This change removes Python 3.7 from workflows and documentation.
  2. No other functional changes.

- Python
Published by semuadmin over 2 years ago

pyspartn - v0.1.6-alpha

RELEASE CANDIDATE 0.1.6-alpha

CHANGES:

  1. 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:

  1. 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

  1. 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

  1. Add CRC checking
  2. 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

  1. Enhance parsing. Message decryption & decoding still a work in progress.

- Python
Published by semuadmin about 3 years ago

pyspartn - v0.1.0

RELEASE 0.1.0

  1. Initial Pre-Alpha release. See README Current Status for details.

- Python
Published by semuadmin about 3 years ago