mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 17:50:37 +00:00
Make TrafficLights extend LEDBoard
This commit is contained in:
@@ -5,15 +5,9 @@ from .devices import GPIODeviceError
|
|||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
|
|
||||||
class TrafficLights(object):
|
class LEDBoard(object):
|
||||||
def __init__(self, red=None, amber=None, green=None):
|
def __init__(self, leds):
|
||||||
if not all([red, amber, green]):
|
self._leds = tuple(LED(led) for led in leds)
|
||||||
raise GPIODeviceError('Red, Amber and Green pins must be provided')
|
|
||||||
|
|
||||||
self.red = LED(red)
|
|
||||||
self.amber = LED(amber)
|
|
||||||
self.green = LED(green)
|
|
||||||
self._leds = (self.red, self.amber, self.green)
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def leds(self):
|
def leds(self):
|
||||||
@@ -44,6 +38,23 @@ class TrafficLights(object):
|
|||||||
sleep(off_time)
|
sleep(off_time)
|
||||||
|
|
||||||
|
|
||||||
|
class PiLiter(LEDBoard):
|
||||||
|
def __init__(self):
|
||||||
|
leds = (4, 17, 27, 18, 22, 23, 24, 25)
|
||||||
|
super(PiLiter, self).__init__(leds)
|
||||||
|
|
||||||
|
|
||||||
|
class TrafficLights(LEDBoard):
|
||||||
|
def __init__(self, red=None, amber=None, green=None):
|
||||||
|
if not all([red, amber, green]):
|
||||||
|
raise GPIODeviceError('Red, Amber and Green pins must be provided')
|
||||||
|
|
||||||
|
self.red = LED(red)
|
||||||
|
self.amber = LED(amber)
|
||||||
|
self.green = LED(green)
|
||||||
|
self._leds = (self.red, self.amber, self.green)
|
||||||
|
|
||||||
|
|
||||||
class PiTraffic(TrafficLights):
|
class PiTraffic(TrafficLights):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
red, amber, green = (9, 10, 11)
|
red, amber, green = (9, 10, 11)
|
||||||
@@ -99,42 +110,3 @@ class TrafficHat(FishDish):
|
|||||||
self.buzzer = Buzzer(5)
|
self.buzzer = Buzzer(5)
|
||||||
self.button = Button(25)
|
self.button = Button(25)
|
||||||
self._all = self._leds + (self.buzzer,)
|
self._all = self._leds + (self.buzzer,)
|
||||||
|
|
||||||
|
|
||||||
class LEDBoard(object):
|
|
||||||
def __init__(self, leds):
|
|
||||||
self._leds = tuple(LED(led) for led in leds)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def leds(self):
|
|
||||||
return self._leds
|
|
||||||
|
|
||||||
def on(self):
|
|
||||||
for led in self._leds:
|
|
||||||
led.on()
|
|
||||||
|
|
||||||
def off(self):
|
|
||||||
for led in self._leds:
|
|
||||||
led.off()
|
|
||||||
|
|
||||||
def toggle(self):
|
|
||||||
for led in self._leds:
|
|
||||||
led.toggle()
|
|
||||||
|
|
||||||
def blink(self, on_time=1, off_time=1):
|
|
||||||
for led in self._leds:
|
|
||||||
led.blink(on_time, off_time)
|
|
||||||
|
|
||||||
def flash(self, on_time=1, off_time=1, n=1):
|
|
||||||
for i in range(n):
|
|
||||||
self.on()
|
|
||||||
sleep(on_time)
|
|
||||||
self.off()
|
|
||||||
if i+1 < n: # don't sleep on final iteration
|
|
||||||
sleep(off_time)
|
|
||||||
|
|
||||||
|
|
||||||
class PiLiter(LEDBoard):
|
|
||||||
def __init__(self):
|
|
||||||
leds = (4, 17, 27, 18, 22, 23, 24, 25)
|
|
||||||
super(PiLiter, self).__init__(leds)
|
|
||||||
|
|||||||
Reference in New Issue
Block a user