NOME¶
mouse - interfaccia per il mouse seriale
CONFIGURAZIONE¶
I mouse seriali sono connessi a una linea seriale dialout RS232/V24. Si veda
ttyS(4) per una descrizione.
DESCRIZIONE¶
Introduzione¶
La piedinatura della solita presa a 9 pin usata per i mouse seriali è:
pin |
name |
used for |
2 |
RX |
Data |
3 |
TX |
-12 V, Imax = 10 mA |
4 |
DTR |
+12 V, Imax = 10 mA |
7 |
RTS |
+12 V, Imax = 10 mA |
5 |
GND |
Ground |
Queste sono le specifiche, ma di fatto 9 V sono sufficienti per la maggior parte
dei mouse.
Il driver del mouse può riconoscere un mouse portando basso RTS e
rialzandolo di nuovo. Circa 14 ms dopo, il mouse invierà 0x4D
(«M») nella linea dati. Dopo ulteriori 63 ms i mouse a tre bottoni
compatibili Microsoft invieranno 0x33 («3»).
Il movimento relativo del mouse è inviato come
dx (un valore
positivo indica verso destra) e
dy (un valore positivo indica verso il
basso). Diversi mouse possono operare a velocità differenti. Per
selezionare le velocità, bisogna provare tutte le velocità 9600,
4800, 2400 e 1200 bit/s, ogni volta scrivendo i due caratteri della tabella
sotto e aspettando 0.1 secondi. La seguente tabella mostra le velocità
disponibili e le stringhe che le selezionano:
bit/s |
stringa |
9600 |
*q |
4800 |
*p |
2400 |
*o |
1200 |
*n |
Come si può notare il primo byte del pacchetto di dati può essere
usato per la sincronizzazione.
Protocollo Microsoft¶
Il protocollo
Microsoft usa 1 bit di start, 7 bit di dati, nessuna
parità e un bit di stop alla velocità di 1200 bit/s. I dati sono
inviati a RxD in pacchetti di 3 byte. I movimenti
dx e
dy sono
inviati in complemento a due.
lb (
rb) viene attivato quando il
tasto sinistro (destro) è premuto:
byte |
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 |
Protocollo Microsoft a tre bottoni¶
I mouse Microsoft originali hanno solo due tasti. Nonostante ciò, ci sono
alcuni mouse a tre tasti che usano il protocollo Microsoft. La pressione o il
rilascio del bottone di mezzo è riportata dall'invio di un pacchetto con
nessun movimento e nessun tasto premuto (perciò, a differenza degli altri
due bottoni, lo stato del bottone di mezzo non è riportato in ogni
pacchetto).
Protocollo Logitech¶
I mouse Logitech seriali a tre bottoni usa un'estensione diversa del protocollo
Microsoft: quando il bottone di mezzo è su, il pacchetto da tre byte di
più sopra è inviato; quando il bottone di mezzo è giù, un
pacchetto da quattro byte è inviato, dove il quarto byte ha il valore
0x20 (o, per lo meno, ha il bit 0x20 impostato). In particolare, la pressione
del bottone di mezzo è riportata come 0,0,0,0x20 se nessun altro bottone
viene schiacciato.
Protocollo Mousesystems¶
Il protocollo
Mousesystems usa un bit di start, 8 bit di dati, nessuna
parità e due bit di stop alla velocità di 1200 bit/s. I dati sono
spediti a RxD in pacchetti da 5 byte.
dx è spedito come somma dei
due valori in complemento a due,
dy è spedito come somma negata
dei due valori in complemento a due.
lb (
mb,
rb) viene
portato basso (0) quando il tasto sinistro (centrale, destro) sono premuti:
byte |
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 |
I byte 4 e 5 descrivono il cambiamento avvenuto a seguito della trasmissione dei
byte 2 e 3.
Protocollo Sun¶
Il protocollo
Sun è la versione a tre byte del protocollo
Mousesystems a cinque byte di più sopra: gli ultimi due byte non sono
inviati.
Protocollo MM¶
Il protocollo
MM usa un bit di start, 8 bit di dati, parità dispari
e un bit di stop alla velocità di 1200 bit/s. I dati sono spediti a RxD
in pacchetti da 3 byte.
dx e
dy sono spediti come singoli valori
con segno, e il bit di segno indica un valore negativo.
lb (
mb,
rb) vengono attivati quando il tasto sinistro (centrale, destro) sono
premuti:
byte |
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 |
FILE¶
- /dev/mouse
- un link simbolico usato comunemente come puntatore al
dispositivo del mouse.
VEDERE ANCHE¶
ttyS(4),
gpm(8)