diff --git a/fsrc-core/src/lib.rs b/fsrc-core/src/lib.rs index 232d7b0..f9bed14 100644 --- a/fsrc-core/src/lib.rs +++ b/fsrc-core/src/lib.rs @@ -1,4 +1,12 @@ //! # Core components of the Flight Software Rust Crate (FSRC) collection +//! +//! This is a collection of Rust crates which can be used to build On-Board Software for remote +//! systems like satellites of rovers. It has special support for space tailored protocols +//! like the ones provided by CCSDS and ECSS. +//! +//! The crates can generally be used in a `no_std` environment, but some crates expect that the +//! [alloc](https://doc.rust-lang.org/alloc) crate is available to allow boxed trait objects. +//! These are used to supply user code to the crates. pub mod error; pub mod event_man; pub mod events; diff --git a/fsrc-core/src/tmtc/ccsds_distrib.rs b/fsrc-core/src/tmtc/ccsds_distrib.rs index 470cb22..f4b526b 100644 --- a/fsrc-core/src/tmtc/ccsds_distrib.rs +++ b/fsrc-core/src/tmtc/ccsds_distrib.rs @@ -8,8 +8,8 @@ //! pass raw or CCSDS packets to it. Upon receiving a packet, it performs the following steps: //! //! 1. It tries to identify the target Application Process Identifier (APID) based on the -//! respective CCSDS space packet header field. If that process fails, the error -//! will be reported to the provided [FsrcErrorHandler] instance. +//! respective CCSDS space packet header field. If that process fails, a [PacketError] is +//! returned to the user //! 2. If a valid APID is found and matches one of the APIDs provided by //! [ApidPacketHandler::valid_apids], it will pass the packet to the user provided //! [ApidPacketHandler::handle_known_apid] function. If no valid APID is found, the packet diff --git a/fsrc-core/src/tmtc/mod.rs b/fsrc-core/src/tmtc/mod.rs index 25482b8..4b6fe16 100644 --- a/fsrc-core/src/tmtc/mod.rs +++ b/fsrc-core/src/tmtc/mod.rs @@ -1,5 +1,10 @@ //! Telemetry and Telecommanding (TMTC) module. Contains packet routing components with special //! support for CCSDS and ECSS packets. +//! +//! The distributor modules provided by this module use trait objects provided by the user to +//! directly dispatch received packets to packet listeners based on packet fields like the CCSDS +//! Application Process ID (APID) or the ECSS PUS service type. This allows for fast packet +//! routing without the overhead and complication of using message queues. However, it also requires use crate::error::{FsrcErrorRaw, FsrcGroupIds}; use spacepackets::tc::PusTc; use spacepackets::SpHeader;