Форум сайта python.su
14
значит общий смысл в следующем , мне нужен датчик состоящий из 2-х кнопок , так как самому паять схему ки кодить прошивку под нее мне было лениво я решил заюзать разобранную мышку , софт пишеться только под линь , поэтому найти именно эту мышь не сложно ( /dev/input/mouse2 ) а вот каким макаром научить питона читать что прилетает с этого девайса до меня пока не дошло , прошу отписать мб есть у кого мысли .
Офлайн
63
Какие сигналы с нее идут? Нажатие двух кнопок? Частота нажатия?
Что нужно при нажатии учитывать? Мышь подключена через стандартный мышиный порт?
Отредактировано 4kpt (Дек. 13, 2012 01:53:30)
Офлайн
221
В аналогичной ситуации я искал COM мышь и достаточно легко нашел. А работать с COM как известно, как два байта …
Офлайн
14
JOHN_16тоесть работать можно как с обычным портом через pyserial если я вас правильно понял ? если так то мб подкинете rfc что-бы я знал что мне нужно читать с этого порта .
В аналогичной ситуации я искал COM мышь и достаточно легко нашел. А работать с COM как известно, как два байта …
Какие сигналы с нее идут? Нажатие двух кнопок? Частота нажатия?
Что нужно при нажатии учитывать? Мышь подключена через стандартный мышиный порт?
Офлайн
63
Может я не до конца не понимаю задачу (с таким просто не сталкивался), но любой GUI может перехватывать нажатие как левой так и правой кнопки мышки…
Отредактировано 4kpt (Дек. 20, 2012 11:07:40)
Офлайн
14
4kptвсе верно , не совсем понимаете , прикол в том что у меня ноут , а соответственно как мышь в системе детектяться: тачпад , юсб-мышка , и вторая юсб-мышка которая разобрана и будет использоваться как датчик , поэтому требуеться считывать данные только с той мыши которая будет в качестве датчика
Может я не до конца не понимаю задачу (с таким просто не сталкивался), но любой GUI может перехватывать нажатие как левой так и правой кнопки мышки…
Отредактировано @cckyi_boxxx (Дек. 20, 2012 20:20:07)
Офлайн
221
@cckyi_boxxx
RS232 serial data parameters and packet format
1200bps, 7 databits, 1 stop-bit
Data packet is 3 byte packet. It is send to the computer every time mouse state changes (mouse moves or keys are pressed/released).
D7 D6 D5 D4 D3 D2 D1 D0
1. X 1 LB RB Y7 Y6 X7 X6
2. X 0 X5 X4 X3 X2 X1 X0
3. X 0 Y5 Y4 Y3 Y2 Y1 Y0
Note: The bit marked with X is 0 if the mouse received with 7 databits and 2 stop bits format. It is also possible to use 8 databits and 1 stop bit format for receiving. In this case X gets value 1. The safest thing to get everything working is to use 7 databits and 1 stopbit when receiving mouse information (and if you are making mouse then send out 7 databits and 2 stop bits).
The byte marked with 1. is send first, then the others. The bit D6 in the first byte is used for syncronizing the software to mouse packets if it goes out of sync.
LB is the state of the left button (1 means pressed down); RB is the state of the right button (1 means pressed down); X7-X0 movement in X direction since last packet (signed byte); Y7-Y0 movement in Y direction since last packet (signed byte)
По поводу как мыши детектятся те что USB я как раз сам задумывался, на выходных попробую подумать/погуглить и на след неделе отписаться получилось ли что нибудь
Отредактировано JOHN_16 (Дек. 20, 2012 22:55:41)
Офлайн
221
@cckyi_boxxx
Я не линуксоид, могу ошибаться, но в общем то моя идея такова: udev занимается созданием блочных устройств. ПО имеющимся USB device и id создать правило что бы udevd для конкретной мыши привязывал к предопределенному имени.
Офлайн