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 File Delivery Protocol (CFDP) packet implementations according to CCSDS Blue Book 727.0-B-5
- PUS Telecommand and PUS Telemetry implementation according to the ECSS-E-ST-70-41C standard.
- CUC (CCSDS Unsegmented Time Code) implementation according to CCSDS 301.0-B-4 3.2
- CDS (CCSDS Day Segmented Time Code) implementation according to CCSDS 301.0-B-4 3.3
- Some helper types to support ASCII timecodes as specified in CCSDS 301.0-B-4 3.5
spacepackets
supports various runtime environments and is also suitable for no_std
environments.
std
: Enables functionality relying on the standard library.alloc
: Enables features which operate on containers likealloc::vec::Vec
. Enabled by thestd
feature.
serde
: Addsserde
support for most types by addingSerialize
andDeserialize
derive
schrono
: Add basic support for thechrono
time library.timelib
: Add basic support for thetime
time library.defmt
: Add support for thedefmt
by adding thedefmt::Format
derive on many types.
You can check the documentation of individual modules for various usage examples.
Coverage was generated using grcov
. If you have not done so
already, install the llvm-tools-preview
:
rustup component add llvm-tools-preview
cargo install grcov --locked
After that, you can simply run coverage.py
to test the project with coverage. You can optionally
supply the --open
flag to open the coverage report in your webbrowser.