2024-02-13 11:05:59 +01:00
|
|
|
use crate::tmtc::TargetId;
|
|
|
|
|
2023-02-13 09:20:00 +01:00
|
|
|
pub type CollectionIntervalFactor = u32;
|
2023-02-27 11:51:48 +01:00
|
|
|
pub type UniqueId = u32;
|
2023-02-13 09:20:00 +01:00
|
|
|
|
|
|
|
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
|
|
|
pub enum HkRequest {
|
2023-02-27 11:51:48 +01:00
|
|
|
OneShot(UniqueId),
|
|
|
|
Enable(UniqueId),
|
|
|
|
Disable(UniqueId),
|
|
|
|
ModifyCollectionInterval(UniqueId, CollectionIntervalFactor),
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
|
|
|
pub struct TargetedHkRequest {
|
2024-02-13 11:05:59 +01:00
|
|
|
target: TargetId,
|
2023-02-27 13:44:24 +01:00
|
|
|
hk_request: HkRequest,
|
2023-02-13 09:20:00 +01:00
|
|
|
}
|
2024-02-13 11:05:59 +01:00
|
|
|
|
|
|
|
pub trait HkRequestProvider {
|
|
|
|
fn route_hk_request(&self, targeted_request: TargetedHkRequest);
|
|
|
|
}
|