From 653ff4472d7de967899ae2f240255629f1cac7f3 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Sat, 13 Apr 2024 15:13:49 +0200 Subject: [PATCH] remove some more code --- satrs-example/src/pus/mod.rs | 2 +- satrs-example/src/tmtc/mod.rs | 94 ----------------------------------- 2 files changed, 1 insertion(+), 95 deletions(-) diff --git a/satrs-example/src/pus/mod.rs b/satrs-example/src/pus/mod.rs index 16b1f07..c4be11b 100644 --- a/satrs-example/src/pus/mod.rs +++ b/satrs-example/src/pus/mod.rs @@ -1,5 +1,4 @@ use crate::requests::GenericRequestRouter; -use crate::tmtc::StoreAndSendError; use log::warn; use satrs::pus::verification::{ self, FailParams, TcStateAccepted, TcStateStarted, VerificationReporter, @@ -15,6 +14,7 @@ use satrs::queue::{GenericReceiveError, GenericSendError}; use satrs::request::{Apid, GenericMessage, MessageMetadata}; use satrs::spacepackets::ecss::tc::PusTcReader; use satrs::spacepackets::ecss::PusServiceId; +use satrs::tmtc::tc_helper::StoreAndSendError; use satrs::ComponentId; use satrs_example::config::components::PUS_ROUTING_SERVICE; use satrs_example::config::{tmtc_err, CustomPusServiceId}; diff --git a/satrs-example/src/tmtc/mod.rs b/satrs-example/src/tmtc/mod.rs index f3ebfbd..bfd24c5 100644 --- a/satrs-example/src/tmtc/mod.rs +++ b/satrs-example/src/tmtc/mod.rs @@ -1,96 +1,2 @@ -use satrs::pus::ReceivesEcssPusTc; -use satrs::queue::GenericSendError; -use satrs::spacepackets::SpHeader; -use std::sync::mpsc::{self}; -use thiserror::Error; - -use satrs::pool::{PoolProvider, SharedStaticMemoryPool, StoreAddr, StoreError}; -use satrs::spacepackets::ecss::tc::PusTcReader; -use satrs::tmtc::{ReceivesCcsdsTc, ReceivesTc}; - pub mod tc_source; pub mod tm_sink; - -#[derive(Debug, Clone, PartialEq, Eq, Error)] -pub enum StoreAndSendError { - #[error("Store error: {0}")] - Store(#[from] StoreError), - #[error("Genreric send error: {0}")] - Send(#[from] GenericSendError), -} - -#[derive(Clone)] -pub struct SharedTcPool(pub SharedStaticMemoryPool); - -impl SharedTcPool { - pub fn add_pus_tc(&mut self, pus_tc: &PusTcReader) -> Result { - let mut pg = self.0.write().expect("error locking TC store"); - let addr = pg.free_element(pus_tc.len_packed(), |buf| { - buf[0..pus_tc.len_packed()].copy_from_slice(pus_tc.raw_data()); - })?; - Ok(addr) - } - - pub fn add_ccsds_tc(&mut self, _: &SpHeader, tc_raw: &[u8]) -> Result { - self.add_raw_tc(tc_raw) - } - - pub fn add_raw_tc(&mut self, tc_raw: &[u8]) -> Result { - let mut pg = self.0.write().expect("error locking TC store"); - let addr = pg.free_element(tc_raw.len(), |buf| { - buf[0..tc_raw.len()].copy_from_slice(tc_raw); - })?; - Ok(addr) - } -} - -#[derive(Clone)] -pub struct TcSenderSharedPool { - pub tc_source: mpsc::SyncSender, - pub shared_pool: SharedTcPool, -} - -impl TcSenderSharedPool { - #[allow(dead_code)] - pub fn shared_pool(&self) -> SharedStaticMemoryPool { - self.shared_pool.0.clone() - } -} - -impl ReceivesTc for TcSenderSharedPool { - type Error = StoreAndSendError; - - fn pass_tc(&mut self, tc_raw: &[u8]) -> Result<(), Self::Error> { - let addr = self.shared_pool.add_raw_tc(tc_raw)?; - self.tc_source.try_send(addr).map_err(|e| match e { - mpsc::TrySendError::Full(_) => GenericSendError::QueueFull(None), - mpsc::TrySendError::Disconnected(_) => GenericSendError::RxDisconnected, - })?; - Ok(()) - } -} -impl ReceivesEcssPusTc for TcSenderSharedPool { - type Error = StoreAndSendError; - - fn pass_pus_tc(&mut self, _: &SpHeader, pus_tc: &PusTcReader) -> Result<(), Self::Error> { - let addr = self.shared_pool.add_pus_tc(pus_tc)?; - self.tc_source.try_send(addr).map_err(|e| match e { - mpsc::TrySendError::Full(_) => GenericSendError::QueueFull(None), - mpsc::TrySendError::Disconnected(_) => GenericSendError::RxDisconnected, - })?; - Ok(()) - } -} - -impl ReceivesCcsdsTc for TcSenderSharedPool { - type Error = StoreAndSendError; - - fn pass_ccsds(&mut self, sp_header: &SpHeader, tc_raw: &[u8]) -> Result<(), Self::Error> { - let addr = self.shared_pool.add_ccsds_tc(sp_header, tc_raw)?; - self.tc_source.try_send(addr).map_err(|e| match e { - mpsc::TrySendError::Full(_) => GenericSendError::QueueFull(None), - mpsc::TrySendError::Disconnected(_) => GenericSendError::RxDisconnected, - })?; - Ok(()) - } -}