Trait I2c

Source
pub trait I2c {
    // Required methods
    fn init(
        &mut self,
        dev: u32,
        _baud: u32,
        sda: i32,
        sck: i32,
    ) -> Result<i32, Error>;
    fn deinit(&mut self, handle: i32) -> Result<(), Error>;
    fn write(
        &mut self,
        handle: i32,
        addr: u16,
        data: &[u8],
    ) -> Result<(), Error>;
    fn read(
        &mut self,
        handle: i32,
        addr: u16,
        buff: &mut [u8],
    ) -> Result<(), Error>;
    fn write_read(
        &mut self,
        handle: i32,
        addr: u16,
        data: &[u8],
        buff: &mut [u8],
    ) -> Result<(), Error>;
}
Expand description

I2C context abstraction.

This hides runtime implementation details to simplify implementing I2C contexts. Hopefully one day generation is improved so we don’t need this any more

Required Methods§

Source

fn init( &mut self, dev: u32, _baud: u32, sda: i32, sck: i32, ) -> Result<i32, Error>

Source

fn deinit(&mut self, handle: i32) -> Result<(), Error>

Source

fn write(&mut self, handle: i32, addr: u16, data: &[u8]) -> Result<(), Error>

Source

fn read(&mut self, handle: i32, addr: u16, buff: &mut [u8]) -> Result<(), Error>

Source

fn write_read( &mut self, handle: i32, addr: u16, data: &[u8], buff: &mut [u8], ) -> Result<(), Error>

Implementors§