VerificationReporterCore

Struct VerificationReporterCore 

Source
pub struct VerificationReporterCore {
    pub dest_id: u16,
    /* private fields */
}

Fields§

§dest_id: u16

Implementations§

Source§

impl VerificationReporterCore

Primary verification handler. It provides an API to send PUS 1 verification telemetry packets and verify the various steps of telecommand handling as specified in the PUS standard.

This is the core component which can be used without alloc support. Please note that the buffer passed to the API exposes by this struct will be used to serialize the source data. This buffer may not be re-used to serialize the whole telemetry because that would overwrite the source data itself.

Source

pub fn new(apid: u16) -> Option<Self>

Source

pub fn set_apid(&mut self, apid: u16) -> bool

Source

pub fn apid(&self) -> u16

Source

pub fn dest_id(&self) -> u16

Source

pub fn set_dest_id(&mut self, dest_id: u16)

Source

pub fn add_tc( &mut self, pus_tc: &(impl CcsdsPacket + IsPusTelecommand), ) -> VerificationToken<TcStateNone>

Initialize verification handling by passing a TC reference. This returns a token required to call the acceptance functions

Source

pub fn add_tc_with_req_id( &mut self, req_id: RequestId, ) -> VerificationToken<TcStateNone>

Same as Self::add_tc but pass a request ID instead of the direct telecommand. This can be useful if the executing thread does not have full access to the telecommand.

Source

pub fn acceptance_success<'src_data>( &self, src_data_buf: &'src_data mut [u8], token: VerificationToken<TcStateNone>, seq_count: u16, msg_count: u16, time_stamp: Option<&'src_data [u8]>, ) -> Result<VerificationSendable<'src_data, TcStateNone, VerifSuccess>, VerificationErrorWithToken<TcStateNone>>

Package a PUS TM[1, 1] packet, see 8.1.2.1 of the PUS standard.

Source

pub fn send_acceptance_success( &self, sendable: VerificationSendable<'_, TcStateNone, VerifSuccess>, sender: &(impl EcssTmSenderCore + ?Sized), ) -> Result<VerificationToken<TcStateAccepted>, VerificationOrSendErrorWithToken<TcStateNone>>

Source

pub fn send_acceptance_failure( &self, sendable: VerificationSendable<'_, TcStateNone, VerifFailure>, sender: &(impl EcssTmSenderCore + ?Sized), ) -> Result<(), VerificationOrSendErrorWithToken<TcStateNone>>

Source

pub fn acceptance_failure<'src_data>( &self, src_data_buf: &'src_data mut [u8], token: VerificationToken<TcStateNone>, seq_count: u16, msg_count: u16, params: FailParams<'src_data, '_>, ) -> Result<VerificationSendable<'src_data, TcStateNone, VerifFailure>, VerificationErrorWithToken<TcStateNone>>

Package a PUS TM[1, 2] packet, see 8.1.2.2 of the PUS standard.

Source

pub fn start_success<'src_data>( &self, src_data_buf: &'src_data mut [u8], token: VerificationToken<TcStateAccepted>, seq_count: u16, msg_count: u16, time_stamp: Option<&'src_data [u8]>, ) -> Result<VerificationSendable<'src_data, TcStateAccepted, VerifSuccess>, VerificationErrorWithToken<TcStateAccepted>>

Package and send a PUS TM[1, 3] packet, see 8.1.2.3 of the PUS standard.

Requires a token previously acquired by calling Self::acceptance_success.

Source

pub fn send_start_success( &self, sendable: VerificationSendable<'_, TcStateAccepted, VerifSuccess>, sender: &(impl EcssTmSenderCore + ?Sized), ) -> Result<VerificationToken<TcStateStarted>, VerificationOrSendErrorWithToken<TcStateAccepted>>

Source

pub fn start_failure<'src_data>( &self, src_data_buf: &'src_data mut [u8], token: VerificationToken<TcStateAccepted>, seq_count: u16, msg_count: u16, params: FailParams<'src_data, '_>, ) -> Result<VerificationSendable<'src_data, TcStateAccepted, VerifFailure>, VerificationErrorWithToken<TcStateAccepted>>

Package and send a PUS TM[1, 4] packet, see 8.1.2.4 of the PUS standard.

Requires a token previously acquired by calling Self::acceptance_success. It consumes the token because verification handling is done.

Source

pub fn send_start_failure( &self, sendable: VerificationSendable<'_, TcStateAccepted, VerifFailure>, sender: &(impl EcssTmSenderCore + ?Sized), ) -> Result<(), VerificationOrSendErrorWithToken<TcStateAccepted>>

Source

pub fn step_success<'src_data>( &self, src_data_buf: &'src_data mut [u8], token: &VerificationToken<TcStateStarted>, seq_count: u16, msg_count: u16, time_stamp: Option<&'src_data [u8]>, step: impl EcssEnumeration, ) -> Result<VerificationSendable<'src_data, TcStateStarted, VerifSuccess>, EcssTmtcError>

Package and send a PUS TM[1, 5] packet, see 8.1.2.5 of the PUS standard.

Requires a token previously acquired by calling Self::start_success.

Source

pub fn step_failure<'src_data>( &self, src_data_buf: &'src_data mut [u8], token: VerificationToken<TcStateStarted>, seq_count: u16, msg_count: u16, params: FailParamsWithStep<'src_data, '_>, ) -> Result<VerificationSendable<'src_data, TcStateStarted, VerifFailure>, VerificationErrorWithToken<TcStateStarted>>

Package and send a PUS TM[1, 6] packet, see 8.1.2.6 of the PUS standard.

Requires a token previously acquired by calling Self::start_success. It consumes the token because verification handling is done.

Source

pub fn completion_success<'src_data, TcState: WasAtLeastAccepted + Copy>( &self, src_data_buf: &'src_data mut [u8], token: VerificationToken<TcState>, seq_counter: u16, msg_counter: u16, time_stamp: Option<&'src_data [u8]>, ) -> Result<VerificationSendable<'src_data, TcState, VerifSuccess>, VerificationErrorWithToken<TcState>>

Package and send a PUS TM[1, 7] packet, see 8.1.2.7 of the PUS standard.

Requires a token previously acquired by calling Self::start_success. It consumes the token because verification handling is done.

Source

pub fn completion_failure<'src_data, TcState: WasAtLeastAccepted + Copy>( &self, src_data_buf: &'src_data mut [u8], token: VerificationToken<TcState>, seq_count: u16, msg_count: u16, params: FailParams<'src_data, '_>, ) -> Result<VerificationSendable<'src_data, TcState, VerifFailure>, VerificationErrorWithToken<TcState>>

Package and send a PUS TM[1, 8] packet, see 8.1.2.8 of the PUS standard.

Requires a token previously acquired by calling Self::start_success. It consumes the token because verification handling is done.

Source

pub fn send_step_or_completion_success<TcState: WasAtLeastAccepted + Copy>( &self, sendable: VerificationSendable<'_, TcState, VerifSuccess>, sender: &(impl EcssTmSenderCore + ?Sized), ) -> Result<(), VerificationOrSendErrorWithToken<TcState>>

Source

pub fn send_step_or_completion_failure<TcState: WasAtLeastAccepted + Copy>( &self, sendable: VerificationSendable<'_, TcState, VerifFailure>, sender: &(impl EcssTmSenderCore + ?Sized), ) -> Result<(), VerificationOrSendErrorWithToken<TcState>>

Trait Implementations§

Source§

impl Clone for VerificationReporterCore

Source§

fn clone(&self) -> VerificationReporterCore

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

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

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.