Я хотел бы создать программу, которая принимает данные от HID, подключенных к системе Linux, и генерирует 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()
он сильно загружается процессором при большом количестве событий;особенно если отслеживать мышь, большие движения занимают почти 50% процессорного времени в моей системе.Я думаю, из-за того, как структурирован while.
Итак, есть ли лучший способ сделать это в Python?Я бы предпочел не использовать необслуживаемые или старые библиотеки, так как я хотел бы иметь возможность распространять этот код и заставить его работать в современных дистрибутивах (поэтому конечные зависимости легко могут быть доступны в менеджерах пакетов для конечных пользователей)1008 *