我该如何编写按键回调?

时间:2018-11-15 14:14:43

标签: callback raspberry-pi3 python-3.4

我正在尝试在python 3.4.2中为Raspberry Pi写一段代码,该代码使用回调来触发某些事件。

目前,我正在使用一个漂亮的GPIO命令(GPIO.add_event_detect)以及一个try / except规则,该规则使脚本暂停并等待直到发生某些事情。

我想在同一时间对键盘按钮进行操作(现在不打扰哪一个),有没有一种方法可以类似于GPIO.add_event_detect?

代码示例:

import RPi.GPIO as GPIO

receiverPin = 14
quitButton = 17

GPIO.setmode(GPIO.BCM)
GPIO.setup(receiverPin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(quitButton, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#FUNCTION ACTIVATED BY DESIRED CODE#
def activate(channel):
    #do stuff#

def direct_hit(channel):
    #do stuff#

GPIO.add_event_detect(receiverPin, GPIO.BOTH, callback=direct_hit)

#DESIRED CODE BLOCK
keypress.add_event_detect(KEYPRESS_ENTER, callback=activate)

try:
    GPIO.wait_for_edge(quitButton, GPIO.FALLING)
    print("Exiting")
    GPIO.cleanup()
    quit()
except KeyboardInterrupt:
    GPIO.cleanup()
GPIO.cleanup()

有没有办法做到这一点?请记住,我是自学的(很差)。

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我为您做了一些研究,发现了这个库:https://github.com/boppreh/keyboard#keyboard.on_press,它具有事件方法on_press

只需添加:

import keyboard
keyboard.on_press = yourCallback

希望它会对您有所帮助。