Rename example models crates to types

- satrs-example/models (package "models") -> satrs-example/types ("types")
- embedded-examples/models (package "embedded-models") -> embedded-examples/types ("embedded-types")

Updates all path dependencies and use/models:: references accordingly.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robin Mueller
2026-08-25 14:13:02 +02:00
co-authored by Claude Sonnet 5
parent 3e4c3c4e64
commit 5fffcc011f
44 changed files with 230 additions and 233 deletions
+21 -21
View File
@@ -1,8 +1,3 @@
use models::acs::mgm::SensorData;
use models::acs::mgm::request::ModeRequest;
use models::acs::mgm::response::ModeResponse;
use models::pcdu::SwitchId;
use models::{ComponentId, DeviceMode, HkRequestType, acs::mgm};
use satrs::spacepackets::CcsdsPacketIdAndPsc;
use satrs_example::{HkHelperSingleSet, ModeHelper, TimestampHelper, TmtcQueues};
use satrs_minisim::acs::MgmRequestLis3Mdl;
@@ -13,6 +8,11 @@ use satrs_minisim::{SerializableSimMsgPayload, SimReply, SimRequest};
use std::sync::mpsc;
use std::sync::{Arc, Mutex};
use std::time::Duration;
use types::acs::mgm::SensorData;
use types::acs::mgm::request::ModeRequest;
use types::acs::mgm::response::ModeResponse;
use types::pcdu::SwitchId;
use types::{ComponentId, DeviceMode, HkRequestType, acs::mgm};
use satrs::request::MessageMetadata;
@@ -308,7 +308,7 @@ impl MgmHandlerLis3Mdl {
pub fn handle_hk_request(
&mut self,
tc_id: Option<CcsdsPacketIdAndPsc>,
hk_request: &models::acs::mgm::request::HkRequest,
hk_request: &types::acs::mgm::request::HkRequest,
) {
match hk_request.req_type {
HkRequestType::OneShot => {
@@ -460,14 +460,14 @@ mod tests {
};
use arbitrary_int::u11;
use models::{
use satrs::{request::GenericMessage, spacepackets::SpacePacketHeader};
use satrs_minisim::acs::lis3mdl::MgmLis3RawValues;
use types::{
Apid, ComponentId, TcHeader,
acs::mgm::request::HkRequest,
ccsds::{CcsdsTcPacketOwned, CcsdsTmPacketOwned},
pcdu::{SwitchRequest, SwitchState, SwitchStateBinary},
};
use satrs::{request::GenericMessage, spacepackets::SpacePacketHeader};
use satrs_minisim::acs::lis3mdl::MgmLis3RawValues;
use crate::eps::pcdu::{SharedSwitchSet, SwitchMap, SwitchSet};
@@ -490,11 +490,11 @@ mod tests {
pub fn create_request_tc(
select: MgmSelect,
request: models::acs::mgm::request::Request,
) -> models::ccsds::CcsdsTcPacketOwned {
models::ccsds::CcsdsTcPacketOwned::new_with_request(
request: types::acs::mgm::request::Request,
) -> types::ccsds::CcsdsTcPacketOwned {
types::ccsds::CcsdsTcPacketOwned::new_with_request(
SpacePacketHeader::new_from_apid(u11::new(Apid::Acs as u16)),
TcHeader::new(select.id(), models::MessageType::Ping),
TcHeader::new(select.id(), types::MessageType::Ping),
request,
)
}
@@ -602,9 +602,9 @@ mod tests {
assert_eq!(tm_packet.tm_header.sender_id, ComponentId::AcsMgm0);
let response =
postcard::from_bytes::<models::acs::mgm::response::Response>(&tm_packet.payload)
postcard::from_bytes::<types::acs::mgm::response::Response>(&tm_packet.payload)
.expect("failed to deserialize mode reply");
matches!(response, models::acs::mgm::response::Response::Ok);
matches!(response, types::acs::mgm::response::Response::Ok);
// The device should have been polled once.
assert_eq!(testbench.test_spi_interface().call_count, 1);
let mgm_set = *testbench.handler.shared_mgm_set.lock().unwrap();
@@ -691,9 +691,9 @@ mod tests {
assert_eq!(tm_packet.tm_header.sender_id, ComponentId::AcsMgm0);
let response =
postcard::from_bytes::<models::acs::mgm::response::Response>(&tm_packet.payload)
postcard::from_bytes::<types::acs::mgm::response::Response>(&tm_packet.payload)
.expect("failed to deserialize mode reply");
if let models::acs::mgm::response::Response::Hk(mgm::response::HkResponse::MgmData(data)) =
if let types::acs::mgm::response::Response::Hk(mgm::response::HkResponse::MgmData(data)) =
response
{
assert_eq!(data.valid, false);
@@ -743,17 +743,17 @@ mod tests {
assert_eq!(mode_tm.tm_header.sender_id, ComponentId::AcsMgm0);
let response =
postcard::from_bytes::<models::acs::mgm::response::Response>(&mode_tm.payload)
postcard::from_bytes::<types::acs::mgm::response::Response>(&mode_tm.payload)
.expect("failed to deserialize mode reply");
matches!(response, models::acs::mgm::response::Response::Ok);
matches!(response, types::acs::mgm::response::Response::Ok);
let hk_tm = testbench.tm_rx.try_recv().expect("no hk reply generated");
assert_eq!(hk_tm.tm_header.sender_id, ComponentId::AcsMgm0);
let response = postcard::from_bytes::<models::acs::mgm::response::Response>(&hk_tm.payload)
let response = postcard::from_bytes::<types::acs::mgm::response::Response>(&hk_tm.payload)
.expect("failed to deserialize mode reply");
if let models::acs::mgm::response::Response::Hk(mgm::response::HkResponse::MgmData(data)) =
if let types::acs::mgm::response::Response::Hk(mgm::response::HkResponse::MgmData(data)) =
response
{
// Set is now valid.
+33 -33
View File
@@ -1,11 +1,11 @@
use std::{sync::mpsc, time::Duration};
use models::{
use satrs::spacepackets::CcsdsPacketIdAndPsc;
use satrs_example::{ModeHelper, TmtcQueues};
use types::{
ComponentId, DeviceMode,
acs::mgm_assembly::{Mode, request, response},
};
use satrs::spacepackets::CcsdsPacketIdAndPsc;
use satrs_example::{ModeHelper, TmtcQueues};
use crate::ccsds::pack_ccsds_tm_packet_for_now;
@@ -16,8 +16,8 @@ pub struct ParentQueueHelper {
/// Helper component for communication with a parent component, which is usually as assembly.
pub struct ChildrenQueueHelper {
pub request_tx_queues: [mpsc::SyncSender<models::acs::mgm::request::ModeRequest>; 2],
pub report_rx_queues: [mpsc::Receiver<models::acs::mgm::response::ModeResponse>; 2],
pub request_tx_queues: [mpsc::SyncSender<types::acs::mgm::request::ModeRequest>; 2],
pub report_rx_queues: [mpsc::Receiver<types::acs::mgm::response::ModeResponse>; 2],
}
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
@@ -80,14 +80,14 @@ impl Assembly {
match self.tmtc_queues.tc_rx.try_recv() {
Ok(packet) => {
let tc_id = CcsdsPacketIdAndPsc::new_from_ccsds_packet(&packet.sp_header);
match postcard::from_bytes::<models::acs::mgm_assembly::request::Request>(
match postcard::from_bytes::<types::acs::mgm_assembly::request::Request>(
&packet.payload,
) {
Ok(request) => match request {
models::acs::mgm_assembly::request::Request::Ping => {
types::acs::mgm_assembly::request::Request::Ping => {
self.send_telemetry(Some(tc_id), response::Response::Ok)
}
models::acs::mgm_assembly::request::Request::Mode(request) => {
types::acs::mgm_assembly::request::Request::Mode(request) => {
match request {
request::ModeRequest::SetMode(assembly_mode) => {
self.start_transition(false, assembly_mode, Some(tc_id))
@@ -117,7 +117,7 @@ impl Assembly {
pub fn send_telemetry(
&self,
tc_id: Option<CcsdsPacketIdAndPsc>,
response: models::acs::mgm_assembly::response::Response,
response: types::acs::mgm_assembly::response::Response,
) {
match pack_ccsds_tm_packet_for_now(Self::ID, tc_id, &response) {
Ok(packet) => {
@@ -165,12 +165,12 @@ impl Assembly {
loop {
match rx.try_recv() {
Ok(report) => match report {
models::acs::mgm::response::ModeResponse::Mode(device_mode) => {
types::acs::mgm::response::ModeResponse::Mode(device_mode) => {
self.mgm_modes[idx].mode = Some(device_mode);
self.mgm_modes[idx].reply_received = true;
mode_report_received = true;
}
models::acs::mgm::response::ModeResponse::SetModeTimeout => {
types::acs::mgm::response::ModeResponse::SetModeTimeout => {
// Ignore, handle this with our own timeout.
log::warn!("MGM {} mode timeout", idx);
}
@@ -275,7 +275,7 @@ impl Assembly {
pub fn command_children(&self, mode: DeviceMode) {
for tx in &self.children_queues.request_tx_queues {
tx.send(models::acs::mgm::request::ModeRequest::SetMode(mode))
tx.send(types::acs::mgm::request::ModeRequest::SetMode(mode))
.unwrap();
}
}
@@ -320,20 +320,20 @@ mod tests {
use std::sync::mpsc::TryRecvError;
use arbitrary_int::u11;
use models::{
use satrs::spacepackets::SpacePacketHeader;
use types::{
Apid, Message, MessageType, TcHeader,
acs::mgm_assembly,
ccsds::{CcsdsTcPacketOwned, CcsdsTmPacketOwned},
};
use satrs::spacepackets::SpacePacketHeader;
use super::*;
pub struct Testbench {
subsystem_req_tx: mpsc::SyncSender<request::ModeRequest>,
subsystem_report_rx: mpsc::Receiver<response::ModeResponse>,
mgm_request_rx: [mpsc::Receiver<models::acs::mgm::request::ModeRequest>; 2],
mgm_report_tx: [mpsc::SyncSender<models::acs::mgm::response::ModeResponse>; 2],
mgm_request_rx: [mpsc::Receiver<types::acs::mgm::request::ModeRequest>; 2],
mgm_report_tx: [mpsc::SyncSender<types::acs::mgm::response::ModeResponse>; 2],
tc_tx: mpsc::SyncSender<CcsdsTcPacketOwned>,
tm_rx: mpsc::Receiver<CcsdsTmPacketOwned>,
assembly: Assembly,
@@ -396,9 +396,9 @@ mod tests {
}
pub fn create_request_tc(
request: models::acs::mgm_assembly::request::Request,
) -> models::ccsds::CcsdsTcPacketOwned {
models::ccsds::CcsdsTcPacketOwned::new_with_request(
request: types::acs::mgm_assembly::request::Request,
) -> types::ccsds::CcsdsTcPacketOwned {
types::ccsds::CcsdsTcPacketOwned::new_with_request(
SpacePacketHeader::new_from_apid(u11::new(Apid::Acs as u16)),
TcHeader::new(Assembly::ID, request.message_type()),
request,
@@ -429,13 +429,13 @@ mod tests {
let request = rx.try_recv().unwrap();
assert_eq!(
request,
models::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
types::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
);
}
// Confirm the mode is set.
for tx in tb.mgm_report_tx.iter() {
tx.send(models::acs::mgm::response::ModeResponse::Mode(
tx.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Normal,
))
.unwrap();
@@ -467,13 +467,13 @@ mod tests {
let request = rx.try_recv().unwrap();
assert_eq!(
request,
models::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
types::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
);
}
// Confirm the mode is set.
for tx in tb.mgm_report_tx.iter() {
tx.send(models::acs::mgm::response::ModeResponse::Mode(
tx.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Normal,
))
.unwrap();
@@ -505,18 +505,18 @@ mod tests {
let request = rx.try_recv().unwrap();
assert_eq!(
request,
models::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
types::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
);
}
// One device is sufficient.
tb.mgm_report_tx[0]
.send(models::acs::mgm::response::ModeResponse::Mode(
.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Normal,
))
.unwrap();
tb.mgm_report_tx[1]
.send(models::acs::mgm::response::ModeResponse::Mode(
.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Off,
))
.unwrap();
@@ -547,13 +547,13 @@ mod tests {
let request = rx.try_recv().unwrap();
assert_eq!(
request,
models::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
types::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
);
}
// Confirm the mode is set.
for tx in tb.mgm_report_tx.iter() {
tx.send(models::acs::mgm::response::ModeResponse::Mode(
tx.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Off,
))
.unwrap();
@@ -585,13 +585,13 @@ mod tests {
let request = rx.try_recv().unwrap();
assert_eq!(
request,
models::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
types::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
);
}
// Confirm the mode is set.
for tx in tb.mgm_report_tx.iter() {
tx.send(models::acs::mgm::response::ModeResponse::Mode(
tx.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Normal,
))
.unwrap();
@@ -608,7 +608,7 @@ mod tests {
);
for tx in tb.mgm_report_tx.iter() {
tx.send(models::acs::mgm::response::ModeResponse::Mode(
tx.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Off,
))
.unwrap();
@@ -621,13 +621,13 @@ mod tests {
let request = rx.try_recv().unwrap();
assert_eq!(
request,
models::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
types::acs::mgm::request::ModeRequest::SetMode(DeviceMode::Normal)
);
}
// Let the mode keeping fail.
for tx in tb.mgm_report_tx.iter() {
tx.send(models::acs::mgm::response::ModeResponse::Mode(
tx.send(types::acs::mgm::response::ModeResponse::Mode(
DeviceMode::Off,
))
.unwrap();
+37 -39
View File
@@ -4,16 +4,16 @@ use std::{
time::Duration,
};
use models::{
ComponentId,
acs::subsystem::{Mode, response},
};
use satrs::{
mode_tree::{ModeStoreProvider, ModeStoreVec, SequenceModeTables, TargetModeTables},
spacepackets::CcsdsPacketIdAndPsc,
subsystem::SubsystemCommandingHelper,
};
use satrs_example::{ModeHelper, TmtcQueues};
use types::{
ComponentId,
acs::subsystem::{Mode, response},
};
#[derive(Debug)]
pub struct TransitionInfo {
@@ -29,16 +29,16 @@ pub enum TransitionState {
#[derive(Debug)]
pub struct ChildModes {
mgm_assembly_mode: models::acs::mgm_assembly::Mode,
mgt_mode: models::acs::mgt::Mode,
controller_mode: models::acs::ctrl::Mode,
mgm_assembly_mode: types::acs::mgm_assembly::Mode,
mgt_mode: types::acs::mgt::Mode,
controller_mode: types::acs::ctrl::Mode,
}
#[derive(Debug)]
pub struct TransitionCommands {
mgm_assembly_mode: Option<(models::acs::mgm_assembly::Mode, TransitionInfo)>,
mgt_mode: Option<(models::acs::mgt::Mode, TransitionInfo)>,
controller_mode: Option<(models::acs::ctrl::Mode, TransitionInfo)>,
mgm_assembly_mode: Option<(types::acs::mgm_assembly::Mode, TransitionInfo)>,
mgt_mode: Option<(types::acs::mgt::Mode, TransitionInfo)>,
controller_mode: Option<(types::acs::ctrl::Mode, TransitionInfo)>,
}
const OFF_SEQUENCE: [TransitionCommands; 2] = [
@@ -46,7 +46,7 @@ const OFF_SEQUENCE: [TransitionCommands; 2] = [
mgm_assembly_mode: None,
mgt_mode: None,
controller_mode: Some((
models::acs::ctrl::Mode::Passive,
types::acs::ctrl::Mode::Passive,
TransitionInfo {
check_mode_reached: true,
},
@@ -54,13 +54,13 @@ const OFF_SEQUENCE: [TransitionCommands; 2] = [
},
TransitionCommands {
mgm_assembly_mode: Some((
models::acs::mgm_assembly::Mode::Device(models::DeviceMode::Off),
types::acs::mgm_assembly::Mode::Device(types::DeviceMode::Off),
TransitionInfo {
check_mode_reached: false,
},
)),
mgt_mode: Some((
models::acs::mgt::Mode::Off,
types::acs::mgt::Mode::Off,
TransitionInfo {
check_mode_reached: false,
},
@@ -72,13 +72,13 @@ const OFF_SEQUENCE: [TransitionCommands; 2] = [
const SAFE_SEQUENCE: [TransitionCommands; 2] = [
TransitionCommands {
mgm_assembly_mode: Some((
models::acs::mgm_assembly::Mode::Device(models::DeviceMode::Normal),
types::acs::mgm_assembly::Mode::Device(types::DeviceMode::Normal),
TransitionInfo {
check_mode_reached: false,
},
)),
mgt_mode: Some((
models::acs::mgt::Mode::Normal,
types::acs::mgt::Mode::Normal,
TransitionInfo {
check_mode_reached: false,
},
@@ -89,7 +89,7 @@ const SAFE_SEQUENCE: [TransitionCommands; 2] = [
mgm_assembly_mode: None,
mgt_mode: None,
controller_mode: Some((
models::acs::ctrl::Mode::Safe,
types::acs::ctrl::Mode::Safe,
TransitionInfo {
check_mode_reached: false,
},
@@ -99,21 +99,21 @@ const SAFE_SEQUENCE: [TransitionCommands; 2] = [
#[derive(Debug)]
pub struct ModeRequestSenders {
pub mode_request_ctrl: SyncSender<models::acs::ctrl::request::ModeRequest>,
pub mode_request_assy: SyncSender<models::acs::mgm_assembly::request::ModeRequest>,
pub mode_request_mgt: SyncSender<models::acs::mgt::request::ModeRequest>,
pub mode_request_ctrl: SyncSender<types::acs::ctrl::request::ModeRequest>,
pub mode_request_assy: SyncSender<types::acs::mgm_assembly::request::ModeRequest>,
pub mode_request_mgt: SyncSender<types::acs::mgt::request::ModeRequest>,
}
#[derive(Debug)]
pub struct ModeReportReceivers {
pub mode_response_ctrl: Receiver<models::acs::ctrl::response::ModeReport>,
pub mode_response_assy: Receiver<models::acs::mgm_assembly::response::ModeResponse>,
pub mode_response_mgt: Receiver<models::acs::mgt::response::ModeReport>,
pub mode_response_ctrl: Receiver<types::acs::ctrl::response::ModeReport>,
pub mode_response_assy: Receiver<types::acs::mgm_assembly::response::ModeResponse>,
pub mode_response_mgt: Receiver<types::acs::mgt::response::ModeReport>,
}
#[derive(Debug)]
pub struct Subsystem {
mode_helper: ModeHelper<models::acs::subsystem::Mode, TransitionState>,
mode_helper: ModeHelper<types::acs::subsystem::Mode, TransitionState>,
transition_step: usize,
current_child_modes: Option<ChildModes>,
mode_request_senders: ModeRequestSenders,
@@ -134,19 +134,19 @@ impl Subsystem {
mode_store_vec
.add_component(
ComponentId::AcsMgmAssembly as satrs::ComponentId,
models::acs::mgm_assembly::Mode::NoModeKeeping.into(),
types::acs::mgm_assembly::Mode::NoModeKeeping.into(),
)
.unwrap();
mode_store_vec
.add_component(
ComponentId::AcsController as satrs::ComponentId,
models::acs::ctrl::Mode::Passive.into(),
types::acs::ctrl::Mode::Passive.into(),
)
.unwrap();
mode_store_vec
.add_component(
ComponentId::AcsMgt as satrs::ComponentId,
models::acs::mgt::Mode::Off.into(),
types::acs::mgt::Mode::Off.into(),
)
.unwrap();
@@ -156,7 +156,7 @@ impl Subsystem {
Self {
mode_helper: ModeHelper::new(
models::acs::subsystem::Mode::Off,
types::acs::subsystem::Mode::Off,
Duration::from_millis(2000),
),
current_child_modes: None,
@@ -181,14 +181,14 @@ impl Subsystem {
match self.tmtc_queues.tc_rx.try_recv() {
Ok(packet) => {
let tc_id = CcsdsPacketIdAndPsc::new_from_ccsds_packet(&packet.sp_header);
match postcard::from_bytes::<models::acs::subsystem::request::Request>(
match postcard::from_bytes::<types::acs::subsystem::request::Request>(
&packet.payload,
) {
Ok(request) => match request {
models::acs::subsystem::request::Request::Ping => {
types::acs::subsystem::request::Request::Ping => {
self.send_telemetry(Some(tc_id), response::Response::Ok)
}
models::acs::subsystem::request::Request::Mode(mode_request) => {
types::acs::subsystem::request::Request::Mode(mode_request) => {
self.handle_mode_request(mode_request);
}
},
@@ -216,7 +216,7 @@ impl Subsystem {
if let Some((target_mode, _info)) = &step.mgm_assembly_mode {
self.mode_request_senders
.mode_request_assy
.send(models::acs::mgm_assembly::request::ModeRequest::SetMode(
.send(types::acs::mgm_assembly::request::ModeRequest::SetMode(
*target_mode,
))
.expect("failed to send mode request to MGM assembly");
@@ -224,15 +224,13 @@ impl Subsystem {
if let Some((target_mode, _info)) = &step.mgt_mode {
self.mode_request_senders
.mode_request_mgt
.send(models::acs::mgt::request::ModeRequest::SetMode(
*target_mode,
))
.send(types::acs::mgt::request::ModeRequest::SetMode(*target_mode))
.expect("failed to send mode request to MGM assembly");
}
if let Some((target_mode, _info)) = &step.controller_mode {
self.mode_request_senders
.mode_request_ctrl
.send(models::acs::ctrl::request::ModeRequest::SetMode(
.send(types::acs::ctrl::request::ModeRequest::SetMode(
*target_mode,
))
.expect("failed to send mode request to MGM assembly");
@@ -241,10 +239,10 @@ impl Subsystem {
pub fn handle_mode_request(
&mut self,
mode_request: models::acs::subsystem::request::ModeRequest,
mode_request: types::acs::subsystem::request::ModeRequest,
) {
match mode_request {
models::acs::subsystem::request::ModeRequest::SetMode(target_mode) => {
types::acs::subsystem::request::ModeRequest::SetMode(target_mode) => {
self.mode_helper.start(target_mode);
self.transition_step = 0;
let first_step = Self::transition_sequence_for_mode(target_mode)
@@ -252,7 +250,7 @@ impl Subsystem {
.expect("empty transition table");
self.execute_transition_step(first_step);
}
models::acs::subsystem::request::ModeRequest::ReadMode => {
types::acs::subsystem::request::ModeRequest::ReadMode => {
self.send_telemetry(
None,
response::Response::Mode(response::ModeResponse::Mode(
@@ -266,7 +264,7 @@ impl Subsystem {
pub fn send_telemetry(
&self,
tc_id: Option<CcsdsPacketIdAndPsc>,
response: models::acs::subsystem::response::Response,
response: types::acs::subsystem::response::Response,
) {
match crate::ccsds::pack_ccsds_tm_packet_for_now(Self::ID, tc_id, &response) {
Ok(packet) => {
+1 -1
View File
@@ -1,10 +1,10 @@
use arbitrary_int::u11;
use models::{Apid, ComponentId, Message, TmHeader, ccsds::CcsdsTmPacketOwned};
use satrs::spacepackets::{
CcsdsPacketIdAndPsc, SpHeader,
time::{StdTimestampError, cds::CdsTime},
};
use serde::Serialize;
use types::{Apid, ComponentId, Message, TmHeader, ccsds::CcsdsTmPacketOwned};
#[derive(Debug, thiserror::Error)]
pub enum CcsdsTmCreationError {
+2 -2
View File
@@ -39,14 +39,14 @@ pub const SERVER_PORT: u16 = 7301;
lazy_static! {
pub static ref PACKET_ID_VALIDATOR: HashSet<PacketId> = {
let mut set = HashSet::new();
for id in models::Apid::iter() {
for id in types::Apid::iter() {
set.insert(PacketId::new(PacketType::Tc, true, u11::new(id as u16)));
}
set
};
pub static ref APID_VALIDATOR: HashSet<u16> = {
let mut set = HashSet::new();
for id in models::Apid::iter() {
for id in types::Apid::iter() {
set.insert(id as u16);
}
set
+2 -2
View File
@@ -1,9 +1,9 @@
use models::{
use satrs::spacepackets::CcsdsPacketIdAndPsc;
use types::{
ComponentId,
ccsds::{CcsdsTcPacketOwned, CcsdsTmPacketOwned},
control,
};
use satrs::spacepackets::CcsdsPacketIdAndPsc;
use crate::ccsds::pack_ccsds_tm_packet_for_now;
+1 -1
View File
@@ -1,6 +1,6 @@
use derive_new::new;
use models::pcdu::{SwitchId, SwitchRequest, SwitchState, SwitchStateBinary};
use std::{cell::RefCell, collections::VecDeque, sync::mpsc, time::Duration};
use types::pcdu::{SwitchId, SwitchRequest, SwitchState, SwitchStateBinary};
use satrs::{
queue::GenericSendError,
+17 -17
View File
@@ -5,14 +5,6 @@ use std::{
};
use derive_new::new;
use models::{
ComponentId, DeviceMode,
ccsds::{CcsdsTcPacketOwned, CcsdsTmPacketOwned},
pcdu::{
self, SwitchId, SwitchMapBinary, SwitchMapBinaryWrapper, SwitchRequest, SwitchState,
SwitchStateBinary, SwitchesBitfield,
},
};
use num_enum::{IntoPrimitive, TryFromPrimitive};
use satrs::{request::GenericMessage, spacepackets::CcsdsPacketIdAndPsc};
use satrs_example::TimestampHelper;
@@ -22,6 +14,14 @@ use satrs_minisim::{
};
use serde::{Deserialize, Serialize};
use strum::IntoEnumIterator as _;
use types::{
ComponentId, DeviceMode,
ccsds::{CcsdsTcPacketOwned, CcsdsTmPacketOwned},
pcdu::{
self, SwitchId, SwitchMapBinary, SwitchMapBinaryWrapper, SwitchRequest, SwitchState,
SwitchStateBinary, SwitchesBitfield,
},
};
use crate::ccsds::pack_ccsds_tm_packet_for_now;
@@ -531,21 +531,21 @@ mod tests {
use std::sync::mpsc;
use arbitrary_int::u11;
use models::{
Apid, TcHeader,
pcdu::{SwitchMapBinary, SwitchStateBinary},
};
use satrs::{
request::{GenericMessage, MessageMetadata},
spacepackets::SpacePacketHeader,
};
use types::{
Apid, TcHeader,
pcdu::{SwitchMapBinary, SwitchStateBinary},
};
use super::*;
pub fn create_request_tc(
request: models::pcdu::request::Request,
) -> models::ccsds::CcsdsTcPacketOwned {
models::ccsds::CcsdsTcPacketOwned::new_with_request(
request: types::pcdu::request::Request,
) -> types::ccsds::CcsdsTcPacketOwned {
types::ccsds::CcsdsTcPacketOwned::new_with_request(
SpacePacketHeader::new_from_apid(u11::new(Apid::Eps as u16)),
TcHeader::new(ComponentId::EpsPcdu, request.message_type()),
request,
@@ -589,8 +589,8 @@ mod tests {
#[allow(dead_code)]
pub struct PcduTestbench {
pub mode_request_tx: mpsc::SyncSender<models::pcdu::request::Request>,
pub mode_reply_rx_to_parent: mpsc::Receiver<models::pcdu::response::Response>,
pub mode_request_tx: mpsc::SyncSender<types::pcdu::request::Request>,
pub mode_reply_rx_to_parent: mpsc::Receiver<types::pcdu::response::Response>,
pub tc_tx: mpsc::SyncSender<CcsdsTcPacketOwned>,
pub tm_rx: mpsc::Receiver<CcsdsTmPacketOwned>,
pub switch_request_tx: mpsc::Sender<GenericMessage<SwitchRequest>>,
+1 -1
View File
@@ -1,4 +1,4 @@
use models::{ComponentId, Event, Message, ccsds::CcsdsTmPacketOwned, control};
use types::{ComponentId, Event, Message, ccsds::CcsdsTmPacketOwned, control};
use crate::ccsds::pack_ccsds_tm_packet_for_now;
+2 -2
View File
@@ -4,10 +4,10 @@ use std::net::{SocketAddr, UdpSocket};
use std::sync::{Arc, Mutex, mpsc};
use log::warn;
use models::ccsds::CcsdsTmPacketOwned;
use satrs::hal::std::udp_server::{ReceiveResult, UdpTcServer};
use satrs::pus::HandlingStatus;
use satrs::queue::GenericSendError;
use types::ccsds::CcsdsTmPacketOwned;
use crate::tmtc::sender::TmTcSender;
@@ -112,7 +112,6 @@ mod tests {
use arbitrary_int::traits::Integer as _;
use arbitrary_int::u14;
use models::Apid;
use satrs::spacepackets::ecss::{CreatorConfig, MessageTypeId};
use satrs::{
ComponentId,
@@ -122,6 +121,7 @@ mod tests {
},
};
use satrs_example::config::OBSW_SERVER_ADDR;
use types::Apid;
use crate::tmtc::sender::MockSender;
+2 -2
View File
@@ -5,9 +5,9 @@ use std::{
time::{Duration, Instant},
};
pub use models::ComponentId;
use models::ccsds::{CcsdsTcPacketOwned, CcsdsTmPacketOwned};
use satrs::spacepackets::{CcsdsPacketIdAndPsc, time::cds::CdsTime};
pub use types::ComponentId;
use types::ccsds::{CcsdsTcPacketOwned, CcsdsTmPacketOwned};
pub mod config;
+2 -2
View File
@@ -20,7 +20,6 @@ use interface::{
};
use log::info;
use logger::setup_logger;
use models::{ComponentId, DeviceMode};
use satrs::{
hal::std::{tcp_server::ServerConfig, udp_server::UdpTcServer},
pus::HandlingStatus,
@@ -35,6 +34,7 @@ use satrs_example::{
};
use tmtc::sender::TmTcSender;
use tmtc::{tc_source::TcSourceTask, tm_sink::TmSink};
use types::{ComponentId, DeviceMode};
use crate::{
acs::{mgm, mgm_assembly, subsystem},
@@ -263,7 +263,7 @@ fn main() {
// The PCDU is a critical component which should be in normal mode immediately.
pcdu_handler_mode_tx
.send(models::pcdu::request::Request::Mode(DeviceMode::Normal))
.send(types::pcdu::request::Request::Mode(DeviceMode::Normal))
.expect("sending initial mode request failed");
info!("Starting TMTC and UDP task");
+1 -1
View File
@@ -1,4 +1,3 @@
use models::{ComponentId, TcHeader, ccsds::CcsdsTcPacketOwned};
use satrs::{
pus::HandlingStatus,
spacepackets::{CcsdsPacketReader, ChecksumType},
@@ -8,6 +7,7 @@ use std::{
collections::HashMap,
sync::mpsc::{self, TryRecvError},
};
use types::{ComponentId, TcHeader, ccsds::CcsdsTcPacketOwned};
pub type CcsdsDistributor = HashMap<ComponentId, std::sync::mpsc::SyncSender<CcsdsTcPacketOwned>>;
+1 -1
View File
@@ -4,8 +4,8 @@ use std::{
};
use arbitrary_int::{u11, u14};
use models::ccsds::CcsdsTmPacketOwned;
use satrs::spacepackets::seq_count::{SequenceCounter, SequenceCounterCcsdsSimple};
use types::ccsds::CcsdsTmPacketOwned;
use crate::interface::tcp::SyncTcpTmSource;