Scroll to navigation

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

ttyS(4), gpm(8)

10 febbraio 1996 File speciali