TM sender abstractions have ID and name now

This commit is contained in:
2023-02-28 14:01:40 +01:00
parent 6072bc7657
commit 283fd61f81
7 changed files with 123 additions and 37 deletions

View File

@ -7,7 +7,7 @@ use satrs_core::params::{Params, ParamsHeapless, WritableToBeBytes};
use satrs_core::pus::event_man::{
DefaultPusMgmtBackendProvider, EventReporter, PusEventDispatcher,
};
use satrs_core::pus::EcssTmSenderCore;
use satrs_core::pus::MpscTmAsVecSender;
use spacepackets::ecss::{PusError, PusPacket};
use spacepackets::tm::PusTm;
use std::sync::mpsc::{channel, SendError, TryRecvError};
@ -24,23 +24,23 @@ pub enum CustomTmSenderError {
PusError(PusError),
}
#[derive(Clone)]
struct EventTmSender {
sender: std::sync::mpsc::Sender<Vec<u8>>,
}
impl EcssTmSenderCore for EventTmSender {
type Error = CustomTmSenderError;
fn send_tm(&mut self, tm: PusTm) -> Result<(), Self::Error> {
let mut vec = Vec::new();
tm.append_to_vec(&mut vec)
.map_err(|e| CustomTmSenderError::PusError(e))?;
self.sender
.send(vec)
.map_err(CustomTmSenderError::SendError)?;
Ok(())
}
}
// #[derive(Clone)]
// struct EventTmSender {
// sender: std::sync::mpsc::Sender<Vec<u8>>,
// }
//
// impl EcssTmSenderCore for EventTmSender {
// type Error = CustomTmSenderError;
// fn send_tm(&mut self, tm: PusTm) -> Result<(), Self::Error> {
// let mut vec = Vec::new();
// tm.append_to_vec(&mut vec)
// .map_err(|e| CustomTmSenderError::PusError(e))?;
// self.sender
// .send(vec)
// .map_err(CustomTmSenderError::SendError)?;
// Ok(())
// }
// }
#[test]
fn test_threaded_usage() {
@ -58,7 +58,7 @@ fn test_threaded_usage() {
let mut pus_event_man = PusEventDispatcher::new(reporter, Box::new(backend));
// PUS + Generic event manager thread
let jh0 = thread::spawn(move || {
let mut sender = EventTmSender { sender: event_tx };
let mut sender = MpscTmAsVecSender::new(0, "event_sender", event_tx);
let mut event_cnt = 0;
let mut params_array: [u8; 128] = [0; 128];
loop {