class ButtonThread(GPIOThread): def __init__(self, pin): from Button import Button self.component = Button(pig, pin, callback=self.on_button_press) super(ButtonThread, self).__init__() def on_button_press(self, gpio, level, tick): print "PRESSED %s" % gpio super(ButtonThread, self).send("mapping/%d" % gpio) def terminate(self): super(ButtonThread, self).terminate() self.component.unlisten()
import pigpio from time import sleep from Button import Button def test_callback(gpio, level, tick): print "Button callback triggered!" print gpio, level, tick if __name__ == "__main__": pig = pigpio.pi() button = Button(pig, 21, callback=test_callback) raw_input("Press Enter when ready...") print "Waiting for input" while True: try: sleep(0.01) except KeyboardInterrupt: print "Interrupted!" break button.unlisten() pig.stop()