diff --git a/satrs-core/src/pus/mod.rs b/satrs-core/src/pus/mod.rs index 117dc08..4160f0a 100644 --- a/satrs-core/src/pus/mod.rs +++ b/satrs-core/src/pus/mod.rs @@ -11,7 +11,7 @@ use dyn_clone::DynClone; use spacepackets::ecss::PusError; use spacepackets::tc::PusTc; use spacepackets::tm::PusTm; -use spacepackets::{ByteConversionError, SizeMissmatch}; +use spacepackets::{ByteConversionError, SizeMissmatch, SpHeader}; use std::error::Error; pub mod event; @@ -202,6 +202,14 @@ mod alloc_mod { impl_downcast!(EcssTcSender); } +/// Generic trait for objects which can receive ECSS PUS telecommands. This trait is +/// implemented by the [crate::tmtc::pus_distrib::PusDistributor] objects to allow passing PUS TC +/// packets into it. +pub trait ReceivesEcssPusTc { + type Error; + fn pass_pus_tc(&mut self, header: &SpHeader, pus_tc: &PusTc) -> Result<(), Self::Error>; +} + #[cfg(feature = "std")] pub mod std_mod { use crate::pool::{ShareablePoolProvider, SharedPool, StoreAddr, StoreError}; diff --git a/satrs-core/src/tmtc/mod.rs b/satrs-core/src/tmtc/mod.rs index c2a0aa6..5d5f306 100644 --- a/satrs-core/src/tmtc/mod.rs +++ b/satrs-core/src/tmtc/mod.rs @@ -9,7 +9,6 @@ use downcast_rs::{impl_downcast, Downcast}; #[cfg(feature = "serde")] use serde::{Deserialize, Serialize}; -use spacepackets::tc::PusTc; use spacepackets::{ByteConversionError, SizeMissmatch, SpHeader}; #[cfg(feature = "alloc")] @@ -93,11 +92,3 @@ pub trait ReceivesCcsdsTc { type Error; fn pass_ccsds(&mut self, header: &SpHeader, tc_raw: &[u8]) -> Result<(), Self::Error>; } - -/// Generic trait for objects which can receive ECSS PUS telecommands. This trait is -/// implemented by the [crate::tmtc::pus_distrib::PusDistributor] objects to allow passing PUS TC -/// packets into it. -pub trait ReceivesEcssPusTc { - type Error; - fn pass_pus_tc(&mut self, header: &SpHeader, pus_tc: &PusTc) -> Result<(), Self::Error>; -} diff --git a/satrs-core/src/tmtc/pus_distrib.rs b/satrs-core/src/tmtc/pus_distrib.rs index bf591da..88b8f1f 100644 --- a/satrs-core/src/tmtc/pus_distrib.rs +++ b/satrs-core/src/tmtc/pus_distrib.rs @@ -61,7 +61,8 @@ //! .expect("Casting back to concrete type failed"); //! assert_eq!(concrete_handler_ref.handler_call_count, 1); //! ``` -use crate::tmtc::{ReceivesCcsdsTc, ReceivesEcssPusTc, ReceivesTcCore}; +use crate::pus::ReceivesEcssPusTc; +use crate::tmtc::{ReceivesCcsdsTc, ReceivesTcCore}; use alloc::boxed::Box; use core::fmt::{Display, Formatter}; use downcast_rs::Downcast; diff --git a/satrs-example/src/tmtc.rs b/satrs-example/src/tmtc.rs index 864b40b..95b9590 100644 --- a/satrs-example/src/tmtc.rs +++ b/satrs-example/src/tmtc.rs @@ -10,12 +10,12 @@ use crate::ccsds::CcsdsReceiver; use crate::pus::{PusReceiver, PusTcMpscRouter}; use satrs_core::pool::{SharedPool, StoreAddr, StoreError}; use satrs_core::pus::verification::StdVerifReporterWithSender; -use satrs_core::pus::AcceptedTc; +use satrs_core::pus::{AcceptedTc, ReceivesEcssPusTc}; use satrs_core::spacepackets::ecss::{PusPacket, SerializablePusPacket}; use satrs_core::spacepackets::tc::PusTc; use satrs_core::spacepackets::SpHeader; use satrs_core::tmtc::tm_helper::SharedTmStore; -use satrs_core::tmtc::{CcsdsDistributor, CcsdsError, ReceivesCcsdsTc, ReceivesEcssPusTc}; +use satrs_core::tmtc::{CcsdsDistributor, CcsdsError, ReceivesCcsdsTc}; pub const PUS_APID: u16 = 0x02;