PusServiceHelper

Struct PusServiceHelper 

Source
pub struct PusServiceHelper<TcInMemConverter: EcssTcInMemConverter> {
    pub common: PusServiceBase,
    pub tc_in_mem_converter: TcInMemConverter,
}
Available on crate feature std only.
Expand description

This is a high-level PUS packet handler helper.

It performs some of the boilerplate acitivities involved when handling PUS telecommands and it can be used to implement the handling of PUS telecommands for certain PUS telecommands groups (for example individual services).

This base class can handle PUS telecommands backed by different memory storage machanisms by using the EcssTcInMemConverter abstraction. This object provides some convenience methods to make the generic parts of TC handling easier.

Fields§

§common: PusServiceBase§tc_in_mem_converter: TcInMemConverter

Implementations§

Source§

impl<TcInMemConverter: EcssTcInMemConverter> PusServiceHelper<TcInMemConverter>

Source

pub fn new( tc_receiver: Box<dyn EcssTcReceiver>, tm_sender: Box<dyn EcssTmSender>, tm_apid: u16, verification_handler: VerificationReporterWithSender, tc_in_mem_converter: TcInMemConverter, ) -> Self

Source

pub fn retrieve_and_accept_next_packet( &mut self, ) -> Result<Option<AcceptedEcssTcAndToken>, PusPacketHandlingError>

This function can be used to poll the internal EcssTcReceiver object for the next telecommand packet. It will return Ok(None) if there are not packets available. In any other case, it will perform the acceptance of the ECSS TC packet using the internal VerificationReporterWithSender object. It will then return the telecommand and the according accepted token.

Auto Trait Implementations§

§

impl<TcInMemConverter> !Freeze for PusServiceHelper<TcInMemConverter>

§

impl<TcInMemConverter> !RefUnwindSafe for PusServiceHelper<TcInMemConverter>

§

impl<TcInMemConverter> Send for PusServiceHelper<TcInMemConverter>
where TcInMemConverter: Send,

§

impl<TcInMemConverter> !Sync for PusServiceHelper<TcInMemConverter>

§

impl<TcInMemConverter> Unpin for PusServiceHelper<TcInMemConverter>
where TcInMemConverter: Unpin,

§

impl<TcInMemConverter> !UnwindSafe for PusServiceHelper<TcInMemConverter>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.