""" .. moduleauthor:: Fabio Manganiello """ import threading import time from platypush.message.response import Response from platypush.plugins import Plugin class GpioPlugin(Plugin): """ Plugin to handle raw read/write operation on the Raspberry Pi GPIO pins. Requires: * **RPi.GPIO** (`pip install RPi.GPIO`) """ def write(self, pin, val): """ Write a byte value to a pin. :param pin: PIN number :type pin: int :param val: Value to write :type val: int :returns: dict Response:: output = { "pin": , "val": , "method": "write" } """ import RPi.GPIO as gpio gpio.setmode(gpio.BCM) gpio.setup(pin, gpio.OUT) gpio.output(pin, val) return Response(output={ 'pin': pin, 'val': val, 'method': 'write', }) def read(self, pin): """ Reads a value from a PIN. :param pin: PIN number :type pin: int :returns: dict Response:: output = { "pin": , "val": , "method": "read" } """ import RPi.GPIO as gpio gpio.setmode(gpio.BCM) gpio.setup(pin, gpio.IN) val = gpio.input(pin) return Response(output={ 'pin': pin, 'val': val, 'method': 'read', }) # vim:sw=4:ts=4:et: