Raise warning when spidev missing for hardware SPI

This commit is contained in:
Dave Jones
2016-06-12 13:31:13 +01:00
parent 15b6ea25b0
commit 3ac838f85f

View File

@@ -396,19 +396,25 @@ def SPI(**spi_args):
raise SPIBadArgs( raise SPIBadArgs(
'unrecognized keyword argument %s' % kwargs.popitem()[0]) 'unrecognized keyword argument %s' % kwargs.popitem()[0])
if all(( if all((
SpiDev is not None,
spi_args['clock_pin'] == 11, spi_args['clock_pin'] == 11,
spi_args['mosi_pin'] == 10, spi_args['mosi_pin'] == 10,
spi_args['miso_pin'] == 9, spi_args['miso_pin'] == 9,
spi_args['select_pin'] in (7, 8), spi_args['select_pin'] in (7, 8),
)): )):
try: if SpiDev is None:
if shared: warnings.warn(
return SharedSPIHardwareInterface( SPISoftwareFallback(
port=0, device={8: 0, 7: 1}[spi_args['select_pin']]) 'failed to import spidev, falling back to software SPI'))
else: else:
return SPIHardwareInterface( try:
port=0, device={8: 0, 7: 1}[spi_args['select_pin']]) hardware_spi_args = {
port: 0,
device: {8: 0, 7: 1}[spi_args['select_pin']],
}
if shared:
return SharedSPIHardwareInterface(**hardware_spi_args)
else:
return SPIHardwareInterface(**hardware_spi_args)
except Exception as e: except Exception as e:
warnings.warn( warnings.warn(
SPISoftwareFallback( SPISoftwareFallback(