diff --git a/satrs-example/src/eps/pcdu.rs b/satrs-example/src/eps/pcdu.rs index e39377c..a18b114 100644 --- a/satrs-example/src/eps/pcdu.rs +++ b/satrs-example/src/eps/pcdu.rs @@ -8,14 +8,13 @@ use derive_new::new; use satrs::{ hk::{HkRequest, HkRequestVariant}, mode::{ModeAndSubmode, ModeError, ModeProvider, ModeReply, ModeRequestHandler}, - power::{SwitchState, SwitchStateBinary}, pus::EcssTmSender, queue::{GenericSendError, GenericTargetedMessagingError}, request::{GenericMessage, MessageMetadata, UniqueApidTargetId}, }; use satrs_example::{config::components::PUS_MODE_SERVICE, DeviceMode, TimestampHelper}; use satrs_minisim::{ - eps::{PcduReply, PcduRequest, SwitchMap, SwitchMapWrapper}, + eps::{PcduReply, PcduRequest, SwitchMap, SwitchMapBinaryWrapper}, SerializableSimMsgPayload, SimReply, SimRequest, }; @@ -76,7 +75,7 @@ impl SerialInterface for SerialInterfaceToSim { #[derive(Default)] pub struct SerialInterfaceDummy { // Need interior mutability here for both fields. - pub switch_map: RefCell, + pub switch_map: RefCell, pub reply_deque: RefCell>, } @@ -92,20 +91,10 @@ impl SerialInterface for SerialInterfaceDummy { PcduRequest::SwitchDevice { switch, state } => { match switch_map_mut.entry(switch) { std::collections::hash_map::Entry::Occupied(mut val) => { - match state { - SwitchStateBinary::Off => { - *val.get_mut() = SwitchState::Off; - } - SwitchStateBinary::On => { - *val.get_mut() = SwitchState::On; - } - }; + *val.get_mut() = state; } std::collections::hash_map::Entry::Vacant(vacant) => { - match state { - SwitchStateBinary::Off => vacant.insert(SwitchState::Off), - SwitchStateBinary::On => vacant.insert(SwitchState::On), - }; + vacant.insert(state); } }; } @@ -205,6 +194,8 @@ impl PcduHandler { self.poll_and_handle_replies(); diff --git a/satrs-minisim/src/lib.rs b/satrs-minisim/src/lib.rs index 515e448..35ddd97 100644 --- a/satrs-minisim/src/lib.rs +++ b/satrs-minisim/src/lib.rs @@ -204,15 +204,14 @@ pub mod eps { } Self(switch_map) } - } - impl From for SwitchMapWrapper { - fn from(value: SwitchMapBinaryWrapper) -> Self { - value - .0 - .iter() - .map(|(key, value)| (*key, SwitchState::from(value.into()))) - .collect() + pub fn from_binary_switch_map_ref(switch_map: &SwitchMapBinary) -> Self { + Self( + switch_map + .iter() + .map(|(key, value)| (*key, SwitchState::from(*value))) + .collect(), + ) } }