i2cdev::core

Trait I2CTransfer

Source
pub trait I2CTransfer<'a> {
    type Error: Error;
    type Message: I2CMessage<'a>;

    // Required method
    fn transfer(
        &mut self,
        msgs: &'a mut [Self::Message],
    ) -> Result<u32, Self::Error>;
}
Expand description

Interface to an I2C Bus from an I2C Master

This is used when the client wants to interact directly with the bus without specifying an I2C slave address up-front, either because it needs to communicate with multiple addresses without creatings separate I2CDevice objects, or because it wants to make used of the I2C_RDWR ioctl which allows the client to send and transmit multiple sets I2C data in a single operation, potentially to different I2C slave addresses.

Typical implementations will store state with references to the bus in use. The trait is based on the Linux i2cdev interface.

Required Associated Types§

Source

type Error: Error

I2C transfer error type

Source

type Message: I2CMessage<'a>

I2C transfer message type

Required Methods§

Source

fn transfer( &mut self, msgs: &'a mut [Self::Message], ) -> Result<u32, Self::Error>

Performs multiple serially chained I2C read/write transactions. On success the return code is the number of successfully executed transactions

Implementors§