From 70235f4b62fda537cb001c6c5ee4c8e7f7573428 Mon Sep 17 00:00:00 2001 From: Davit Babayan Date: Tue, 21 Jan 2025 18:48:18 -0800 Subject: [PATCH] add address validation to initialization --- adafruit_tca9548a.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/adafruit_tca9548a.py b/adafruit_tca9548a.py index c766176..ed23649 100644 --- a/adafruit_tca9548a.py +++ b/adafruit_tca9548a.py @@ -103,6 +103,18 @@ class TCA9548A: """Class which provides interface to TCA9548A I2C multiplexer.""" def __init__(self, i2c: I2C, address: int = _DEFAULT_ADDRESS) -> None: + tries = 0 + while not i2c.try_lock(): + if (tries >= 200): + raise ValueError("Unable to lock I2C bus.") + tries += 1 + time.sleep(0) + + if address not in i2c.scan(): + i2c.unlock() + raise ValueError(f"No TCA9548A detected at {hex(address)}.") + i2c.unlock() + self.i2c = i2c self.address = address self.channels = [None] * 8