python阅读HID

我想做一个程序,从附加到Linux系统的HIDinput,并从这些程序生成MIDI。 我在MIDI方面没问题,但我在HID方面苦苦挣扎。 虽然这种方法工作正常(从这里采取):

#!/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? 我最好不要使用非维护或旧的库,因为我希望能够分发这个代码,并使它在现代发行版上工作(所以最终用户的包pipe理器中最终的依赖关系应该很容易得到)

Solutions Collecting From Web of "python阅读HID"

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

 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)