Continued refactoring
This commit is contained in:
49
events.py
Normal file
49
events.py
Normal file
@@ -0,0 +1,49 @@
|
||||
#!/usr/bin/env python
|
||||
# Created by br@re-web.eu, 2015
|
||||
|
||||
try:
|
||||
import RPi.GPIO as GPIO
|
||||
gpio_enabled = True
|
||||
except ImportError:
|
||||
gpio_enabled = False
|
||||
|
||||
|
||||
class Event:
|
||||
def __init__(self, type, value):
|
||||
"""type 0: quit
|
||||
1: keystroke
|
||||
2: mouseclick
|
||||
3: gpio
|
||||
"""
|
||||
self.type = type
|
||||
self.value = value
|
||||
|
||||
class Rpi_GPIO:
|
||||
def __init__(self, handle_function, input_channels = [], output_channels = []):
|
||||
if gpio_enabled:
|
||||
# Display initial information
|
||||
print("Your Raspberry Pi is board revision " + str(GPIO.RPI_INFO['P1_REVISION']))
|
||||
print("RPi.GPIO version is " + str(GPIO.VERSION))
|
||||
|
||||
# Choose BCM numbering system
|
||||
GPIO.setmode(GPIO.BCM)
|
||||
|
||||
# Setup the input channels
|
||||
for input_channel in input_channels:
|
||||
GPIO.setup(input_channel, GPIO.IN, pull_up_down=GPIO.PUD_UP)
|
||||
GPIO.add_event_detect(input_channel, GPIO.RISING, callback=handle_function, bouncetime=200)
|
||||
|
||||
# Setup the output channels
|
||||
for output_channel in output_channels:
|
||||
GPIO.setup(output_channel, GPIO.OUT)
|
||||
GPIO.output(output_channel, GPIO.LOW)
|
||||
else:
|
||||
print("Warning: RPi.GPIO could not be loaded. GPIO disabled.")
|
||||
|
||||
def teardown(self):
|
||||
if gpio_enabled:
|
||||
GPIO.cleanup()
|
||||
|
||||
def set_output(self, channel, value=0):
|
||||
if gpio_enabled:
|
||||
GPIO.output(channel, GPIO.HIGH if value==1 else GPIO.LOW)
|
||||
Reference in New Issue
Block a user