Skip to main content

RxFifoMode

Struct RxFifoMode 

Source
pub struct RxFifoMode(/* private fields */);
Expand description

Mode of operation for the RX FIFO

Implementations§

Source§

impl RxFifoMode

Source

pub fn blocking() -> Self

Blocking mode

When the RX FIFO is full, incoming messages are dropped until at least one message has been read out from the FIFO.

Source

pub unsafe fn overwrite() -> Self

Overwriting mode

When the RX FIFO is full, the oldest messsage will be deleted and a new message will take its place.

§Safety

For the RX FIFO running in this mode, MCAN does NOT provide any synchronization primitives that user can rely on in order to guarantee integrity of the data being received.

General guideline from the datasheet suggests that user should never read the oldest element in queue (as there is a risk that the message is currently being overwritten) and index should be offsetted by 1 or more (counting from the oldest message) depending on the speed of the CPU.

Thus, it is up to the application developer to provide such an index offset so read out messages are correct.

Trait Implementations§

Source§

impl Clone for RxFifoMode

Source§

fn clone(&self) -> RxFifoMode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for RxFifoMode

Source§

impl Default for RxFifoMode

Source§

fn default() -> RxFifoMode

Returns the “default value” for a type. Read more
Source§

impl From<RxFifoMode> for bool

Source§

fn from(val: RxFifoMode) -> Self

Converts to this type from the input type.
Source§

impl From<RxFifoMode> for RxFifoModeVariant

Source§

fn from(val: RxFifoMode) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.