Struct i2c_linux::I2c
[−]
[src]
pub struct I2c<I> { /* fields omitted */ }
A safe wrapper around an I2C device.
Methods
impl I2c<File>
[src]
impl<I> I2c<I>
[src]
pub fn new(device: I) -> Self
[src]
Creates a new I2C handle with the given file descriptor
pub fn into_inner(self) -> I
[src]
Consumes the I2C handle to return the inner file descriptor.
ⓘImportant traits for &'a mut Wpub fn inner_ref(&self) -> &I
[src]
Borrows the inner file descriptor.
ⓘImportant traits for &'a mut Wpub fn inner_mut(&mut self) -> &mut I
[src]
Mutably borrows the inner file descriptor.
impl<I: AsRawFd> I2c<I>
[src]
pub fn i2c_set_retries(&self, value: usize) -> Result<()>
[src]
Sets the number of times to retry communication before failing.
pub fn i2c_set_timeout(&self, duration: Duration) -> Result<()>
[src]
Sets a timeout for I2C operations
pub fn smbus_set_slave_address(
&mut self,
address: u16,
tenbit: bool
) -> Result<()>
[src]
&mut self,
address: u16,
tenbit: bool
) -> Result<()>
Set the slave address to communicate with.
pub fn smbus_set_pec(&self, pec: bool) -> Result<()>
[src]
Enable or disable SMBus Packet Error Checking.
pub fn i2c_functionality(&self) -> Result<Functionality>
[src]
Retrieve the capabilities of the I2C device. These should be checked before attempting to use certain SMBus commands or I2C flags.
pub fn i2c_transfer_flags(&self) -> Result<(ReadFlags, WriteFlags)>
[src]
i2c_transfer
capabilities of the I2C device. These should be checked
before attempting to use any of the protocol mangling flags.
pub fn i2c_transfer(&mut self, messages: &mut [Message]) -> Result<()>
[src]
Executes a queue of I2C transfers, separated by repeat START conditions. Data buffers are truncated to the actual read length on completion.
See the I2C_RDWR
ioctl for more information.
pub fn smbus_write_quick(&mut self, value: ReadWrite) -> Result<()>
[src]
Sends a single bit to the device, in the place of the Rd/Wr address bit.
pub fn smbus_read_byte(&mut self) -> Result<u8>
[src]
Reads a single byte from a device without specifying a register.
Some devices are so simple that this interface is enough; for others, it is a shorthand if you want to read the same register as in the previous SMBus command.
pub fn smbus_write_byte(&mut self, value: u8) -> Result<()>
[src]
Sends a single byte to a device.
pub fn smbus_read_byte_data(&mut self, command: u8) -> Result<u8>
[src]
Reads a single byte from a device from the designated register.
pub fn smbus_write_byte_data(&mut self, command: u8, value: u8) -> Result<()>
[src]
Writes a single byte to a device to the designated register.
pub fn smbus_read_word_data(&mut self, command: u8) -> Result<u16>
[src]
Reads a 16-bit word from the device register.
pub fn smbus_write_word_data(&mut self, command: u8, value: u16) -> Result<()>
[src]
Writes a 16-bit word to the device register.
pub fn smbus_process_call(&mut self, command: u8, value: u16) -> Result<u16>
[src]
Selects a device register, sends a 16-bit word to it, and read 16-bits of data in return.
pub fn smbus_read_block_data(
&mut self,
command: u8,
value: &mut [u8]
) -> Result<usize>
[src]
&mut self,
command: u8,
value: &mut [u8]
) -> Result<usize>
Read up to 32 bytes from the designated device register.
Returns the amount of data read.
pub fn smbus_write_block_data(
&mut self,
command: u8,
value: &[u8]
) -> Result<()>
[src]
&mut self,
command: u8,
value: &[u8]
) -> Result<()>
Write up to 32 bytes to the designated device register.
pub fn smbus_block_process_call(
&mut self,
command: u8,
write: &[u8],
read: &mut [u8]
) -> Result<usize>
[src]
&mut self,
command: u8,
write: &[u8],
read: &mut [u8]
) -> Result<usize>
Sends up to 31 bytes of data to the designated device register, and reads up to 31 bytes in return.
This was introduced in SMBus 2.0
pub fn i2c_read_block_data(
&mut self,
command: u8,
value: &mut [u8]
) -> Result<usize>
[src]
&mut self,
command: u8,
value: &mut [u8]
) -> Result<usize>
Reads a block of bytes from the designated device register.
Unlike smbus_read_block_data this does not receive a data length. This
is limited to 32 bytes due to the use of the Linux SMBus interface. Use
i2c_transfer()
if more data is needed. write()
+read()
may also be
an option, though will produce an I2C STOP condition between the
transfers, which may be undesirable.
pub fn i2c_write_block_data(&mut self, command: u8, value: &[u8]) -> Result<()>
[src]
Writes a block of bytes from the designated device register.
Unlike smbus_write_block_data this does not transfer the data length.
This is limited to 32 bytes due to the use of the Linux SMBus interface.
Use i2c_transfer()
or write()
instead if more data is needed.
Trait Implementations
impl<I: AsRawFd> AsRawFd for I2c<I>
[src]
impl<I: IntoRawFd> IntoRawFd for I2c<I>
[src]
fn into_raw_fd(self) -> RawFd
[src]
Consumes this object, returning the raw underlying file descriptor. Read more
impl FromRawFd for I2c<File>
[src]
unsafe fn from_raw_fd(fd: RawFd) -> Self
[src]
Constructs a new instance of Self
from the given raw file descriptor. Read more
impl<I: Read> Read for I2c<I>
[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more
unsafe fn initializer(&self) -> Initializer
[src]
read_initializer
)Determines if this Read
er can work with buffers of uninitialized memory. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, appending them to buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
Read the exact number of bytes required to fill buf
. Read more
ⓘImportant traits for &'a mut Wfn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Read
. Read more
ⓘImportant traits for Bytes<R>fn bytes(self) -> Bytes<Self>
1.0.0[src]
Transforms this Read
instance to an [Iterator
] over its bytes. Read more
ⓘImportant traits for Chars<R>fn chars(self) -> Chars<Self>
[src]
🔬 This is a nightly-only experimental API. (io
)
the semantics of a partial read/write of where errors happen is currently unclear and may change
Transforms this Read
instance to an [Iterator
] over [char
]s. Read more
ⓘImportant traits for Chain<T, U>fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,
Creates an adaptor which will chain this stream with another. Read more
ⓘImportant traits for Take<T>fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
Creates an adaptor which will read at most limit
bytes from it. Read more
impl<I: Write> Write for I2c<I>
[src]
fn write(&mut self, buf: &[u8]) -> Result<usize>
[src]
Write a buffer into this object, returning how many bytes were written. Read more
fn flush(&mut self) -> Result<()>
[src]
Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
1.0.0[src]
Attempts to write an entire buffer into this write. Read more
fn write_fmt(&mut self, fmt: Arguments) -> Result<(), Error>
1.0.0[src]
Writes a formatted string into this writer, returning any error encountered. Read more
ⓘImportant traits for &'a mut Wfn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Write
. Read more