This commit is contained in:
parent
b675253222
commit
2cc7f03a05
@ -5,7 +5,7 @@ use satrs::pus::action::{
|
||||
ActionReplyPus, ActionReplyVariant, ActivePusActionRequestStd, DefaultActiveActionRequestMap,
|
||||
};
|
||||
use satrs::pus::verification::{
|
||||
handle_completion_failure_with_error_as_params, handle_step_failure_with_error_as_params,
|
||||
handle_completion_failure_with_generic_params, handle_step_failure_with_generic_params,
|
||||
FailParamHelper, FailParams, TcStateAccepted, TcStateStarted, VerificationReporter,
|
||||
VerificationReportingProvider, VerificationToken,
|
||||
};
|
||||
@ -69,7 +69,7 @@ impl PusReplyHandler<ActivePusActionRequestStd, ActionReplyPus> for ActionReplyH
|
||||
.expect("invalid token state");
|
||||
let remove_entry = match &reply.message.variant {
|
||||
ActionReplyVariant::CompletionFailed { error_code, params } => {
|
||||
let error_propagated = handle_completion_failure_with_error_as_params(
|
||||
let error_propagated = handle_completion_failure_with_generic_params(
|
||||
tm_sender,
|
||||
verif_token,
|
||||
verification_handler,
|
||||
@ -93,7 +93,7 @@ impl PusReplyHandler<ActivePusActionRequestStd, ActionReplyPus> for ActionReplyH
|
||||
step,
|
||||
params,
|
||||
} => {
|
||||
let error_propagated = handle_step_failure_with_error_as_params(
|
||||
let error_propagated = handle_step_failure_with_generic_params(
|
||||
tm_sender,
|
||||
verif_token,
|
||||
verification_handler,
|
||||
|
@ -439,20 +439,17 @@ where
|
||||
return Ok(());
|
||||
}
|
||||
let active_request = active_req_opt.unwrap();
|
||||
let request_finished = self
|
||||
.reply_handler
|
||||
.handle_reply(
|
||||
reply,
|
||||
active_request,
|
||||
&self.service_helper.common.tm_sender,
|
||||
&self.service_helper.common.verif_reporter,
|
||||
time_stamp,
|
||||
)
|
||||
.unwrap_or(false);
|
||||
if request_finished {
|
||||
let result = self.reply_handler.handle_reply(
|
||||
reply,
|
||||
active_request,
|
||||
&self.service_helper.common.tm_sender,
|
||||
&self.service_helper.common.verif_reporter,
|
||||
time_stamp,
|
||||
);
|
||||
if result.is_err() || (result.is_ok() && *result.as_ref().unwrap()) {
|
||||
self.active_request_map.remove(reply.request_id());
|
||||
}
|
||||
Ok(())
|
||||
result.map(|_| ())
|
||||
}
|
||||
|
||||
pub fn check_for_request_timeouts(&mut self) {
|
||||
|
@ -1190,7 +1190,7 @@ pub struct FailParamHelper<'stamp, 'fargs, 'buf, 'params> {
|
||||
/// This function also might not be able to propagate other error variants which are added in
|
||||
/// the future. The returned boolean on success denotes whether the error parameters were
|
||||
/// propagated properly.
|
||||
pub fn handle_completion_failure_with_error_as_params<TcState: WasAtLeastAccepted + Copy>(
|
||||
pub fn handle_completion_failure_with_generic_params<TcState: WasAtLeastAccepted + Copy>(
|
||||
tm_sender: &(impl EcssTmSender + ?Sized),
|
||||
verif_token: VerificationToken<TcState>,
|
||||
verif_reporter: &impl VerificationReportingProvider,
|
||||
@ -1220,6 +1220,7 @@ pub fn handle_completion_failure_with_error_as_params<TcState: WasAtLeastAccepte
|
||||
),
|
||||
)?;
|
||||
}
|
||||
#[cfg(feature = "alloc")]
|
||||
Params::Vec(vec) => {
|
||||
verif_reporter.completion_failure(
|
||||
tm_sender,
|
||||
@ -1227,6 +1228,7 @@ pub fn handle_completion_failure_with_error_as_params<TcState: WasAtLeastAccepte
|
||||
FailParams::new(helper.timestamp, helper.error_code, vec),
|
||||
)?;
|
||||
}
|
||||
#[cfg(feature = "alloc")]
|
||||
Params::String(str) => {
|
||||
verif_reporter.completion_failure(
|
||||
tm_sender,
|
||||
@ -1248,7 +1250,7 @@ pub fn handle_completion_failure_with_error_as_params<TcState: WasAtLeastAccepte
|
||||
|
||||
/// This function is similar to [handle_completion_failure_with_error_as_params] but handles the
|
||||
/// step failure case.
|
||||
pub fn handle_step_failure_with_error_as_params(
|
||||
pub fn handle_step_failure_with_generic_params(
|
||||
tm_sender: &(impl EcssTmSender + ?Sized),
|
||||
verif_token: VerificationToken<TcStateStarted>,
|
||||
verif_reporter: &impl VerificationReportingProvider,
|
||||
@ -1280,6 +1282,7 @@ pub fn handle_step_failure_with_error_as_params(
|
||||
),
|
||||
)?;
|
||||
}
|
||||
#[cfg(feature = "alloc")]
|
||||
Params::Vec(vec) => {
|
||||
verif_reporter.step_failure(
|
||||
tm_sender,
|
||||
@ -1287,6 +1290,7 @@ pub fn handle_step_failure_with_error_as_params(
|
||||
FailParamsWithStep::new(helper.timestamp, step, helper.error_code, vec),
|
||||
)?;
|
||||
}
|
||||
#[cfg(feature = "alloc")]
|
||||
Params::String(str) => {
|
||||
verif_reporter.step_failure(
|
||||
tm_sender,
|
||||
|
Loading…
x
Reference in New Issue
Block a user