From eafad7ccdbb527a30a959e4c2142886a24219ce3 Mon Sep 17 00:00:00 2001 From: Konstantin Lampalzer Date: Thu, 14 Oct 2021 13:36:03 +0200 Subject: [PATCH] Add local development to SPI --- compLib/Spi.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/compLib/Spi.py b/compLib/Spi.py index a3b2c14..5f7d964 100644 --- a/compLib/Spi.py +++ b/compLib/Spi.py @@ -1,4 +1,4 @@ -import spidev +import importlib from threading import Thread, Lock from enum import IntEnum import time @@ -12,13 +12,17 @@ SPI_SPEED = 1000000 SPI_BUFFER_SIZE = 32 SPI_HEALTH = True -spi = spidev.SpiDev() -spi.open(SPI_BUS, SPI_DEVICE) -spi.max_speed_hz = SPI_SPEED -spi.mode = 0 -spi.bits_per_word = 8 +# For development purposes +spi_found = importlib.util.find_spec("spidev") is not None +spi = None +if spi_found: + spi = spidev.SpiDev() + spi.open(SPI_BUS, SPI_DEVICE) + spi.max_speed_hz = SPI_SPEED + spi.mode = 0 + spi.bits_per_word = 8 -spi_mutex = Lock() + spi_mutex = Lock() class Register(IntEnum): IDENTIFICATION_MODEL_ID = 1, @@ -106,6 +110,9 @@ class Spi(object): @staticmethod def transfer(tx_buffer: list): + if not spi_found: + return [] * SPI_BUFFER_SIZE + write_reg = tx_buffer[1] spi.xfer(tx_buffer)