diff --git a/satrs-core/src/hk.rs b/satrs-core/src/hk.rs index 727e887..1124afb 100644 --- a/satrs-core/src/hk.rs +++ b/satrs-core/src/hk.rs @@ -1,11 +1,18 @@ use crate::tmtc::AddressableId; pub type CollectionIntervalFactor = u32; +pub type UniqueId = u32; #[derive(Debug, Copy, Clone, PartialEq, Eq)] pub enum HkRequest { - OneShot(AddressableId), - Enable(AddressableId), - Disable(AddressableId), - ModifyCollectionInterval(AddressableId, CollectionIntervalFactor), + OneShot(UniqueId), + Enable(UniqueId), + Disable(UniqueId), + ModifyCollectionInterval(UniqueId, CollectionIntervalFactor), +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub struct TargetedHkRequest { + target: u32, + hk_request: HkRequest } diff --git a/satrs-core/src/mode.rs b/satrs-core/src/mode.rs index 1ebd854..49008d2 100644 --- a/satrs-core/src/mode.rs +++ b/satrs-core/src/mode.rs @@ -71,8 +71,15 @@ impl ModeCommand { #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum ModeRequest { - SetMode(ModeCommand), - ReadMode(TargetId), - AnnounceMode(TargetId), - AnnounceModeRecursive(TargetId), + SetMode(ModeAndSubmode), + ReadMode(ModeRequest), + AnnounceMode(ModeRequest), + AnnounceModeRecursive(ModeRequest), +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +pub struct TargetedModeRequest { + target_id: TargetId, + mode_request: ModeRequest }