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:
@ -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;
|
||||
|
||||
Reference in New Issue
Block a user