2024-04-16 09:59:31 +02:00
|
|
|
use derive_new::new;
|
|
|
|
use ops_sat_rs::config::SPP_CLIENT_WIRETAPPING_RX;
|
|
|
|
use satrs::{
|
|
|
|
encoding::ccsds::{SpValidity, SpacePacketValidator},
|
|
|
|
spacepackets::PacketId,
|
|
|
|
};
|
|
|
|
|
2024-04-10 12:51:15 +02:00
|
|
|
pub mod can;
|
2024-04-13 15:16:53 +02:00
|
|
|
pub mod tcp_server;
|
|
|
|
pub mod tcp_spp_client;
|
|
|
|
pub mod udp_server;
|
2024-04-16 09:59:31 +02:00
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
|
|
pub enum TcpComponent {
|
|
|
|
Server,
|
|
|
|
Client,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(new, Clone)]
|
|
|
|
pub struct SimpleSpValidator {
|
|
|
|
component: TcpComponent,
|
|
|
|
valid_ids: Vec<PacketId>,
|
|
|
|
}
|
|
|
|
|
|
|
|
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;
|
|
|
|
}
|
2024-04-16 13:08:10 +02:00
|
|
|
SpValidity::Skip
|
2024-04-16 09:59:31 +02:00
|
|
|
}
|
|
|
|
}
|