diff --git a/src/header.rs b/src/header.rs index 58d804f..f7fe03b 100644 --- a/src/header.rs +++ b/src/header.rs @@ -1,3 +1,5 @@ +//! # Header +//! The use crate::bits::*; @@ -41,8 +43,8 @@ impl FromBytes for ApId { if bytes.len() < 2usize { return Err("ERROR"); } - let id: u16 = (((bytes[0] as u16) << 8) & ApId::MASK_ARR[0]) | - ((bytes[1] as u16) & ApId::MASK_ARR[1]); + let id: u16 = (((bytes[0] & ApId::MASK_ARR[0]) as u16) << 8) | + (((bytes[1] & ApId::MASK_ARR[1]) as u16)); Ok(Parsed::new(2usize, id.into())) } @@ -56,7 +58,7 @@ impl IntoBytes for ApId { if buffer.len() < 2usize { return Err("Error"); } - let id: u16 = self.from(); + let id: u16 = self.value; buffer[0] = ((id >> 8) as u8) & ApId::MASK_ARR[0]; buffer[1] = (id as u8) & ApId::MASK_ARR[0]; @@ -88,7 +90,7 @@ impl IntoBits for ApId { if bytes.len() < 2usize || mask.len() < 2usize { return Err("Error"); } - let id: u16 = self.from(); + let id: u16 = self.value; bytes[0] = ((id >> 8) as u8) & mask[0]; bytes[1] = (id as u8) & mask[1]; @@ -189,6 +191,7 @@ pub enum PacketType const TYPE_TELEMETRY: u8 = 0b00000000; const TYPE_TELECOMMAND: u8 = 0b00010000; + impl PacketType { pub const MASK_U8: u8 = 0b00010000;