From df346467bc8c4d6086028ef5c637618df4571e71 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Tue, 11 Jul 2023 22:52:06 +0200 Subject: [PATCH] seems to work well --- satrs-core/src/pus/mod.rs | 19 ++++--------------- satrs-core/tests/pus_verification.rs | 10 ++++------ 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/satrs-core/src/pus/mod.rs b/satrs-core/src/pus/mod.rs index e4b2db4..f03ab0f 100644 --- a/satrs-core/src/pus/mod.rs +++ b/satrs-core/src/pus/mod.rs @@ -319,6 +319,7 @@ pub mod std_mod { use crate::ChannelId; use alloc::boxed::Box; use alloc::vec::Vec; + use crossbeam_channel as cb; use spacepackets::ecss::tm::PusTmCreator; use spacepackets::ecss::PusError; use spacepackets::time::cds::TimeProvider; @@ -329,7 +330,6 @@ pub mod std_mod { use std::sync::mpsc; use std::sync::mpsc::TryRecvError; use thiserror::Error; - use crossbeam_channel as cb; impl From> for EcssTmtcError { fn from(_: mpsc::SendError) -> Self { @@ -444,11 +444,7 @@ pub mod std_mod { name: &'static str, receiver: mpsc::Receiver, ) -> Self { - Self { - id, - name, - receiver, - } + Self { id, name, receiver } } } @@ -504,7 +500,6 @@ pub mod std_mod { name: &'static str, shared_tm_store: SharedTmStore, sender: crossbeam_channel::Sender, - pub ignore_poison_errors: bool, } impl CrossbeamTmInStoreSender { @@ -513,14 +508,12 @@ pub mod std_mod { name: &'static str, shared_tm_store: SharedTmStore, sender: crossbeam_channel::Sender, - ignore_poison_errors: bool, ) -> Self { Self { id, name, shared_tm_store, sender, - ignore_poison_errors, } } } @@ -558,13 +551,9 @@ pub mod std_mod { pub fn new( id: ChannelId, name: &'static str, - receiver: cb::Receiver + receiver: cb::Receiver, ) -> Self { - Self { - id, - name, - receiver, - } + Self { id, name, receiver } } } diff --git a/satrs-core/tests/pus_verification.rs b/satrs-core/tests/pus_verification.rs index 443ba89..097eba8 100644 --- a/satrs-core/tests/pus_verification.rs +++ b/satrs-core/tests/pus_verification.rs @@ -1,5 +1,3 @@ -// TODO: Refactor this to also test the STD impl using mpsc -// TODO: Change back to cross-beam as soon as STD impl was added back for TM. #[cfg(feature = "crossbeam")] pub mod crossbeam_test { use hashbrown::HashMap; @@ -7,13 +5,13 @@ pub mod crossbeam_test { use satrs_core::pus::verification::{ FailParams, RequestId, VerificationReporterCfg, VerificationReporterWithSender, }; - use satrs_core::pus::MpscTmInStoreSender; + use satrs_core::pus::CrossbeamTmInStoreSender; use satrs_core::tmtc::tm_helper::SharedTmStore; use spacepackets::ecss::tc::{PusTcCreator, PusTcReader, PusTcSecondaryHeader}; use spacepackets::ecss::tm::PusTmReader; use spacepackets::ecss::{EcssEnumU16, EcssEnumU8, PusPacket, SerializablePusPacket}; use spacepackets::SpHeader; - use std::sync::{mpsc, Arc, RwLock}; + use std::sync::{Arc, RwLock}; use std::thread; use std::time::Duration; @@ -39,9 +37,9 @@ pub mod crossbeam_test { let shared_tm_store = SharedTmStore::new(Box::new(LocalPool::new(pool_cfg.clone()))); let shared_tc_pool_0 = Arc::new(RwLock::new(LocalPool::new(pool_cfg))); let shared_tc_pool_1 = shared_tc_pool_0.clone(); - let (tx, rx) = mpsc::channel(); + let (tx, rx) = crossbeam_channel::bounded(10); let sender = - MpscTmInStoreSender::new(0, "verif_sender", shared_tm_store.clone(), tx.clone()); + CrossbeamTmInStoreSender::new(0, "verif_sender", shared_tm_store.clone(), tx.clone()); let mut reporter_with_sender_0 = VerificationReporterWithSender::new(&cfg, Box::new(sender)); let mut reporter_with_sender_1 = reporter_with_sender_0.clone();