python阅读HID

时间:2011-08-10 14:18:07

标签: python linux hid

我想做一个程序,从连接到Linux系统的HID获取输入,并从那些生成MIDI。我在MIDI方面很好,但我在HID方面苦苦挣扎。虽然这种方法可行(取自here):

#!/usr/bin/python2
import struct

inputDevice = "/dev/input/event0" #keyboard on my system
inputEventFormat = 'iihhi'
inputEventSize = 16

file = open(inputDevice, "rb") # standard binary file input
event = file.read(inputEventSize)
while event:
  (time1, time2, type, code, value) = struct.unpack(inputEventFormat, event)
  print type,code,value
  event = file.read(inputEventSize)
file.close()

当有大量事件时,CPU使用率会很高;特别是如果跟踪鼠标,大的动作占用了我系统上几乎50%的CPU。我想是因为时间的结构。

那么,在python中有更好的方法吗?我最好不要使用非维护或旧库,因为我希望能够分发这些代码并使其适用于现代发行版(因此最终用户的包管理器中应该很容易获得最终的依赖关系)< / p>

1 个答案:

答案 0 :(得分:1)

有很多活动不符合您的要求。您必须按类型或代码过滤事件:

while event:
  (time1, time2, type, code, value) = struct.unpack(inputEventFormat, event)
  if type==X and code==Y:
    print type,code,value
  event = file.read(inputEventSize)