Fixed some bit shifting.

I was shifting before masking because I had been using a larger mask,
u16. Now it masks then shifts because I had changed it to being a u8
mask for each section.
This commit is contained in:
2025-11-14 20:03:50 -05:00
parent 5b7df6d300
commit eb0e531d3a

View File

@ -1,3 +1,5 @@
//! # Header
//! The
use crate::bits::*; use crate::bits::*;
@ -41,8 +43,8 @@ impl FromBytes for ApId
{ {
if bytes.len() < 2usize { return Err("ERROR"); } if bytes.len() < 2usize { return Err("ERROR"); }
let id: u16 = (((bytes[0] as u16) << 8) & ApId::MASK_ARR[0]) | let id: u16 = (((bytes[0] & ApId::MASK_ARR[0]) as u16) << 8) |
((bytes[1] as u16) & ApId::MASK_ARR[1]); (((bytes[1] & ApId::MASK_ARR[1]) as u16));
Ok(Parsed::new(2usize, id.into())) Ok(Parsed::new(2usize, id.into()))
} }
@ -56,7 +58,7 @@ impl IntoBytes for ApId
{ {
if buffer.len() < 2usize { return Err("Error"); } 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[0] = ((id >> 8) as u8) & ApId::MASK_ARR[0];
buffer[1] = (id 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"); } 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[0] = ((id >> 8) as u8) & mask[0];
bytes[1] = (id as u8) & mask[1]; bytes[1] = (id as u8) & mask[1];
@ -189,6 +191,7 @@ pub enum PacketType
const TYPE_TELEMETRY: u8 = 0b00000000; const TYPE_TELEMETRY: u8 = 0b00000000;
const TYPE_TELECOMMAND: u8 = 0b00010000; const TYPE_TELECOMMAND: u8 = 0b00010000;
impl PacketType impl PacketType
{ {
pub const MASK_U8: u8 = 0b00010000; pub const MASK_U8: u8 = 0b00010000;