Jak mogę uzyskać ciąg znaków z urządzenia HID w Pythonie z evdev?

Jestem nowy w pythonie, ale mam doświadczenie z urządzeniami HID i evdev. Mam skaner kodów kreskowych 2D, który łączy się jako urządzenie HID. Celem jest uzyskanie ciągu z kodu QR. Jestem w stanie rozpoznać skaner w Linuksie, a nawet znaleźć jego lokalizację w / dev / input.

Znalazłem evdev i zaimplementowałem poniższy przykład za pomocą mojego skanera. To jest tylko domyślny kod na ich stronie. Czyta wartości, ale drukuje długie kody zdarzeń z upadkami i wzrostami. Nie widzę łatwego sposobu na przekształcenie go w łańcuch. Wszystko, co chcę zrobić, to odczytać ciąg ze skanera HID w Pythonie. Każda pomoc lub kierunek byłaby doceniana (być może evdev nie jest odpowiedzią).

Oto mój obecny kod Pythona z przykładowym wyjściem:

from evdev import *
dev = InputDevice('/dev/input/event1')

print(dev)

for event in dev.read_loop():
    if event.type == ecodes.EV_KEY:
        print(categorize(event))

Oto dane wyjściowe niektórych kodów kreskowych:

key event at 1383327570.147000, 2 (KEY_1), down
key event at 1383327570.147990, 2 (KEY_1), up
key event at 1383327570.148997, 3 (KEY_2), down
key event at 1383327570.150010, 3 (KEY_2), up
key event at 1383327570.151009, 29 (KEY_LEFTCTRL), down
key event at 1383327570.151009, 42 (KEY_LEFTSHIFT), down
key event at 1383327570.152017, 36 (KEY_J), down
key event at 1383327570.153005, 36 (KEY_J), up
key event at 1383327570.154004, 29 (KEY_LEFTCTRL), up
key event at 1383327570.155005, 32 (KEY_D), down
key event at 1383327570.155993, 32 (KEY_D), up
key event at 1383327570.157002, 48 (KEY_B), down
key event at 1383327570.158015, 48 (KEY_B), up
key event at 1383327570.158997, 48 (KEY_B), down
key event at 1383327570.282002, 18 (KEY_E), up
key event at 1383327570.283004, 49 (KEY_N), down
key event at 1383327570.284005, 49 (KEY_N), up
key event at 1383327570.284968, 18 (KEY_E), down

Wielkie dzięki!

questionAnswers(2)

yourAnswerToTheQuestion