cargo update and completed new send API

This commit is contained in:
2023-01-04 14:39:56 +01:00
parent 2427e9ef6e
commit 3b5aa8c1eb
2 changed files with 117 additions and 50 deletions

View File

@ -523,7 +523,7 @@ impl VerificationReporterCore {
)
}
pub fn send_acceptance<'src_data, E>(
pub fn send_acceptance_success<'src_data, E>(
&self,
mut sendable: VerificationSendable<'src_data, TcStateNone, VerifSuccess>,
seq_counter: &(impl SequenceCountProviderCore<u16> + ?Sized),
@ -536,6 +536,19 @@ impl VerificationReporterCore {
Ok(sendable.send_success_acceptance_success(Some(seq_counter)))
}
pub fn send_acceptance_failure<'src_data, E>(
&self,
mut sendable: VerificationSendable<'src_data, TcStateNone, VerifFailure>,
seq_counter: &(impl SequenceCountProviderCore<u16> + ?Sized),
sender: &mut (impl EcssTmSenderCore<Error = E> + ?Sized),
) -> Result<(), VerificationOrSendErrorWithToken<E, TcStateNone>> {
sender
.send_tm(sendable.pus_tm.take().unwrap())
.map_err(|e| VerificationOrSendErrorWithToken(e, sendable.token.unwrap()))?;
sendable.send_success_verif_failure(Some(seq_counter));
Ok(())
}
/// Package a PUS TM\[1, 2\] packet, see 8.1.2.2 of the PUS standard.
pub fn acceptance_failure<'src_data>(
&mut self,
@ -579,6 +592,21 @@ impl VerificationReporterCore {
)
}
pub fn send_start_success<'src_data, E>(
&self,
mut sendable: VerificationSendable<'src_data, TcStateAccepted, VerifSuccess>,
seq_counter: &(impl SequenceCountProviderCore<u16> + ?Sized),
sender: &mut (impl EcssTmSenderCore<Error = E> + ?Sized),
) -> Result<
VerificationToken<TcStateStarted>,
VerificationOrSendErrorWithToken<E, TcStateAccepted>,
> {
sender
.send_tm(sendable.pus_tm.take().unwrap())
.map_err(|e| VerificationOrSendErrorWithToken(e, sendable.token.unwrap()))?;
Ok(sendable.send_success_start_success(Some(seq_counter)))
}
/// 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
@ -603,6 +631,19 @@ impl VerificationReporterCore {
)
}
pub fn send_start_failure<'src_data, E>(
&self,
mut sendable: VerificationSendable<'src_data, TcStateAccepted, VerifFailure>,
seq_counter: &(impl SequenceCountProviderCore<u16> + ?Sized),
sender: &mut (impl EcssTmSenderCore<Error = E> + ?Sized),
) -> Result<(), VerificationOrSendErrorWithToken<E, TcStateAccepted>> {
sender
.send_tm(sendable.pus_tm.take().unwrap())
.map_err(|e| VerificationOrSendErrorWithToken(e, sendable.token.unwrap()))?;
sendable.send_success_verif_failure(Some(seq_counter));
Ok(())
}
/// 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].
@ -701,6 +742,32 @@ impl VerificationReporterCore {
)
}
pub fn send_step_or_completion_success<'src_data, E>(
&self,
mut sendable: VerificationSendable<'src_data, TcStateStarted, VerifSuccess>,
seq_counter: &(impl SequenceCountProviderCore<u16> + ?Sized),
sender: &mut (impl EcssTmSenderCore<Error = E> + ?Sized),
) -> Result<(), VerificationOrSendErrorWithToken<E, TcStateStarted>> {
sender
.send_tm(sendable.pus_tm.take().unwrap())
.map_err(|e| VerificationOrSendErrorWithToken(e, sendable.token.unwrap()))?;
sendable.send_success_step_or_completion_success(Some(seq_counter));
Ok(())
}
pub fn send_step_or_completion_failure<'src_data, E>(
&self,
mut sendable: VerificationSendable<'src_data, TcStateStarted, VerifFailure>,
seq_counter: &(impl SequenceCountProviderCore<u16> + ?Sized),
sender: &mut (impl EcssTmSenderCore<Error = E> + ?Sized),
) -> Result<(), VerificationOrSendErrorWithToken<E, TcStateStarted>> {
sender
.send_tm(sendable.pus_tm.take().unwrap())
.map_err(|e| VerificationOrSendErrorWithToken(e, sendable.token.unwrap()))?;
sendable.send_success_verif_failure(Some(seq_counter));
Ok(())
}
fn create_pus_verif_success_tm<'src_data>(
&mut self,
src_data_buf: &'src_data mut [u8],