From e426a7cef1b43de1866410388efbaaefb10f9e42 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 13 Feb 2024 11:05:59 +0100 Subject: [PATCH] moved some requests --- satrs-example/src/pus/action.rs | 5 +++-- satrs-example/src/requests.rs | 8 +------- satrs/src/action.rs | 21 +++++++++++++++++++++ satrs/src/hk.rs | 8 +++++++- satrs/src/lib.rs | 2 ++ satrs/src/mode.rs | 4 ++-- satrs/src/request.rs | 4 +++- 7 files changed, 39 insertions(+), 13 deletions(-) create mode 100644 satrs/src/action.rs diff --git a/satrs-example/src/pus/action.rs b/satrs-example/src/pus/action.rs index a791506..2d9dfe6 100644 --- a/satrs-example/src/pus/action.rs +++ b/satrs-example/src/pus/action.rs @@ -1,5 +1,6 @@ -use crate::requests::{ActionRequest, Request, RequestWithToken}; +use crate::requests::{Request, RequestWithToken}; use log::{error, warn}; +use satrs::action::ActionRequest; use satrs::pool::{SharedStaticMemoryPool, StoreAddr}; use satrs::pus::verification::{ FailParams, TcStateAccepted, VerificationReporterWithSender, VerificationToken, @@ -129,7 +130,7 @@ impl PusService8ActionHandler)), - CmdWithStringId((String, Vec)), -} - #[allow(dead_code)] #[derive(Clone, Eq, PartialEq, Debug)] #[non_exhaustive] diff --git a/satrs/src/action.rs b/satrs/src/action.rs new file mode 100644 index 0000000..0f74baa --- /dev/null +++ b/satrs/src/action.rs @@ -0,0 +1,21 @@ +use crate::{pool::StoreAddr, tmtc::TargetId}; + +pub type ActionId = u32; + +#[derive(Clone, Eq, PartialEq, Debug)] +pub enum ActionRequest { + ActionIdAndStoreData((ActionId, StoreAddr)), + ActionIdAndVecData((ActionId, alloc::vec::Vec)), + StringIdAndVecData((alloc::string::String, alloc::vec::Vec)), + StringIdAndStoreData((alloc::string::String, StoreAddr)), +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TargetedActionRequest { + target: TargetId, + hk_request: ActionRequest, +} + +pub trait ActionRequestProvider { + fn route_action_request(&self, targeted_request: TargetedActionRequest); +} diff --git a/satrs/src/hk.rs b/satrs/src/hk.rs index dc6c72e..ee6c31a 100644 --- a/satrs/src/hk.rs +++ b/satrs/src/hk.rs @@ -1,3 +1,5 @@ +use crate::tmtc::TargetId; + pub type CollectionIntervalFactor = u32; pub type UniqueId = u32; @@ -11,6 +13,10 @@ pub enum HkRequest { #[derive(Debug, Copy, Clone, PartialEq, Eq)] pub struct TargetedHkRequest { - target: u32, + target: TargetId, hk_request: HkRequest, } + +pub trait HkRequestProvider { + fn route_hk_request(&self, targeted_request: TargetedHkRequest); +} diff --git a/satrs/src/lib.rs b/satrs/src/lib.rs index 8babd6c..15706f9 100644 --- a/satrs/src/lib.rs +++ b/satrs/src/lib.rs @@ -22,6 +22,8 @@ extern crate downcast_rs; #[cfg(any(feature = "std", test))] extern crate std; +#[cfg(feature = "alloc")] +pub mod action; #[cfg(feature = "alloc")] #[cfg_attr(doc_cfg, doc(cfg(feature = "alloc")))] pub mod cfdp; diff --git a/satrs/src/mode.rs b/satrs/src/mode.rs index cdd8f8d..7b26be4 100644 --- a/satrs/src/mode.rs +++ b/satrs/src/mode.rs @@ -47,12 +47,12 @@ impl ModeAndSubmode { } #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] -pub struct ModeCommand { +pub struct TargetedModeCommand { pub address: TargetId, pub mode_submode: ModeAndSubmode, } -impl ModeCommand { +impl TargetedModeCommand { pub const fn new(address: TargetId, mode_submode: ModeAndSubmode) -> Self { Self { address, diff --git a/satrs/src/request.rs b/satrs/src/request.rs index 8b13789..2a9a825 100644 --- a/satrs/src/request.rs +++ b/satrs/src/request.rs @@ -1 +1,3 @@ - +pub trait RequestRouter { + //fn route_request(&self, request: Request); +}