evdev 手柄映射表
概述
使用evdev
获取手柄输入。(安装:pip install evdev
,相关教程略)
手柄如下图所示,按键明明参考PS4
手柄。
按键 | 映射 event code | 取值 event val | 说明 |
---|---|---|---|
L1 | 310 | 1,0 | 按下为 1 释放为 0 |
L2 | 2 | 0 - 255 | 释放为 0 按下最大值为255 |
L3 | 317 | 1, 0 | 按下为 1 释放为 0 |
R1 | 311 | 0 | 按下为 1 释放为 0 |
R2 | 5 | 0 - 255 | 释放为 0 按下最大值为255 |
R3 | 318 | 0, 1 | 按下为 1 释放为 0 |
A | 304 | 0, 1 | 按下为 1 释放为 0 |
B | 305 | 0, 1 | 按下为 1 释放为 0 |
Y | 308 | 0, 1 | 按下为 1 释放为 0 |
X | 307 | 0, 1 | 按下为 1 释放为 0 |
HAT_UP | 17 | 0, -1 | 按下为 -1 释放为 0 |
HAT_DOWN | 17 | 0, 1 | 按下为 1 释放为 0 |
HAT_LEFT | 16 | 0,-1 | 按下为 -1 释放为 0 |
HAT_RIGHT | 16 | 0, 1 | 按下为 1 释放为 0 |
LEFT_AXIS_X | 0 | -32768 - 32768 | 左:-32768 右:32768 |
LEFT_AXIS_Y | 1 | -32768 - 32768 | 上:-32768 下:32768 |
RIGHT_AXIS_X | 3 | -32768 - 32768 | 左:-32768 右:32768 |
RIGHT_AXIS_Y | 4 | -32768 - 32768 | 上:-32768 下:32768 |
SELECT | 314 | 0, 1 | 按下为 1 释放为 0 |
START | 315 | 0, 1 | 按下为 1 释放为 0 |
HOME | 316 | 0, 1 | 按下为 1 释放为 0 |
测试与相关代码
命令行执行 ls /dev/input
其中 event0
即为手柄对应的 event
。通过以下代码既可获取按键对应的映射表。
from evdev import InputDevice
from select import select
def detectInputKey():
dev = InputDevice('/dev/input/event0') # 手柄的 event
while True:
select([dev], [], [])
for event in dev.read():
print("code:%s value:%s" % (event.code, event.value))
if __name__ == '__main__':
detectInputKey()