From 844c517a946881ed2c5e905a26a8f4313242f6fc Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 30 Oct 2025 18:55:16 +0100 Subject: [PATCH] add useful functions --- src/lib.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index ab5ff9f..9f7f22d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1011,6 +1011,21 @@ impl CcsdsPacketId { psc: packet.psc(), } } + + #[inline] + pub const fn raw(&self) -> u32 { + ((self.packet_id.raw() as u32) << 16) | self.psc.raw() as u32 + } +} + +impl From for CcsdsPacketId { + #[inline] + fn from(header: SpacePacketHeader) -> Self { + Self { + packet_id: header.packet_id, + psc: header.psc, + } + } } /// CCSDS packet creator with optional support for a CRC16 CCITT checksum appended to the @@ -2150,5 +2165,11 @@ pub(crate) mod tests { let id = CcsdsPacketId::new_from_ccsds_packet(&sph); assert_eq!(id.packet_id, packet_id); assert_eq!(id.psc, psc); + assert_eq!( + id.raw(), + ((id.packet_id.raw() as u32) << 16) | id.psc.raw() as u32 + ); + let id_from = CcsdsPacketId::from(sph); + assert_eq!(id_from, id); } } -- 2.43.0