start adding event service

This commit is contained in:
2023-07-05 11:58:43 +02:00
parent d2e896fc92
commit 363770066d
8 changed files with 154 additions and 26 deletions

View File

@ -136,13 +136,13 @@ mod alloc_mod {
pub mod std_mod {
use crate::pool::{ShareablePoolProvider, SharedPool, StoreAddr, StoreError};
use crate::pus::verification::{
StdVerifReporterWithSender, TcStateAccepted, VerificationToken,
FailParams, StdVerifReporterWithSender, TcStateAccepted, VerificationToken,
};
use crate::pus::{EcssSender, EcssTcSenderCore, EcssTmSenderCore};
use crate::tmtc::tm_helper::SharedTmStore;
use crate::SenderId;
use alloc::vec::Vec;
use spacepackets::ecss::{PusError, SerializablePusPacket};
use spacepackets::ecss::{EcssEnumeration, PusError, SerializablePusPacket};
use spacepackets::tc::PusTc;
use spacepackets::time::cds::TimeProvider;
use spacepackets::time::{StdTimestampError, TimeWriter};
@ -315,7 +315,7 @@ pub mod std_mod {
pub enum PusPacketHandlerResult {
RequestHandled,
RequestHandledPartialSuccess(PartialPusHandlingError),
CustomSubservice(VerificationToken<TcStateAccepted>),
CustomSubservice(u8, VerificationToken<TcStateAccepted>),
Empty,
}
@ -372,6 +372,20 @@ pub mod std_mod {
Err(time_provider.unwrap_err())
}
}
pub fn report_start_failure(
&mut self,
token: VerificationToken<TcStateAccepted>,
failure_code: &impl EcssEnumeration,
failure_data: Option<&[u8]>,
) -> Result<(), VerificationToken<TcStateAccepted>> {
self.verification_handler
.start_failure(
token,
FailParams::new(Some(&self.stamp_buf), failure_code, failure_data),
)
.map_err(|e| e.1)
}
}
pub trait PusServiceHandler {

View File

@ -69,7 +69,10 @@ impl PusServiceHandler for PusService11SchedHandler {
let (tc, _) = PusTc::from_bytes(&self.psb.pus_buf).unwrap();
let std_service = scheduling::Subservice::try_from(tc.subservice());
if std_service.is_err() {
return Ok(PusPacketHandlerResult::CustomSubservice(token));
return Ok(PusPacketHandlerResult::CustomSubservice(
tc.subservice(),
token,
));
}
//let partial_error = self.psb.update_stamp().err();
let time_provider =
@ -155,7 +158,10 @@ impl PusServiceHandler for PusService11SchedHandler {
.expect("sending completion success failed");
}
_ => {
return Ok(PusPacketHandlerResult::CustomSubservice(token));
return Ok(PusPacketHandlerResult::CustomSubservice(
tc.subservice(),
token,
));
}
}
if let Some(partial_error) = partial_error {
@ -163,6 +169,9 @@ impl PusServiceHandler for PusService11SchedHandler {
partial_error,
));
}
Ok(PusPacketHandlerResult::CustomSubservice(token))
Ok(PusPacketHandlerResult::CustomSubservice(
tc.subservice(),
token,
))
}
}

View File

@ -109,6 +109,9 @@ impl PusServiceHandler for PusService17TestHandler {
};
return Ok(PusPacketHandlerResult::RequestHandled);
}
Ok(PusPacketHandlerResult::CustomSubservice(token))
Ok(PusPacketHandlerResult::CustomSubservice(
tc.subservice(),
token,
))
}
}