start integrating new susbystem commanding helper
This commit is contained in:
1 parent
818f7d19eb
commit
2700e03c16
7 files changed
+102
-47
No files matched your search
@@ -1,4 +1,5 @@
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, Copy, PartialEq, Eq)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, Copy, PartialEq, Eq, num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
|
||||
#[repr(u32)]
|
||||
pub enum Mode {
|
||||
Passive,
|
||||
Safe,
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
use core::str::FromStr;
|
||||
|
||||
use num_enum::TryFromPrimitive as _;
|
||||
use satrs::mode::ModeRaw;
|
||||
|
||||
use crate::DeviceMode;
|
||||
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, Copy, PartialEq, Eq)]
|
||||
@@ -11,6 +14,32 @@ pub enum Mode {
|
||||
NoModeKeeping,
|
||||
}
|
||||
|
||||
impl From<Mode> for ModeRaw {
|
||||
fn from(value: Mode) -> Self {
|
||||
match value {
|
||||
Mode::Device(device_mode) => device_mode.into(),
|
||||
Mode::NoModeKeeping => 5,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<ModeRaw> for Mode {
|
||||
type Error = ();
|
||||
|
||||
fn try_from(value: ModeRaw) -> Result<Self, Self::Error> {
|
||||
match DeviceMode::try_from_primitive(value) {
|
||||
Ok(val) => Ok(Mode::Device(val)),
|
||||
Err(_) => {
|
||||
if value == 5 {
|
||||
Ok(Mode::NoModeKeeping)
|
||||
} else {
|
||||
Err(())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl FromStr for Mode {
|
||||
type Err = ();
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, Copy, PartialEq, Eq)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, Copy, PartialEq, Eq, num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
|
||||
#[repr(u32)]
|
||||
pub enum Mode {
|
||||
Off,
|
||||
Normal,
|
||||
|
||||
@@ -29,8 +29,10 @@ pub enum ComponentId {
|
||||
|
||||
AcsSubsystem,
|
||||
AcsMgmAssembly,
|
||||
AcsController,
|
||||
AcsMgm0,
|
||||
AcsMgm1,
|
||||
AcsMgt,
|
||||
|
||||
EpsSubsystem,
|
||||
EpsPcdu,
|
||||
@@ -159,7 +161,8 @@ pub trait Message {
|
||||
/// The states are related both to the physical and the logical state of the device. Some
|
||||
/// device handlers control the power supply of their own device and an off state might also
|
||||
/// mean that the device is physically off.
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Eq, Copy, Clone)]
|
||||
#[derive(serde::Serialize, serde::Deserialize, Debug, PartialEq, Eq, Copy, Clone, num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
|
||||
#[repr(u32)]
|
||||
pub enum DeviceMode {
|
||||
Off = 0,
|
||||
On = 1,
|
||||
|
||||
Reference in new issue
Block a user