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
Required Methods
sourcefn transmit(
    &mut self,
    frame: &Self::Frame
) -> Result<Option<Self::Frame>, Self::Error>
 
fn transmit(
    &mut self,
    frame: &Self::Frame
) -> Result<Option<Self::Frame>, Self::Error>
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.