sat-rs/satrs-example/src/pus/scheduler.rs

34 lines
1.2 KiB
Rust
Raw Normal View History

2023-07-05 11:58:43 +02:00
use log::{error, warn};
use satrs_core::pus::scheduler_srv::PusService11SchedHandler;
use satrs_core::pus::{PusPacketHandlerResult, PusServiceHandler};
2023-07-04 18:51:54 +02:00
2023-07-05 11:58:43 +02:00
pub struct Pus11Wrapper {
2023-07-05 14:25:51 +02:00
pub pus_11_handler: PusService11SchedHandler,
2023-07-05 11:58:43 +02:00
}
impl Pus11Wrapper {
pub fn perform_operation(&mut self) -> bool {
2023-07-05 14:25:51 +02:00
match self.pus_11_handler.handle_next_packet() {
2023-07-05 11:58:43 +02:00
Ok(result) => match result {
PusPacketHandlerResult::RequestHandled => {}
PusPacketHandlerResult::RequestHandledPartialSuccess(e) => {
warn!("PUS11 partial packet handling success: {e:?}")
}
PusPacketHandlerResult::CustomSubservice(invalid, _) => {
warn!("PUS11 invalid subservice {invalid}");
}
2023-07-05 14:25:51 +02:00
PusPacketHandlerResult::SubserviceNotImplemented(subservice, _) => {
warn!("PUS11: Subservice {subservice} not implemented");
}
2023-07-05 11:58:43 +02:00
PusPacketHandlerResult::Empty => {
return true;
}
},
Err(error) => {
error!("PUS packet handling error: {error:?}")
}
}
false
}
}