embedded_hal::can

Trait Frame

source
pub trait Frame: Sized {
    // Required methods
    fn new(id: impl Into<Id>, data: &[u8]) -> Option<Self>;
    fn new_remote(id: impl Into<Id>, dlc: usize) -> Option<Self>;
    fn is_extended(&self) -> bool;
    fn is_remote_frame(&self) -> bool;
    fn id(&self) -> Id;
    fn dlc(&self) -> usize;
    fn data(&self) -> &[u8];

    // Provided methods
    fn is_standard(&self) -> bool { ... }
    fn is_data_frame(&self) -> bool { ... }
}
Expand description

A CAN2.0 Frame

Required Methods§

source

fn new(id: impl Into<Id>, data: &[u8]) -> Option<Self>

Creates a new frame.

This will return None if the data slice is too long.

source

fn new_remote(id: impl Into<Id>, dlc: usize) -> Option<Self>

Creates a new remote frame (RTR bit set).

This will return None if the data length code (DLC) is not valid.

source

fn is_extended(&self) -> bool

Returns true if this frame is a extended frame.

source

fn is_remote_frame(&self) -> bool

Returns true if this frame is a remote frame.

source

fn id(&self) -> Id

Returns the frame identifier.

source

fn dlc(&self) -> usize

Returns the data length code (DLC) which is in the range 0..8.

For data frames the DLC value always matches the length of the data. Remote frames do not carry any data, yet the DLC can be greater than 0.

source

fn data(&self) -> &[u8]

Returns the frame data (0..8 bytes in length).

Provided Methods§

source

fn is_standard(&self) -> bool

Returns true if this frame is a standard frame.

source

fn is_data_frame(&self) -> bool

Returns true if this frame is a data frame.

Object Safety§

This trait is not object safe.

Implementors§