satrs-core v0.1.0-alpha.3 #108

Merged
muellerr merged 3 commits from core-v0.1.0-alpha.3 into main 2024-02-12 13:13:13 +01:00
2 changed files with 9 additions and 8 deletions
Showing only changes of commit 2dd38c163f - Show all commits

View File

@ -238,7 +238,8 @@ impl Error for ScheduleError {
} }
} }
pub trait PusSchedulerInterface { /// Generic trait for scheduler objects which are able to schedule ECSS PUS C packets.
pub trait PusSchedulerProvider {
type TimeProvider: CcsdsTimeProvider + TimeReader; type TimeProvider: CcsdsTimeProvider + TimeReader;
fn reset(&mut self, store: &mut (impl PoolProvider + ?Sized)) -> Result<(), StoreError>; fn reset(&mut self, store: &mut (impl PoolProvider + ?Sized)) -> Result<(), StoreError>;
@ -782,7 +783,7 @@ pub mod alloc_mod {
} }
} }
impl PusSchedulerInterface for PusScheduler { impl PusSchedulerProvider for PusScheduler {
type TimeProvider = cds::TimeProvider; type TimeProvider = cds::TimeProvider;
/// This will disable the scheduler and clear the schedule as specified in 6.11.4.4. /// This will disable the scheduler and clear the schedule as specified in 6.11.4.4.

View File

@ -1,4 +1,4 @@
use super::scheduler::PusSchedulerInterface; use super::scheduler::PusSchedulerProvider;
use super::{EcssTcInMemConverter, PusServiceBase, PusServiceHelper}; use super::{EcssTcInMemConverter, PusServiceBase, PusServiceHelper};
use crate::pool::PoolProvider; use crate::pool::PoolProvider;
use crate::pus::{PusPacketHandlerResult, PusPacketHandlingError}; use crate::pus::{PusPacketHandlerResult, PusPacketHandlingError};
@ -16,13 +16,13 @@ use spacepackets::time::cds::TimeProvider;
/// telecommands when applicable. /// telecommands when applicable.
pub struct PusService11SchedHandler< pub struct PusService11SchedHandler<
TcInMemConverter: EcssTcInMemConverter, TcInMemConverter: EcssTcInMemConverter,
Scheduler: PusSchedulerInterface, PusScheduler: PusSchedulerProvider,
> { > {
pub service_helper: PusServiceHelper<TcInMemConverter>, pub service_helper: PusServiceHelper<TcInMemConverter>,
scheduler: Scheduler, scheduler: PusScheduler,
} }
impl<TcInMemConverter: EcssTcInMemConverter, Scheduler: PusSchedulerInterface> impl<TcInMemConverter: EcssTcInMemConverter, Scheduler: PusSchedulerProvider>
PusService11SchedHandler<TcInMemConverter, Scheduler> PusService11SchedHandler<TcInMemConverter, Scheduler>
{ {
pub fn new(service_helper: PusServiceHelper<TcInMemConverter>, scheduler: Scheduler) -> Self { pub fn new(service_helper: PusServiceHelper<TcInMemConverter>, scheduler: Scheduler) -> Self {
@ -173,7 +173,7 @@ mod tests {
use crate::pool::{StaticMemoryPool, StaticPoolConfig}; use crate::pool::{StaticMemoryPool, StaticPoolConfig};
use crate::pus::tests::TEST_APID; use crate::pus::tests::TEST_APID;
use crate::pus::{ use crate::pus::{
scheduler::{self, PusSchedulerInterface, TcInfo}, scheduler::{self, PusSchedulerProvider, TcInfo},
tests::{PusServiceHandlerWithSharedStoreCommon, PusTestHarness}, tests::{PusServiceHandlerWithSharedStoreCommon, PusTestHarness},
verification::{RequestId, TcStateAccepted, VerificationToken}, verification::{RequestId, TcStateAccepted, VerificationToken},
EcssTcInSharedStoreConverter, EcssTcInSharedStoreConverter,
@ -232,7 +232,7 @@ mod tests {
inserted_tcs: VecDeque<TcInfo>, inserted_tcs: VecDeque<TcInfo>,
} }
impl PusSchedulerInterface for TestScheduler { impl PusSchedulerProvider for TestScheduler {
type TimeProvider = cds::TimeProvider; type TimeProvider = cds::TimeProvider;
fn reset( fn reset(