start adding event service
This commit is contained in:
@ -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 {
|
||||
|
@ -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,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
@ -109,6 +109,9 @@ impl PusServiceHandler for PusService17TestHandler {
|
||||
};
|
||||
return Ok(PusPacketHandlerResult::RequestHandled);
|
||||
}
|
||||
Ok(PusPacketHandlerResult::CustomSubservice(token))
|
||||
Ok(PusPacketHandlerResult::CustomSubservice(
|
||||
tc.subservice(),
|
||||
token,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user