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