adding software spi and spi hw/sw autodetection
This commit is contained in:
+22
-1
@@ -7,6 +7,7 @@ import config
|
||||
import os
|
||||
import digitalio
|
||||
import busio
|
||||
import bitbangio
|
||||
import statistics
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
@@ -117,9 +118,29 @@ class TempSensorReal(TempSensor):
|
||||
TempSensor.__init__(self)
|
||||
self.sleeptime = self.time_step / float(config.temperature_average_samples)
|
||||
self.temptracker = TempTracker()
|
||||
self.spi = busio.SPI(config.spi_sclk, config.spi_mosi, config.spi_miso)
|
||||
self.spi_setup()
|
||||
self.cs = digitalio.DigitalInOut(config.spi_cs)
|
||||
|
||||
def hw_spi(self):
|
||||
import board
|
||||
if(hasattr(board,'SCLK') and
|
||||
hasattr(board,'MOSI') and
|
||||
hasattr(board,'MISO')):
|
||||
if(board.SCLK == config.spi_sclk and
|
||||
board.MOSI == config.spi_mosi and
|
||||
board.MISO == config.spi_miso):
|
||||
return board.SPI();
|
||||
return None
|
||||
|
||||
def spi_setup(self):
|
||||
self.spi = self.hw_spi()
|
||||
if self.spi is None:
|
||||
self.spi = bitbangio.SPI(config.spi_sclk, config.spi_mosi, config.spi_miso)
|
||||
log.info("Software SPI selected for reading thermocouple")
|
||||
else:
|
||||
log.info("Hardware SPI selected for reading thermocouple")
|
||||
|
||||
|
||||
def get_temperature(self):
|
||||
'''read temp from tc and convert if needed'''
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user