LINUX.ORG.RU

«Концевой выключатель» из USB-мышки


0

1

Уважаемые!
Имеется МСВС-3 (в сущности, некий старенький редхэт с ядром 2.4), который должен как-то реагировать на открывание/закрывание дверцы шкафчика. Никаких портов, кроме USB - нет, поэтому в качестве датчика была выбрана USB-мышка (а что - целых три кнопки!). «Штатная мышь» - которой пользователь тыкает на экранные элементы - PS/2. (Там, таки имеются некие иксы с KDE3).
lsusb про неё говорит следующее:
Bus 002 Device 002: ID 046d:c03e Logidech, Inc. Premium Optical Wheel Mouse
Подскажите, пожалуйста, с каким устройством в /dev она ассоциирована, или, например, как из USB-порта «читать» состояния кнопок?

Что-то мне кажется, что собрать на дешевеньком микроконтроллере с USB-портом это дело будет проще.

Eddy_Em ☆☆☆☆☆ ()

libusb, libhid - высокоуровневое решение.
Читать из /dev/input/mouse и разбирать принятый пакет на координаты и состояние кнопок и проверять изменения вручную - более геморный.

adriano32 ★★★ ()

Главное - от иксов ее отключить какими-нить udev rules, xinput или что у вас в МСВС.

А дальше в /dev файл у нее есть, так оттуда события лезут, когда его читаешь, дюже любо работать с этим, читать хоть ручками можно, в экран на питоне умещалось.

t184256 ★★★★★ ()

Может клаву подключить? :). А вообще, если есть com или lpt порт то наверняка можно сделать всё проще. Скажем, замкнуть ногу на землю и считать статус.

true_admin ★★★★★ ()
Ответ на: комментарий от adriano32

Читать из /dev/input/mouse и разбирать принятый пакет на координаты и состояние кнопок и проверять изменения вручную - более геморный.

А разве /dev/input/* на ведре 2.4 уже было?

Deleted ()
Ответ на: комментарий от Kosyak

Но лучше правило udev написать (если есть), чтоб было /dev/door, например.

А разве под ядром 2.4 работал udev?

=)

Deleted ()
Ответ на: комментарий от Deleted

Поэтому я и написал "(если есть)", потому что не знал есть ли он в 2.4

Kosyak ★★★★ ()

купи лучше на ebay за 1.5 бакса usb->com я думаю с этим проблем меньше будет(хотя есть ли в МСВС драйвер неизвестно)

попробуй /dev/bus/usb/002/002/

anonymous ()
Ответ на: комментарий от anonymous

Во-первых, usb->com стоит не 1.5 бакса, а где-то баксов 50, а во-вторых, это еще бабушка надвое нагадала, что переходник заработает (среди них куча брака попадается).

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от anonymous

Такого нет. Есть /proc/bus/usb/002/002 Можно сделать cat /proc/bus/usb/002/002, получится в принципе то же, что и lsusb, только в необработанном виде.

anthony2005 ()
Ответ на: комментарий от anthony2005

Обратил внимание, что в /dev/input есть устройство mice и mouse /dev/mouse слинковано с /dev/input/mice. Можно предположить, что /dev/input/mouse - и есть искомый дивайс. Каким образом можно убедиться, что это так? В частности, пишу cat /dev/input/mouse и начинаю двигать мышкой, щелкать кнопками... Ничего не происходит. А что вместо cat'а нужно использовать?

anthony2005 ()
Ответ на: комментарий от Eddy_Em

и потом писать на это дело драйвера? имхо проще сделать на ft232, замыкание tx и rx и потоянной передаче в порт. как только появляется эхо - контакт замкнут. ничего нового паять не надо, + недорого.

aiqu6Ait ★★★ ()

Имеется МСВС-3 (в сущности, некий старенький редхэт с ядром 2.4), который должен как-то реагировать на открывание/закрывание дверцы шкафчика.

откройте мануал по любой материнской плате и посмотрите - там всё уже есть.

MKuznetsov ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.