Files
ProjectNautilus/flight/src/hardware/bno085/shtp.rs
2025-09-20 10:38:15 -07:00

26 lines
670 B
Rust

use crate::data::reader::DataReader;
use crate::hardware::error::NotAvailableError;
pub struct Header {
pub length: u16,
pub channel: u8,
pub sequence_number: u8,
}
impl Header {
pub const SIZE: usize = size_of::<u16>() + size_of::<u8>() + size_of::<u8>();
pub fn parse(bytes: &mut impl DataReader) -> Result<Self> {
let length = bytes.read_le::<u16>().ok_or(NotAvailableError)?;
let channel = bytes.read_le::<u8>().ok_or(NotAvailableError)?;
let sequence_number = bytes.read_le::<u8>().ok_or(NotAvailableError)?;
Ok(Self {
length,
channel,
sequence_number,
})
}
}