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 | ||||
|  | ||||
|  | ||||
| class TrafficLights(object): | ||||
|     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 LEDBoard(object): | ||||
|     def __init__(self, leds): | ||||
|         self._leds = tuple(LED(led) for led in leds) | ||||
|  | ||||
|     @property | ||||
|     def leds(self): | ||||
| @@ -44,6 +38,23 @@ class TrafficLights(object): | ||||
|                 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): | ||||
|     def __init__(self): | ||||
|         red, amber, green = (9, 10, 11) | ||||
| @@ -99,42 +110,3 @@ class TrafficHat(FishDish): | ||||
|         self.buzzer = Buzzer(5) | ||||
|         self.button = Button(25) | ||||
|         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