test event working

This commit is contained in:
2026-01-21 15:53:50 +01:00
parent 033c995138
commit d79f0b5ceb
4 changed files with 35 additions and 91 deletions
+32 -3
View File
@@ -1,7 +1,7 @@
use anyhow::bail;
use arbitrary_int::u11;
use clap::Parser as _;
use models::{Apid, TcHeader};
use models::{Apid, MessageType, TcHeader};
use satrs_example::config::{OBSW_SERVER_ADDR, SERVER_PORT};
use spacepackets::{CcsdsPacketIdAndPsc, SpacePacketHeader};
use std::{
@@ -17,6 +17,8 @@ use std::{
pub struct Cli {
#[arg(short, long)]
ping: bool,
#[arg(short, long)]
test_event: bool,
}
fn setup_logger(level: log::LevelFilter) -> Result<(), fern::InitError> {
@@ -60,6 +62,20 @@ fn main() -> anyhow::Result<()> {
let request_packet = request.to_vec();
client.send_to(&request_packet, addr).unwrap();
}
if cli.test_event {
let request = models::ccsds::CcsdsTcPacketOwned::new_with_request(
SpacePacketHeader::new_from_apid(u11::new(Apid::Tmtc as u16)),
TcHeader::new(models::ComponentId::Controller, models::MessageType::Event),
models::control::request::Request::TestEvent,
);
let sent_tc_id = CcsdsPacketIdAndPsc::new_from_ccsds_packet(&request.sp_header);
log::info!(
"sending event request with TC ID {:#010x}",
sent_tc_id.raw()
);
let request_packet = request.to_vec();
client.send_to(&request_packet, addr).unwrap();
}
let mut recv_buf: Box<[u8; 2048]> = Box::new([0; 2048]);
loop {
@@ -106,8 +122,21 @@ fn handle_raw_tm_packet(data: &[u8]) -> anyhow::Result<()> {
tm_header.sender_id,
);
}
if tm_header.message_type == MessageType::Event {
let response = postcard::from_bytes::<models::Event>(remainder);
log::info!(
"Received event from {:?}: {:?}",
tm_header.sender_id,
response.unwrap()
);
return Ok(());
}
match tm_header.sender_id {
models::ComponentId::Pcdu => todo!(),
models::ComponentId::Pcdu => {
let response =
postcard::from_bytes::<models::pcdu::response::Response>(remainder);
log::info!("Received response from PCDU: {:?}", response.unwrap());
}
models::ComponentId::Controller => {
let response =
postcard::from_bytes::<models::control::response::Response>(remainder);
@@ -122,7 +151,7 @@ fn handle_raw_tm_packet(data: &[u8]) -> anyhow::Result<()> {
models::ComponentId::UdpServer => todo!(),
models::ComponentId::TcpServer => todo!(),
models::ComponentId::Ground => todo!(),
models::ComponentId::EventManager => todo!(),
models::ComponentId::EventManager => {}
}
}
Err(_) => todo!(),