+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
"""Generic Linux SPI class using PureIO's SPI class"""
-import Adafruit_PureIO.spi as spi
+from Adafruit_PureIO import spi
from adafruit_blinka.agnostic import detector
def write(self, buf, start=0, end=None):
"""Write data from the buffer to SPI"""
- if not buf:
+ if buf is None or len(buf) < 1:
return
if end is None:
end = len(buf)
def readinto(self, buf, start=0, end=None, write_value=0):
"""Read data from SPI and into the buffer"""
- if not buf:
+ if buf is None or len(buf) < 1:
return
if end is None:
end = len(buf)
"""Perform a half-duplex write from buffer_out and then
read data into buffer_in
"""
- if not buffer_out or not buffer_in:
+ if buffer_out is None or buffer_in is None:
+ return
+ if len(buffer_out) < 1 or len(buffer_in) < 1:
return
if out_end is None:
out_end = len(buffer_out)
self._spi.bits_per_word = self.bits
data = self._spi.transfer(list(buffer_out[out_start : out_end + 1]))
for i in range((in_end - in_start)):
- buffer_in[i + in_start] = data[i + 1]
+ buffer_in[i + in_start] = data[i]
# self._spi.close()
except FileNotFoundError:
print("Could not open SPI device - check if SPI is enabled in kernel!")