table of contents
MOUSE(4) | Linux Programmer's Manual | MOUSE(4) |
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¶
10 febbraio 1996 | File speciali |