Scroll to navigation

MOUSE(4) Podręcznik programisty Linuksa MOUSE(4)

NAZWA

mouse - interfejs myszy szeregowej

KONFIGURACJA

Myszy szeregowe podłączane są do linii szeregowej RS232/V24, której opis można znaleźć w ttyS(4).

OPIS

Wstęp

Połączenia zwykłej wtyczki 9-pinowej stosowanej w myszach to:
pin nazwa zastosowanie
2 RX Dane
3 TX -12 V, Imax = 10 mA
4 DTR +12 V, Imax = 10 mA
7 RTS +12 V, Imax = 10 mA
5 GND Masa
 
Taka jest specyfikacja, ale w praktyce dla większości myszy wystarcza 9 V.
Sterownik może rozpoznawać mysz poprzez ustawienie niskiego poziomu linii RTS, a następnie przywrócenie jej poziomu wysokiego. Po około 14 ms mysz odeśle 0x4D ("M") linią danych. Po kolejnych 63 ms 3-przyciskowa mysz zgodna z protokołem Microsoft prześle 0x33 ("3").
Względne przemieszczenie myszy wysyłane jest jako dx (wartość dodatnia oznacza w prawo) i dy (wartość dodatnia oznacza w dół). Myszy mogą pracować z różnymi prędkościami. Wybór prędkości odbywa się poprzez cykliczne przejście przez prędkości 9600, 4800, 2400 i 1200 bitów/s, za każdym razem zapisując dwa znaki z poniższej tabeli i czekając 0,1 sekundy. Następująca tabela pokazuje dostępne prędkości i sekwencje znaków, służące do ich wyboru:
bitów/s sekwencja
9600 *q
4800 *p
2400 *o
1200 *n
 
Pierwszy bajt pakietu danych może być używany do celów synchronizacji.

Protokół Microsoft

Protokół Microsoft używa 1 bitu startu, 7 bitów danych, bez parzystości i z jednym bitem stopu przy prędkości 1200 bitów/sekundę. Dane są przesyłane do RxD w 3-bajtowych pakietach. Przesunięcia dx i dy są przesyłane jako uzupełnienie do dwóch, lb (rb) są ustawiane, gdy wciśnięty jest lewy (prawy) przycisk myszy:
bajt d6 d5 d4 d3 d2 d1 d0
1 1 lb rb dy7 dy6 dx7 dx6
2 0 dx5 dx4 dx3 dx2 dx1 dx0
3 0 dy5 dy4 dy3 dy2 dy1 dy0

3-przyciskowy protokół Microsoft

Oryginalne myszy Microsoft mają jedynie dwa przyciski. Istnieją jednak myszy trójprzyciskowe, które również korzystają z protokołu Microsoft. Wciśnięcie trzeciego przycisku zgłaszane jest przez wysłanie pakietu z zerowym przesunięciem i bez wciśniętych przycisków. (Zatem, w odróżnieniu od pozostałych dwu przycisków, stan przycisku środkowego nie jest zgłaszany w każdym pakiecie).

Protokół Logitech

Szeregowa 3-przyciskowa mysz Logitech korzysta z innego rozszerzenia protokołu Microsoft: gdy środkowy przycisk jest zwalniany, wysyłany jest 3-bajtowy pakiet opisany powyżej. Gdy środkowy przycisk jest naciskany, wysyłany jest 4-bajtowy pakiet, w którym czwarty bajt ma wartość 0x20 (lub ma ustawiony przynajmniej bit 0x20). W szczególności, naciśnięcie środkowego przycisku jest sygnalizowane jako 0,0,0,0x20, gdy żaden inny przycisk nie jest wciśnięty.

Protokół Mousesystems

Protokół Mousesystems korzysta z 1 bitu startu, 8 bitów danych, bez parzystości i dwu bitów stopu przy prędkości 1200 bitów/s. Dane są wysyłane do RxD w 5-bajtowych pakietach. dx jest przesyłany jako suma dwóch wartości uzupełnionych do dwóch, dy jest przesyłane jako zanegowana suma dwóch wartości uzupełnionych do dwóch. lb ( mb, rb) są zerowane, gdy wciśnięty jest lewy (środkowy, prawy) przycisk myszy:
bajt d7 d6 d5 d4 d3 d2 d1 d0
1 1 0 0 0 0 lb mb rb
2 0 dxa6 dxa5 dxa4 dxa3 dxa2 dxa1 dxa0
3 0 dya6 dya5 dya4 dya3 dya2 dya1 dya0
4 0 dxb6 dxb5 dxb4 dxb3 dxb2 dxb1 dxb0
5 0 dyb6 dyb5 dyb4 dyb3 dyb2 dyb1 dyb0
 
Bajty 4 i 5 opisują zmianę, która nastąpiła od chwili wysłania bajtów 2 i 3.

Protokół Sun

Protokół Sun jest 3-bajtową wersją opisanego powyżej 5-bajtowego protokołu Mousesystemsi: ostatnie dwa bajty nie są wysyłane.

Protokół MM

Protokół MM używa 1 bitu startu, 8 bitów danych, nieparzystości i jednego bitu stopu przy prędkości 1200 bitów/s. Dane są wysyłane do RxD w 3-bajtowych pakietach. dx i dy są wysyłane jako pojedyncze wartości ze znakiem, bit znaku oznacza wartość ujemną. lb (mb, rb) są ustawiane, gdy wciśnięty jest lewy (środkowy, prawy) przycisk myszy:
bajt d7 d6 d5 d4 d3 d2 d1 d0
1 1 0 0 dxs dys lb mb rb
2 0 dx6 dx5 dx4 dx3 dx2 dx1 dx0
3 0 dy6 dy5 dy4 dy3 dy2 dy1 dy0

PLIKI

/dev/mouse
Powszechnie używane dowiązanie symboliczne wskazujące na urządzenie myszy.

ZOBACZ TAKŻE

ttyS(4), gpm(8)

O STRONIE

Angielska wersja tej strony pochodzi z wydania 3.40 projektu Linux man-pages. Opis projektu oraz informacje dotyczące zgłaszania błędów można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.

TŁUMACZENIE

Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Paweł Olszewski (PTM) <alder@civic.amg.net.pl> i Andrzej M. Krzysztofowicz (PTM) <ankry@green.mf.pg.gda.pl>.
Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.40 oryginału.
10-02-1996 Linux