abschlussarbeit/lib/python3.11/site-packages/adafruit_blinka/microcontroller/mcp2221/i2c.py

53 lines
1.5 KiB
Python

# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
#
# SPDX-License-Identifier: MIT
"""I2C Class for MCP2221"""
from .mcp2221 import mcp2221
class I2C:
"""Custom I2C Class for MCP2221"""
def __init__(self, *, frequency=100000):
self._mcp2221 = mcp2221
self._mcp2221._i2c_configure(frequency)
def scan(self):
"""Perform an I2C Device Scan"""
return self._mcp2221.i2c_scan()
# pylint: disable=unused-argument
def writeto(self, address, buffer, *, start=0, end=None, stop=True):
"""Write data from the buffer to an address"""
self._mcp2221.i2c_writeto(address, buffer, start=start, end=end)
def readfrom_into(self, address, buffer, *, start=0, end=None, stop=True):
"""Read data from an address and into the buffer"""
self._mcp2221.i2c_readfrom_into(address, buffer, start=start, end=end)
def writeto_then_readfrom(
self,
address,
buffer_out,
buffer_in,
*,
out_start=0,
out_end=None,
in_start=0,
in_end=None,
stop=False,
):
"""Write data from buffer_out to an address and then
read data from an address and into buffer_in
"""
self._mcp2221.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