mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
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:
@@ -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)
|
||||
)
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user