diff --git a/src/ecss.rs b/src/ecss.rs index c3560db..f2ccf72 100644 --- a/src/ecss.rs +++ b/src/ecss.rs @@ -65,6 +65,36 @@ pub enum PacketTypeCodes { Packet = 12, } +pub type Ptc = PacketTypeCodes; + +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +pub enum UnsignedPfc { + OneByte = 4, + TwelveBits = 8, + TwoBytes = 12, + ThreeBytes = 13, + FourBytes = 14, + SixBytes = 15, + EightBytes = 16, + OneBit = 17, + TwoBits = 18, + ThreeBits = 19, +} + +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +pub enum RealPfc { + /// 4 octets simple precision format (IEEE) + Float = 1, + /// 8 octets simple precision format (IEEE) + Double = 2, + /// 4 octets simple precision format (MIL-STD) + FloatMilStd = 3, + /// 8 octets simple precision format (MIL-STD) + DoubleMilStd = 4, +} + #[derive(Debug, Copy, Clone, PartialEq, Eq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub enum PusError { @@ -288,13 +318,13 @@ impl EcssEnumeration for GenericEcssEnumWrapper { } fn write_to_be_bytes(&self, buf: &mut [u8]) -> Result<(), ByteConversionError> { - if buf.len() < self.byte_width() as usize { + if buf.len() < self.byte_width() { return Err(ByteConversionError::ToSliceTooSmall(SizeMissmatch { found: buf.len(), - expected: self.byte_width() as usize, + expected: self.byte_width(), })); } - buf[0..self.byte_width() as usize].copy_from_slice(self.val.to_be_bytes().as_ref()); + buf[0..self.byte_width()].copy_from_slice(self.val.to_be_bytes().as_ref()); Ok(()) } } diff --git a/src/time.rs b/src/time.rs index 45277bc..907f9c3 100644 --- a/src/time.rs +++ b/src/time.rs @@ -134,7 +134,7 @@ impl CdsShortTimeProvider { }; let unix_days_seconds = ccsds_to_unix_days(ccsds_days as i32) as i64 * SECONDS_PER_DAY as i64; - provider.setup(unix_days_seconds as i64, ms_of_day.into()) + provider.setup(unix_days_seconds, ms_of_day.into()) } #[cfg(feature = "std")] @@ -223,7 +223,7 @@ impl CcsdsTimeProvider for CdsShortTimeProvider { } fn date_time(&self) -> Option> { - self.calc_date_time((self.ms_of_day % 1000) as u32) + self.calc_date_time(self.ms_of_day % 1000) } }