This package contains generic implementations for various CCSDS (Consultative Committee for Space Data Systems) and ECSS (European Cooperation for Space Standardization) packet standards.
Currently, this includes the following components:
- Space Packet implementation according to CCSDS Blue Book 133.0-B-2
- CCSDS CDS short timestamp implementation according to CCSDS 301.0-B-4 3.3.
- PUS Telecommand and PUS Telemetry implementation according to the ECSS-E-ST-70-41C standard. PUS A (legacy) is supported as well.
- CCSDS File Delivery Protcol (CFDP) packet implementations according to CCSDS Blue Book 727.0-B-5.
- Unified Space Data Link Protocol (USLP) frame implementations according to CCSDS Blue Book 732.1-B-2.
It also contains various helper modules which are commonly used when working with these standards:
PusVerificatormodule to track the verification of sent telecommands.- PTC and PFC definitions for ECSS packets.
Countdownutility class.- Sequence counter utility classes.
You can install this package from PyPI
For example, using uv
Setting up virtual environment:
uv venvRegular install:
uv pip install -e .Interactive install with testing support:
uv pip install -e ".[test]"You can find all examples inside the documentation.
If you want to run the tests, it is recommended to install pytest and coverage (optional)
first. You also have to install the package with the optional test feature:
uv pip install -e ".[test]"Running tests regularly:
pytestRunning tests with coverage:
coverage run -m pytest
coverage reportThe documentation is built with Sphinx and new documentation should be written using the NumPy format.
Install the required dependencies first:
pip install -r docs/requirements.txtThen the documentation can be built with
cd docs
make htmlYou can run the doctests with
make doctestLinting:
ruff checkFormatting:
ruff format