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._port = port
 | 
				
			||||||
        self._device = device
 | 
					        self._device = device
 | 
				
			||||||
        self._factory = proxy(factory)
 | 
					        self._factory = proxy(factory)
 | 
				
			||||||
 | 
					        self._handle = None
 | 
				
			||||||
        super(PiGPIOHardwareSPI, self).__init__()
 | 
					        super(PiGPIOHardwareSPI, self).__init__()
 | 
				
			||||||
        self._reserve_pins(*(
 | 
					        self._reserve_pins(*(
 | 
				
			||||||
            factory.address + ('GPIO%d' % pin,)
 | 
					            factory.address + ('GPIO%d' % pin,)
 | 
				
			||||||
@@ -305,7 +306,7 @@ class PiGPIOHardwareSPI(SPI, Device):
 | 
				
			|||||||
        self._spi_flags = 8 << 16
 | 
					        self._spi_flags = 8 << 16
 | 
				
			||||||
        self._baud = 500000
 | 
					        self._baud = 500000
 | 
				
			||||||
        self._handle = self._factory.connection.spi_open(
 | 
					        self._handle = self._factory.connection.spi_open(
 | 
				
			||||||
            device, self._baud, self._spi_flags())
 | 
					            device, self._baud, self._spi_flags)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _conflicts_with(self, other):
 | 
					    def _conflicts_with(self, other):
 | 
				
			||||||
        return not (
 | 
					        return not (
 | 
				
			||||||
@@ -413,7 +414,7 @@ class PiGPIOSoftwareSPI(SPI, Device):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    def _conflicts_with(self, other):
 | 
					    def _conflicts_with(self, other):
 | 
				
			||||||
        return not (
 | 
					        return not (
 | 
				
			||||||
            isinstance(other, PiGPIOHardwareSPI) and
 | 
					            isinstance(other, PiGPIOSoftwareSPI) and
 | 
				
			||||||
            (self._select_pin) != (other._select_pin)
 | 
					            (self._select_pin) != (other._select_pin)
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,6 +27,8 @@ class SPIDevice(Device):
 | 
				
			|||||||
    specified with the constructor.
 | 
					    specified with the constructor.
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    def __init__(self, **spi_args):
 | 
					    def __init__(self, **spi_args):
 | 
				
			||||||
 | 
					        self._spi = None
 | 
				
			||||||
 | 
					        super(SPIDevice, self).__init__()
 | 
				
			||||||
        self._spi = self._pin_factory.spi(**spi_args)
 | 
					        self._spi = self._pin_factory.spi(**spi_args)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def close(self):
 | 
					    def close(self):
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -43,11 +43,6 @@ INPUT_PIN = int(os.getenv('GPIOZERO_TEST_INPUT_PIN', '27'))
 | 
				
			|||||||
    scope='module',
 | 
					    scope='module',
 | 
				
			||||||
    params=pkg_resources.get_distribution('gpiozero').get_entry_map('gpiozero_pin_factories').keys())
 | 
					    params=pkg_resources.get_distribution('gpiozero').get_entry_map('gpiozero_pin_factories').keys())
 | 
				
			||||||
def pin_factory(request):
 | 
					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:
 | 
					    try:
 | 
				
			||||||
        factory = pkg_resources.load_entry_point('gpiozero', 'gpiozero_pin_factories', request.param)()
 | 
					        factory = pkg_resources.load_entry_point('gpiozero', 'gpiozero_pin_factories', request.param)()
 | 
				
			||||||
    except Exception as e:
 | 
					    except Exception as e:
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user