"""Perform an I2C Device Scan"""
return self._i2c.scan()
- # pylint: disable=unused-argument
def writeto(self, address, buffer, *, stop=True):
"Write data to the address from the buffer"
- return self._i2c.writeto(address, buffer)
+ return self._i2c.writeto(address, buffer, stop)
def readfrom_into(self, address, buffer, *, stop=True):
"""Read data from an address and into the buffer"""
- return self._i2c.readfrom_into(address, buffer)
+ return self._i2c.readfrom_into(address, buffer, stop)
def writeto_then_readfrom(
self,
"""Write data from buffer_out to an address and then
read data from an address and into buffer_in
"""
- self._i2c.writeto_then_readfrom(
- address,
- buffer_out,
- buffer_in,
- out_start=out_start,
- out_end=out_end,
- in_start=in_start,
- in_end=in_end,
- )
-
- # pylint: enable=unused-argument
+ if out_end:
+ self.writeto(address, buffer_out[out_start:out_end], stop=stop)
+ else:
+ self.writeto(address, buffer_out[out_start:], stop=stop)
+ read_buffer = buffer_in
+ self.readfrom_into(address, read_buffer, stop=stop)
+ if in_end:
+ buffer_in[in_start:in_end] = read_buffer[in_start:in_end]
+ else:
+ buffer_in[in_start:] = read_buffer[in_start:]