pub struct Frame<T: AsRef<[u8]>> { /* private fields */ }
Implementations§
source§impl<T: AsRef<[u8]>> Frame<T>
impl<T: AsRef<[u8]>> Frame<T>
pub const PREAMBLE: u8 = 250u8
pub const STD_LEN_IS_EXT: u8 = 255u8
pub const HEADER_SIZE: usize = 4usize
pub const EXT_HEADER_SIZE: usize = 6usize
pub const PREAMBLE_SIZE: usize = 1usize
pub const EXT_LEN_SIZE: usize = 2usize
pub const CHECKSUM_SIZE: usize = 1usize
pub const MAX_FRAME_SIZE: usize = 2_055usize
pub fn new_unchecked(buffer: T) -> Frame<T>
pub fn new(buffer: T) -> Result<Frame<T>, FrameError>
pub fn check_len(&self) -> Result<(), FrameError>
pub fn check_preamble(&self) -> Result<(), FrameError>
pub fn check_payload_length(&self) -> Result<(), FrameError>
pub fn check_checksum(&self) -> Result<(), FrameError>
pub fn into_inner(self) -> T
sourcepub fn header_len() -> usize
pub fn header_len() -> usize
Return the length of a message header.
Does not include extended length, payload or checksum byte.
sourcepub fn buffer_len(n_payload_bytes: usize) -> usize
pub fn buffer_len(n_payload_bytes: usize) -> usize
Return the length of a buffer required to hold a message
with a payload length of n_payload_bytes
+ CHECKSUM_SIZE
.
pub fn preamble(&self) -> u8
pub fn bus_id(&self) -> BusId
pub fn message_id(&self) -> MessageId
pub fn payload_length(&self) -> Result<PayloadLength, FrameError>
sourcepub fn checksum(&self) -> Result<u8, FrameError>
pub fn checksum(&self) -> Result<u8, FrameError>
Return the checksum byte.
sourcepub fn compute_checksum_byte(&self) -> Result<u8, FrameError>
pub fn compute_checksum_byte(&self) -> Result<u8, FrameError>
Compute the checksum byte value such that Self::compute_checksum()
will return zero.
Excludes the preamble and current checksum byte.
sourcepub fn compute_checksum(&self) -> Result<u8, FrameError>
pub fn compute_checksum(&self) -> Result<u8, FrameError>
Compute the checksum of all bytes excluding the preamble.
If the result equals zero, the message is valid and it may be processed.
source§impl<'a, T: AsRef<[u8]> + ?Sized> Frame<&'a T>
impl<'a, T: AsRef<[u8]> + ?Sized> Frame<&'a T>
sourcepub fn payload(&self) -> Result<&'a [u8], FrameError>
pub fn payload(&self) -> Result<&'a [u8], FrameError>
Return a pointer to the payload.
Does not include the checksum byte.
source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Frame<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Frame<T>
pub fn set_preamble(&mut self)
pub fn set_bus_id(&mut self, value: BusId)
pub fn set_message_id(&mut self, value: MessageId)
pub fn set_payload_length(&mut self, value: PayloadLength)
sourcepub fn payload_mut(&mut self) -> Result<&mut [u8], FrameError>
pub fn payload_mut(&mut self) -> Result<&mut [u8], FrameError>
Return a mutable pointer to the payload.
Does not include the checksum byte.
pub fn set_checksum(&mut self, value: u8) -> Result<(), FrameError>
Trait Implementations§
Auto Trait Implementations§
impl<T> RefUnwindSafe for Frame<T>where
T: RefUnwindSafe,
impl<T> Send for Frame<T>where
T: Send,
impl<T> Sync for Frame<T>where
T: Sync,
impl<T> Unpin for Frame<T>where
T: Unpin,
impl<T> UnwindSafe for Frame<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more