Ввод от 4 разных мышей - PullRequest
3 голосов
/ 12 ноября 2009

Мне нужно создать простое приложение, которое принимает (только щелчок) ввод от 4-х USB-мышей, подключенных в дополнение к встроенной сенсорной панели ноутбука. Моя предпочтительная операционная система для этой установки будет Linux.

Любая идея, как я мог бы различить в приложении, из какой мыши произошел щелчок? Я открыт для программирования на C или чего бы то ни было. Это простой, одноразовый проект, поэтому ничего сложного в этом нет.

Ответы [ 3 ]

4 голосов
/ 12 ноября 2009

По-моему, я нашел ответ на свой вопрос.

Упоминание Бобинса о xorg привело меня к поиску /etc/X11/xorg.conf. Это оказывается полным комментариев, таких как

# commented out by update-manager, HAL is now used

Я слышал о HAL раньше, и не только в 2001 . Я попытался man -k hal и нашел lshal, в котором перечислены 133 (!) Устройства HAL на моем ПК. В записи для одной из моих мышей я нашел

linux.sysfs_path = '/sys/devices/pci0000:00/0000:00:0b.0/usb2/2-7/2-7:1.0/input/input6/event6'

, который оказывается каталогом в файловой системе. Исследуя оттуда, я обнаружил ссылку на /dev/input/mouse3. Фактически, все мои мыши сидели там в / dev / input!

Надев плащ суперпользователя, я смог прочитать / dev / input / mouse3:

root@carl-ubuntu:/dev/input# od -t x1 -w6 mouse3
0000000 09 00 00 08 00 00
*

получается, что щелчок левой кнопкой мыши является 09 00 00 08 00 00 последовательно и повторяющимся образом.

Вывод: Я могу читать щелчки мыши из / dev / input / mouseX. Сделав chmod a+r для этих файлов, я даже могу прочитать их с обычной учетной записи пользователя. Мне нужно придумать способ, чтобы 4 мыши, бегающие без ума от рук пьяных людей, не могли напрямую взаимодействовать с GUI, но это проблема для другого дня.

3 голосов
/ 12 ноября 2009

MPX - это то, что нужно для работы с несколькими мышами и мультитач под Linux, но вам нужно будет использовать xorg xserver 1.7, чтобы получить «правильную» его версию; это обычно принимается как часть X11R7.5 , который только что вышел «стабильным» и еще не интегрирован в дистрибутивы. (Даже у xorg-edgers его нет, хотя вы должны следить за ним, если вы являетесь Ubuntu-эр.)

В GTK +, похоже, была проделана некоторая работа , позволяющая определить, какая мышь нажата (GdkEvent.gdk_event_get_device), но я не знаю, каков график получения этого в полной стабильной версии. Также я не знаю, как далеко Qt4 с ним. Итак, в общем, ситуация такова: он работает, если вы хотите потратить время на сбор, компиляцию и исправление ошибок, но пока не совсем гладко с обычным Linux.

2 голосов
/ 12 ноября 2009

Я не совсем уверен, с чего начать, но для меня это звучит очень похоже на то, как если бы мультитач работал Может быть, начать искать драйверы мультитач для Linux?

Также может пригодиться первая ссылка Лювьера.

...