diff --git a/gpiozero/pins/pi.py b/gpiozero/pins/pi.py index f2c02a8..071d959 100644 --- a/gpiozero/pins/pi.py +++ b/gpiozero/pins/pi.py @@ -238,11 +238,11 @@ class PiPin(Pin): self._when_changed = None self._number = number try: - factory.pi_info.physical_pin('GPIO%d' % self.number) + factory.pi_info.physical_pin(repr(self)) except PinNoPins: warnings.warn( PinNonPhysical( - 'no physical pins exist for GPIO%d' % self.number)) + 'no physical pins exist for %s' % repr(self))) @property def number(self): diff --git a/gpiozero/pins/rpigpio.py b/gpiozero/pins/rpigpio.py index 6a35727..300ac65 100644 --- a/gpiozero/pins/rpigpio.py +++ b/gpiozero/pins/rpigpio.py @@ -92,7 +92,7 @@ class RPiGPIOPin(LocalPiPin): def __init__(self, factory, number): super(RPiGPIOPin, self).__init__(factory, number) - self._pull = 'up' if self.factory.pi_info.pulled_up(self.address[-1]) else 'floating' + self._pull = 'up' if self.factory.pi_info.pulled_up(repr(self)) else 'floating' self._pwm = None self._frequency = None self._duty_cycle = None @@ -110,7 +110,7 @@ class RPiGPIOPin(LocalPiPin): GPIO.setup(self.number, GPIO.OUT, initial=state) def input_with_pull(self, pull): - if pull != 'up' and self.factory.pi_info.pulled_up(self.address[-1]): + if pull != 'up' and self.factory.pi_info.pulled_up(repr(self)): raise PinFixedPull('%r has a physical pull-up resistor' % self) try: GPIO.setup(self.number, GPIO.IN, self.GPIO_PULL_UPS[pull]) @@ -156,7 +156,7 @@ class RPiGPIOPin(LocalPiPin): def _set_pull(self, value): if self.function != 'input': raise PinFixedPull('cannot set pull on non-input pin %r' % self) - if value != 'up' and self.factory.pi_info.pulled_up(self.address[-1]): + if value != 'up' and self.factory.pi_info.pulled_up(repr(self)): raise PinFixedPull('%r has a physical pull-up resistor' % self) try: GPIO.setup(self.number, GPIO.IN, self.GPIO_PULL_UPS[value]) diff --git a/gpiozero/pins/rpio.py b/gpiozero/pins/rpio.py index c97c56d..ab9eecf 100644 --- a/gpiozero/pins/rpio.py +++ b/gpiozero/pins/rpio.py @@ -87,7 +87,7 @@ class RPIOPin(LocalPiPin): def __init__(self, factory, number): super(RPIOPin, self).__init__(factory, number) - self._pull = 'up' if self.factory.pi_info.pulled_up(self.address[-1]) else 'floating' + self._pull = 'up' if self.factory.pi_info.pulled_up(repr(self)) else 'floating' self._pwm = False self._duty_cycle = None self._bounce = None @@ -145,7 +145,7 @@ class RPIOPin(LocalPiPin): def _set_pull(self, value): if self.function != 'input': raise PinFixedPull('cannot set pull on non-input pin %r' % self) - if value != 'up' and self.factory.pi_info.pulled_up(self.address[-1]): + if value != 'up' and self.factory.pi_info.pulled_up(repr(self)): raise PinFixedPull('%r has a physical pull-up resistor' % self) try: RPIO.setup(self.number, RPIO.IN, self.GPIO_PULL_UPS[value])