Skip to content

Commit bdff8b0

Browse files
committed
Better error handling if I2C device is not found
1 parent c6d07c8 commit bdff8b0

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/modulino/modulino.py

+10-2
Original file line numberDiff line numberDiff line change
@@ -104,17 +104,25 @@ def __init__(self, i2c_bus=None, address=None, name=None):
104104
else:
105105
self.i2c_bus = i2c_bus
106106

107-
self.address = address
108107
self.name = name
108+
self.address = address
109109

110-
if self.address == None and len(self.default_addresses) > 0:
110+
if self.address == None:
111+
if len(self.default_addresses) == 0:
112+
raise RuntimeError(f"No default addresses defined for the {self.name} device.")
113+
111114
if self.convert_default_addresses:
112115
# Need to convert the 8-bit address to 7-bit
113116
actual_addresses = list(map(lambda addr: addr >> 1, self.default_addresses))
114117
self.address = self.discover(actual_addresses)
115118
else:
116119
self.address = self.discover(self.default_addresses)
117120

121+
if self.address == None:
122+
raise RuntimeError(f"Couldn't find the {self.name} device on the bus. Try resetting the board.")
123+
elif not self.connected:
124+
raise RuntimeError(f"Couldn't find a {self.name} device with address {hex(self.address)} on the bus. Try resetting the board.")
125+
118126
def discover(self, default_addresses):
119127
"""
120128
Tries to find the given modulino device in the device chain

0 commit comments

Comments
 (0)