add some more missing docs
Some checks failed
Rust/sat-rs/pipeline/pr-main There was a failure building this commit
Some checks failed
Rust/sat-rs/pipeline/pr-main There was a failure building this commit
This commit is contained in:
parent
8ad21018f4
commit
3cb34cef58
@ -75,14 +75,16 @@ pub mod std_mod {
|
||||
/// 1. Retrieve the next TC packet from the [PusServiceHelper]. The [EcssTcInMemConverter]
|
||||
/// allows to configure the used telecommand memory backend.
|
||||
/// 2. Convert the TC to a targeted action request using the provided
|
||||
/// [PusActionToRequestConverter].
|
||||
/// [PusActionToRequestConverter]. The generic error type is constrained to the
|
||||
/// [PusPacketHandlingError] for the concrete implementation which offers a packet handler.
|
||||
/// 3. Route the action request using the provided [PusActionRequestRouter].
|
||||
/// 4. Handle all routing errors using the provided [PusRoutingErrorHandler].
|
||||
pub struct PusService8ActionHandler<
|
||||
TcInMemConverter: EcssTcInMemConverter,
|
||||
RequestConverter: PusActionToRequestConverter,
|
||||
RequestRouter: PusActionRequestRouter,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler,
|
||||
RequestRouter: PusActionRequestRouter<Error=RoutingError>,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler<Error=RoutingError>,
|
||||
RoutingError = GenericRoutingError
|
||||
> {
|
||||
service_helper: PusServiceHelper<TcInMemConverter>,
|
||||
request_converter: RequestConverter,
|
||||
@ -93,14 +95,16 @@ pub mod std_mod {
|
||||
impl<
|
||||
TcInMemConverter: EcssTcInMemConverter,
|
||||
RequestConverter: PusActionToRequestConverter<Error = PusPacketHandlingError>,
|
||||
RequestRouter: PusActionRequestRouter<Error = GenericRoutingError>,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler<Error = GenericRoutingError>,
|
||||
RequestRouter: PusActionRequestRouter<Error = RoutingError>,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler<Error = RoutingError>,
|
||||
RoutingError
|
||||
>
|
||||
PusService8ActionHandler<
|
||||
TcInMemConverter,
|
||||
RequestConverter,
|
||||
RequestRouter,
|
||||
RoutingErrorHandler,
|
||||
RoutingError
|
||||
>
|
||||
{
|
||||
pub fn new(
|
||||
|
@ -12,6 +12,8 @@ use crate::{hk::HkRequest, TargetId};
|
||||
|
||||
use super::verification::{TcStateAccepted, VerificationToken};
|
||||
|
||||
/// This trait is an abstraction for the routing of PUS service 3 housekeeping requests to a
|
||||
/// dedicated recipient using the generic [TargetId].
|
||||
pub trait PusHkRequestRouter {
|
||||
type Error;
|
||||
fn route(
|
||||
@ -31,6 +33,21 @@ pub mod alloc_mod {
|
||||
|
||||
use super::*;
|
||||
|
||||
/// This trait is an abstraction for the conversion of a PUS service 8 action telecommand into
|
||||
/// a [HkRequest].
|
||||
///
|
||||
/// Having a dedicated trait for this allows maximum flexiblity and tailoring of the standard.
|
||||
/// The only requirement is that a valid [TargetId] and a [HkRequest] are returned by the
|
||||
/// core conversion function.
|
||||
///
|
||||
/// The user should take care of performing the error handling as well. Some of the following
|
||||
/// aspects might be relevant:
|
||||
///
|
||||
/// - Checking the validity of the APID, service ID, subservice ID.
|
||||
/// - Checking the validity of the user data.
|
||||
///
|
||||
/// A [VerificationReporterWithSender] instance is passed to the user to also allow handling
|
||||
/// of the verification process as part of the PUS standard requirements.
|
||||
pub trait PusHkToRequestConverter {
|
||||
type Error;
|
||||
fn convert(
|
||||
@ -53,11 +70,25 @@ pub mod std_mod {
|
||||
|
||||
use super::*;
|
||||
|
||||
/// This is a generic high-level handler for the PUS service 3 housekeeping service.
|
||||
///
|
||||
/// It performs the following handling steps:
|
||||
///
|
||||
/// 1. Retrieve the next TC packet from the [PusServiceHelper]. The [EcssTcInMemConverter]
|
||||
/// allows to configure the used telecommand memory backend.
|
||||
/// 2. Convert the TC to a targeted action request using the provided
|
||||
/// [PusActionToRequestConverter]. The generic error type is constrained to the
|
||||
/// [PusPacketHandlerResult] for the concrete implementation which offers a packet handler.
|
||||
/// 3. Route the action request using the provided [PusActionRequestRouter]. The generic error
|
||||
/// type is constrained to the [GenericRoutingError] for the concrete implementation.
|
||||
/// 4. Handle all routing errors using the provided [PusRoutingErrorHandler]. The generic error
|
||||
/// type is constrained to the [GenericRoutingError] for the concrete implementation.
|
||||
pub struct PusService3HkHandler<
|
||||
TcInMemConverter: EcssTcInMemConverter,
|
||||
RequestConverter: PusHkToRequestConverter,
|
||||
RequestRouter: PusHkRequestRouter,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler,
|
||||
RequestRouter: PusHkRequestRouter<Error=RoutingError>,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler<Error=RoutingError>,
|
||||
RoutingError = GenericRoutingError
|
||||
> {
|
||||
service_helper: PusServiceHelper<TcInMemConverter>,
|
||||
request_converter: RequestConverter,
|
||||
@ -68,10 +99,11 @@ pub mod std_mod {
|
||||
impl<
|
||||
TcInMemConverter: EcssTcInMemConverter,
|
||||
RequestConverter: PusHkToRequestConverter<Error = PusPacketHandlingError>,
|
||||
RequestRouter: PusHkRequestRouter<Error = GenericRoutingError>,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler<Error = GenericRoutingError>,
|
||||
RequestRouter: PusHkRequestRouter<Error = RoutingError>,
|
||||
RoutingErrorHandler: PusRoutingErrorHandler<Error = RoutingError>,
|
||||
RoutingError,
|
||||
>
|
||||
PusService3HkHandler<TcInMemConverter, RequestConverter, RequestRouter, RoutingErrorHandler>
|
||||
PusService3HkHandler<TcInMemConverter, RequestConverter, RequestRouter, RoutingErrorHandler, RoutingError>
|
||||
{
|
||||
pub fn new(
|
||||
service_helper: PusServiceHelper<TcInMemConverter>,
|
||||
|
@ -353,7 +353,7 @@ mod alloc_mod {
|
||||
target_id: TargetId,
|
||||
token: VerificationToken<TcStateAccepted>,
|
||||
tc: &PusTcReader,
|
||||
error: GenericRoutingError,
|
||||
error: Self::Error,
|
||||
time_stamp: &[u8],
|
||||
verif_reporter: &mut VerificationReporterWithSender,
|
||||
);
|
||||
|
Loading…
x
Reference in New Issue
Block a user