Как мне написать обратный вызов нажатия клавиш? - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь написать кусок кода для Raspberry Pi в python 3.4.2, который использует обратные вызовы для запуска определенных событий.

В настоящее время я использую изящную команду GPIO (GPIO.add_event_detect) вместе с правилом try / исключением, которое заставляет скрипт останавливаться и ждать, пока что-то произойдет.

Я хочу сделать нечто подобное в то же время для нажатия кнопки клавиатуры (не беспокоит, какая именно сейчас), есть ли способ сделать это, похожий на 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 голосов
/ 20 ноября 2018

Я провел небольшое исследование для вас и нашел эту библиотеку: https://github.com/boppreh/keyboard#keyboard.on_press, у которой есть метод события on_press

Просто добавьте:

import keyboard
keyboard.on_press = yourCallback

Надеюсь, это поможет вам.

...