use derive_new::new; use ops_sat_rs::config::SPP_CLIENT_WIRETAPPING_RX; use satrs::{ encoding::ccsds::{SpValidity, SpacePacketValidator}, spacepackets::PacketId, }; pub mod can; pub mod tcp_server; pub mod tcp_spp_client; pub mod udp_server; #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub enum TcpComponent { Server, Client, } #[derive(new, Clone)] pub struct SimpleSpValidator { component: TcpComponent, valid_ids: Vec, } impl SpacePacketValidator for SimpleSpValidator { fn validate(&self, sp_header: &satrs::spacepackets::SpHeader, raw_buf: &[u8]) -> SpValidity { if SPP_CLIENT_WIRETAPPING_RX && self.component == TcpComponent::Client { log::debug!("sp header: {:?}", sp_header); log::debug!("raw data: {:x?}", raw_buf); } if self.valid_ids.contains(&sp_header.packet_id) { return SpValidity::Valid; } SpValidity::Skip } }