+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Generic Linux I2C class using PureIO's smbus class"""
-import Adafruit_PureIO.smbus as smbus
+
+import warnings
+from Adafruit_PureIO import smbus
class I2C:
- """I2C class"""
+ """
+ I2C class
+
+ Baudrate has no effect on Linux systems. The argument is only there for compatibility.
+ """
MASTER = 0
SLAVE = 1
_mode = None
_i2c_bus = None
+ # pylint: disable=unused-argument
def __init__(self, bus_num, mode=MASTER, baudrate=None):
if mode != self.MASTER:
raise NotImplementedError("Only I2C Master supported!")
_mode = self.MASTER
- # if baudrate != None:
- # print("I2C frequency is not settable in python, ignoring!")
+ if baudrate is not None:
+ warnings.warn(
+ "I2C frequency is not settable in python, ignoring!", RuntimeWarning
+ )
try:
self._i2c_bus = smbus.SMBus(bus_num)
except FileNotFoundError:
raise RuntimeError(
"I2C Bus #%d not found, check if enabled in config!" % bus_num
- )
+ ) from RuntimeError
+
+ # pylint: enable=unused-argument
def scan(self):
"""Try to read a byte from each address, if you get an OSError
out_end=None,
in_start=0,
in_end=None,
- stop=False
+ stop=False,
):
"""Write data from buffer_out to an address and then
read data from an address and into buffer_in