Fix pigpiod SPI conflicts

Wrong classname in the software implementation and for some reason I'd
reverted a change on spi_flags somewhere... Also removed the clause
skipping remote pigpiod tests

Tested this commit with hardware and software SPI remotely - working
nicely
This commit is contained in:
Dave Jones
2016-11-01 10:03:04 +00:00
parent 4944849a30
commit 5487124f74
3 changed files with 5 additions and 7 deletions

View File

@@ -297,6 +297,7 @@ class PiGPIOHardwareSPI(SPI, Device):
self._port = port
self._device = device
self._factory = proxy(factory)
self._handle = None
super(PiGPIOHardwareSPI, self).__init__()
self._reserve_pins(*(
factory.address + ('GPIO%d' % pin,)
@@ -305,7 +306,7 @@ class PiGPIOHardwareSPI(SPI, Device):
self._spi_flags = 8 << 16
self._baud = 500000
self._handle = self._factory.connection.spi_open(
device, self._baud, self._spi_flags())
device, self._baud, self._spi_flags)
def _conflicts_with(self, other):
return not (
@@ -413,7 +414,7 @@ class PiGPIOSoftwareSPI(SPI, Device):
def _conflicts_with(self, other):
return not (
isinstance(other, PiGPIOHardwareSPI) and
isinstance(other, PiGPIOSoftwareSPI) and
(self._select_pin) != (other._select_pin)
)

View File

@@ -27,6 +27,8 @@ class SPIDevice(Device):
specified with the constructor.
"""
def __init__(self, **spi_args):
self._spi = None
super(SPIDevice, self).__init__()
self._spi = self._pin_factory.spi(**spi_args)
def close(self):

View File

@@ -43,11 +43,6 @@ INPUT_PIN = int(os.getenv('GPIOZERO_TEST_INPUT_PIN', '27'))
scope='module',
params=pkg_resources.get_distribution('gpiozero').get_entry_map('gpiozero_pin_factories').keys())
def pin_factory(request):
# Constructs each pin factory in turn with some extra logic to ensure
# we skip tests if pigpio is set for remote operation
if request.param == 'pigpio':
if os.getenv('PIGPIO_ADDR', 'localhost') != 'localhost':
pytest.skip("skipped factory pigpio: remote host in PIGPIO_ADDR")
try:
factory = pkg_resources.load_entry_point('gpiozero', 'gpiozero_pin_factories', request.param)()
except Exception as e: