X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/blobdiff_plain/18bc57adc610625742d7be9bc3422d02615d6d4f..de652f72b1884328ee22ec36deaa6320addd32e7:/src/busio.py diff --git a/src/busio.py b/src/busio.py index 1e636a0..d63c815 100755 --- a/src/busio.py +++ b/src/busio.py @@ -7,12 +7,15 @@ See `CircuitPython:busio` in CircuitPython for more details. * Author(s): cefn """ -import threading +try: + import threading +except ImportError: + threading = None -from adafruit_blinka import Enum, Lockable, agnostic -from adafruit_blinka.agnostic import board_id, detector import adafruit_platformdetect.constants.boards as ap_board import adafruit_platformdetect.constants.chips as ap_chip +from adafruit_blinka import Enum, Lockable, agnostic +from adafruit_blinka.agnostic import board_id, detector # pylint: disable=import-outside-toplevel,too-many-branches,too-many-statements # pylint: disable=too-many-arguments,too-many-function-args @@ -69,8 +72,8 @@ class I2C(Lockable): (scl, sda), i2cPorts ) ) - - self._lock = threading.RLock() + if threading is not None: + self._lock = threading.RLock() def deinit(self): """Deinitialization""" @@ -80,11 +83,13 @@ class I2C(Lockable): pass def __enter__(self): - self._lock.acquire() + if threading is not None: + self._lock.acquire() return self def __exit__(self, exc_type, exc_value, traceback): - self._lock.release() + if threading is not None: + self._lock.release() self.deinit() def scan(self): @@ -288,7 +293,7 @@ class SPI(Lockable): except AttributeError: raise NotImplementedError( "Frequency attribute not implemented for this platform" - ) + ) from AttributeError def write(self, buf, start=0, end=None): """Write to the SPI device""" @@ -407,3 +412,36 @@ class UART(Lockable): def write(self, buf): """Write to the UART from a buffer""" return self._uart.write(buf) + + +class OneWire: + """ + Stub class for OneWire, which is currently not implemented + """ + + def __init__(self, pin): + raise NotImplementedError("OneWire has not been implemented") + + def deinit(self): + """ + Deinitialize the OneWire bus and release any hardware resources for reuse. + """ + raise NotImplementedError("OneWire has not been implemented") + + def reset(self): + """ + Reset the OneWire bus and read presence + """ + raise NotImplementedError("OneWire has not been implemented") + + def read_bit(self): + """ + Read in a bit + """ + raise NotImplementedError("OneWire has not been implemented") + + def write_bit(self, value): + """ + Write out a bit based on value. + """ + raise NotImplementedError("OneWire has not been implemented")