1

Здравствуйте!

Есть устройство, конкретно - джойстик, драйвер joydev (drivers/input/joydev.c), создаётся /dev/hipdraw1.
Где можно прочитать, как вообще работать с драйвером на его уровне - получать события и численные
значения? В книге "Linux device drivers" или можно ещё где-нибудь?

Пётр.

Пётр.

2

Можно читать /dev/input/js0, с него считываются именно структура js_event,
описанная в /usr/include/linux/joystick.h,
но она содержит информацию только по одной из осей и запросить желаемую
нельзя, т.е. надо считывать до тех пор, пока не будут считаны все оси.
Преимущество этой стуктуры в том, что в среднем положении заведомо считывается 0.
Между готовностью к считыванию очередной информации в моём случае обычмо 8ms,
но может быть и во много раз больше, если ручка двигается.

События можно получать через poll или epoll, но при этом, если ручка отклонена,
сообщения идут непрерывно, что очень нежелательно.

Можно считывать сырые данные с /dev/hidraw1, преимущество то,
что за один раз считывается информация по всем осям, два байта на каждую.
Недостаток тот, что это некалиброванные данные, начинаются не с нуля,
в среднем положении они всё время считываются, т.е. готовы и при этом
немного колеблются вокруг некоего значения. События можно получать точно
так же с тем же неудобством, так что я предпочёл читать /dev/hidraw1
с удобной мне периодичностью.

Пётр.

Пётр.