Skip to content

Commit 64692dc

Browse files
committed
pass bus_device object instead of bus, address, and cs.
1 parent ddfd14a commit 64692dc

File tree

3 files changed

+28
-20
lines changed

3 files changed

+28
-20
lines changed

adafruit_spa06_003.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
from micropython import const
3838

3939
try:
40-
import typing
40+
from typing import Union
4141

4242
from busio import I2C, SPI
4343
from digitalio import DigitalInOut
@@ -158,8 +158,7 @@ class SPA06_003:
158158
"""
159159
SPA06-003 temperature and pressure sensor breakout CircuitPython driver.
160160
161-
:param busio.I2C i2c: I2C bus
162-
:param int address: I2C address
161+
:param bus_device: Instance of I2CDevice or SPIDevice
163162
164163
.. _measurement-rate-options:
165164
@@ -388,29 +387,23 @@ class SPA06_003:
388387
24, SPA06_003_REG_PSR_B2, 0, register_width=3, lsb_first=False, signed=True
389388
)
390389

391-
def __init__(
392-
self,
393-
i2c: I2C = None,
394-
address: int = SPA06_003_DEFAULT_ADDR,
395-
spi: SPI = None,
396-
cs: DigitalInOut = None,
397-
):
398-
if spi is not None and cs is not None:
390+
def __init__(self, bus_device: Union[I2CDevice, SPIDevice]):
391+
if isinstance(bus_device, SPIDevice):
399392
try:
400-
self.spi_device = SPIDevice(spi, cs, baudrate=1000000, phase=1, polarity=1)
401-
self.register_accessor = SPIRegisterAccessor(self.spi_device)
393+
self.register_accessor = SPIRegisterAccessor(bus_device)
402394
except ValueError:
403395
raise ValueError(f"No SPI device found.")
404396

405-
elif i2c is not None:
397+
elif isinstance(bus_device, I2CDevice):
406398
try:
407-
i2c_device = I2CDevice(i2c, address)
408-
self.register_accessor = I2CRegisterAccessor(i2c_device)
399+
self.register_accessor = I2CRegisterAccessor(bus_device)
409400
except ValueError:
410401
raise ValueError(f"No I2C device found.")
402+
else:
403+
raise ValueError("bus_device must be an instance of I2CDevice or SPIDevice.")
411404

412405
if self.chip_id != 0x11:
413-
raise ValueError("SPA06_003_I2C device not found")
406+
raise ValueError("Error Reading Chip ID. Device not found.")
414407

415408
self.reset()
416409

@@ -530,3 +523,14 @@ def reset(self):
530523
"""Performs soft reset on the sensor."""
531524
self.soft_reset_cmd = SPA06_003_CMD_RESET
532525
time.sleep(0.01)
526+
527+
528+
class SPA06_003_I2C(SPA06_003):
529+
def __init__(self, i2c: I2C, address: int = SPA06_003_DEFAULT_ADDR):
530+
i2c_device = I2CDevice(i2c, address)
531+
print(
532+
"Warning: SPA06_003_I2C class is deprecated and will be removed in a future version. "
533+
"User code should be updated to initialize I2CDevice externally and pass it to "
534+
"SPA06_003 class constructor."
535+
)
536+
super().__init__(i2c_device)

examples/spa06_003_simpletest.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@
55
import time
66

77
import board
8+
from adafruit_bus_device.i2c_device import I2CDevice
89

9-
from adafruit_spa06_003 import SPA06_003
10+
from adafruit_spa06_003 import SPA06_003, SPA06_003_DEFAULT_ADDR
1011

1112
i2c = board.I2C()
12-
spa = SPA06_003(i2c)
13+
i2c_device = I2CDevice(i2c, SPA06_003_DEFAULT_ADDR)
14+
spa = SPA06_003(i2c_device)
1315

1416

1517
while True:

examples/spa06_003_spi_simpletest.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,16 @@
44
import time
55

66
import board
7+
from adafruit_bus_device.spi_device import SPIDevice
78
from digitalio import DigitalInOut
89

910
from adafruit_spa06_003 import SPA06_003
1011

1112
spi = board.SPI()
1213
cs = DigitalInOut(board.D10)
1314

14-
spa = SPA06_003(spi=spi, cs=cs)
15+
spi_device = SPIDevice(spi, cs)
16+
spa = SPA06_003(spi_device)
1517

1618

1719
while True:

0 commit comments

Comments
 (0)