对于家庭机器人项目,我需要读出原始鼠标移动信息。 我部分使用python脚本从成功这个这个所谓的答案 。 它基本上读出的/ dev /输入/小鼠和十六进制输入转换成整数:
import struct
file = open( "/dev/input/mice", "rb" )
def getMouseEvent():
buf = file.read(3)
button = ord( buf[0] )
bLeft = button & 0x1
bMiddle = ( button & 0x4 ) > 0
bRight = ( button & 0x2 ) > 0
x,y = struct.unpack( "bb", buf[1:] )
print ("L:%d, M: %d, R: %d, x: %d, y: %d\n" % (bLeft,bMiddle,bRight, x, y) )
while True:
getMouseEvent()
file.close()
这工作得很好,除了事实滚轮信息丢失。 有谁知道我怎样才能得到(最好使用Python)从/ dev /输入/鼠标滚轮的信息?
[编辑]好吧,虽然我没读出的/ dev /输入/老鼠,我想我找到了解决办法。 我刚刚发现的了evdev模块(须藤PIP安装了evdev),您可以读出输入事件。 我现在有下面的代码:
from evdev import InputDevice
from select import select
dev = InputDevice('/dev/input/event3') # This can be any other event number. On my Raspi it turned out to be event0
while True:
r,w,x = select([dev], [], [])
for event in dev.read():
# The event.code for a scroll wheel event is 8, so I do the following
if event.code == 8:
print(event.value)
现在我要测试这对我raspi,看看它是如何工作。 感谢所有的灵感球员和女孩!