pub trait Can {
    type Frame: Frame;
    type Error: Error;

    fn transmit(
        &mut self,
        frame: &Self::Frame
    ) -> Result<Option<Self::Frame>, Self::Error>; fn receive(&mut self) -> Result<Self::Frame, Self::Error>; }
Expand description

A CAN interface that is able to transmit and receive frames.

Required Associated Types

Associated frame type.

Associated error type.

Required Methods

Puts a frame in the transmit buffer to be sent on the bus.

If the transmit buffer is full, this function will try to replace a pending lower priority frame and return the frame that was replaced. Returns Err(WouldBlock) if the transmit buffer is full and no frame can be replaced.

Notes for implementers
  • Frames of equal identifier shall be transmited in FIFO fashion when more than one transmit buffer is available.
  • When replacing pending frames make sure the frame is not in the process of being send to the bus.

Returns a received frame if available.