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:
PusVerificator
module to track the verification of sent telecommands.- PTC and PFC definitions for ECSS packets.
Countdown
utility class.- Sequence counter utility classes.
You can install this package from PyPI
For example, using uv
Setting up virtual environment:
uv venv
Regular 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:
pytest
Running tests with coverage:
coverage run -m pytest
coverage report
The 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.txt
Then the documentation can be built with
cd docs
make html
You can run the doctests with
make doctest
Linting:
ruff check
Formatting:
ruff format