Robin Mueller
0fd70c08c2
All checks were successful
Rust/sat-rs/pipeline/pr-main This commit looks good
- Increased example modularization by moving the majority of app logic inside dedicated modules - Added a new `dyn_tmtc` feature for the satrs-example which is used to configure the heap as the backing store for TMTC packages instead of static stores. - Added dedicated satrs-example chapter in satrs-book
47 lines
1.1 KiB
Rust
47 lines
1.1 KiB
Rust
use derive_new::new;
|
|
use satrs_core::hk::HkRequest;
|
|
use satrs_core::mode::ModeRequest;
|
|
use satrs_core::pus::verification::{TcStateAccepted, VerificationToken};
|
|
use satrs_example::TargetIdWithApid;
|
|
|
|
#[allow(dead_code)]
|
|
#[derive(Clone, Eq, PartialEq, Debug)]
|
|
pub enum ActionRequest {
|
|
CmdWithU32Id((u32, Vec<u8>)),
|
|
CmdWithStringId((String, Vec<u8>)),
|
|
}
|
|
|
|
#[allow(dead_code)]
|
|
#[derive(Clone, Eq, PartialEq, Debug)]
|
|
#[non_exhaustive]
|
|
pub enum Request {
|
|
Hk(HkRequest),
|
|
Mode(ModeRequest),
|
|
Action(ActionRequest),
|
|
}
|
|
|
|
#[derive(Clone, Eq, PartialEq, Debug, new)]
|
|
pub struct TargetedRequest {
|
|
pub(crate) target_id_with_apid: TargetIdWithApid,
|
|
pub(crate) request: Request,
|
|
}
|
|
|
|
#[derive(Clone, Eq, PartialEq, Debug)]
|
|
pub struct RequestWithToken {
|
|
pub(crate) targeted_request: TargetedRequest,
|
|
pub(crate) token: VerificationToken<TcStateAccepted>,
|
|
}
|
|
|
|
impl RequestWithToken {
|
|
pub fn new(
|
|
target_id: TargetIdWithApid,
|
|
request: Request,
|
|
token: VerificationToken<TcStateAccepted>,
|
|
) -> Self {
|
|
Self {
|
|
targeted_request: TargetedRequest::new(target_id, request),
|
|
token,
|
|
}
|
|
}
|
|
}
|