add returncode module

This commit is contained in:
2022-11-27 19:24:18 +01:00
parent 2315012448
commit 7e0d3f394a
7 changed files with 64 additions and 12 deletions

View File

@ -1,3 +1,6 @@
use spacepackets::{ByteConversionError, SizeMissmatch};
use spacepackets::ecss::{EcssEnumeration, EcssEnumU16};
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub struct ResultU16 {
group_id: u8,
@ -22,6 +25,30 @@ impl ResultU16 {
}
}
impl From<ResultU16> for EcssEnumU16 {
fn from(v: ResultU16) -> Self {
EcssEnumU16::new(v.raw())
}
}
impl EcssEnumeration for ResultU16 {
fn pfc(&self) -> u8 {
16
}
fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<(), ByteConversionError> {
if buf.len() < 2 {
return Err(ByteConversionError::ToSliceTooSmall(SizeMissmatch {
found: buf.len(),
expected: 2
}));
}
buf[0] = self.group_id;
buf[1] = self.unique_id;
Ok(())
}
}
#[derive(Debug)]
pub struct ResultU16Ext {
pub name: &'static str,