5.0.0
What's Changed
- BREAKING: Main API changed. No need to create separate definition and parser objects any more. Create only a
definition from your XTCE document and instead ofmy_parser.generator
, usemy_packet_definition.packet_generator
. - BREAKING: Removed CSV-based packet definition support. We may indirectly support this in the future via
a utility for converting CSV definitions to XTCE. - BREAKING: Separated out logical pieces into separate modules rather than everything
living within the xtcedef module. This means user imports may be different now. - BREAKING: Replace
bitstring
objects with native Python bytes objects- Remove dependency on the
bitstring
library - Much faster parsing speed
- Users that are passing
bitstring.ConstBitStream
objects togenerator
will need to pass a
binary filelike object instead
- Remove dependency on the
- BREAKING: The
ParsedDataItem
class has been removed and the derived values are being returned now.
Theraw_value
is stored as an attribute on the returned object. The other items can be accessed
through the packet definition objectmy_packet_definition.named_parameters["my_item"].short_description
- BREAKING: The return type of BinaryDataEncoding is now the raw bytes.
To get the previous behavior you can convert the data to an integer and then format it as a binary string.
f"{int.from_bytes(data, byteorder='big'):0{len(data)*8}b}"
- BREAKING: Removed
word_size
kwarg from packet generator method.
We expect all binary data to be integer number of bytes. - BREAKING: Changed
packet_generator
kwargskip_header_bits
toskip_header_bytes
. - Fixed incorrect parsing of StringDataEncoding elements. Raw string values are now returned as byte buffers.
Derived string values contain python string objects. - The
CCSDSPacket
class is now a dictionary subclass, enabling direct lookup of items from the Packet itself. - A
RawPacketData
class has been added that is a subclass of bytes. It keeps track of the current
parsing location and enables reading of bit lengths as integers or raw bytes. - Fix EnumeratedParameterType to handle duplicate labels
- Add error reporting for unsupported and invalid parameter types
- Add support for MIL-1750A floats (32-bit only)
New Contributors
- @laspsandoval made their first contribution in #50
- @cgobat made their first contribution in #18
Full Changelog: 4.2.0...5.0.0