1

私はこれを本質的に蒸留しようとしました。このコードは正常に動作します。

from evdev import InputDevice, ecodes
dev = InputDevice('/dev/input/event2')   # this is the joystick event file
button = {304: 'A', 305: 'B', 307: 'X', 308: 'Y' }  # Xbox360 button mappings
exit = False

def joystick(dev):
    try:
        for event in list(dev.read()):
            if button[event.code] == 'A' and event.value == 1:
                print('Button A pressed.')
            if button[event.code] == 'X' and event.value == 1:
                print('Button X pressed.')
                return True
    except: pass
    return False
    
while exit == False:
    exit = joystick(dev)

ただし、ジョイスティック関数を別のファイル (適切な evdev インポートを含む) に移動してインポートすると、コードが壊れます (関数「ジョイスティック」は常に false を返し、ジョイスティック イベントを認識しません)。

理由はありますか?ソフトウェア/ハードウェアのインターフェースが扱いにくいことは知っていますが、これはばかげています。

4

1 に答える 1