Scroll to navigation

mouse(4) Device Drivers Manual mouse(4)

NOME

mouse - interfaccia del mouse seriale

CONFIGURAZIONE

I mouse seriali sono connessi a una linea seriale RS232/V24 dialout; si veda ttyS(4) per la descrizione.

DESCRIZIONE

Introduzione

La descrizione dei pin del connettore a 9 poli usato per il mouse è:

pin nome usato per
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

Questa è la specifica; in effetti 9 V sono sufficienti per la maggior parte dei mouse.

Il driver può riconoscere un mouse abbassando RTS e rialzandolo. Dopo circa 14 ms il mouse deve mandare 0x4D ('M') sulla linea dati. Dopo altri 63ms i mouse a 3 bottoni compatibili Microsoft invieranno 0x33 ('3').

Il movimento relativo del mouse è inviato come dx (positivo indica destra) e dy (positivo indica basso). Vari mouse possono operare a differenti velocità. Per selezionare le velocità, ciclare tra le velocità 9600, 4800, 2400 e 1200 bit/s, inviando ogni volta i due caratteri indicati nella tabella sottostante, attendendo per 0,1 secondi. La tabella seguente mostra le velocità permesse e le stringhe da inviare per selezionarle:

bit/s string
9600 *q
4800 *p
2400 *o
1200 *n

Il primo byte del pacchetto dati può avere lo scopo di sincronizzare.

Protocollo Microsoft

Il protocollo Microsoft usa un bit di start, 7 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) sono inviati quando il pulsante di sinistra (destra) è 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 per 3 tasti

Il mouse originale Micosoft ha solo due pulsanti. Ciononostante ci sono alcuni mouse a tre tasti che utilizzano il protocollo Microsoft. La pressione e il rilascio del pulsante centrale è riportata inviando un pacchetto con movimento nullo e nessuna pressione. (Quindi, diversamente da quanto accade per gli altri due pulsanti, lo stato di quello centrale non è inviato in ogni pacchetto.)

Protocollo Logitech

I mouse seriali a 3 tasti di Logitech usano una diversa estensione del protocollo Microsoft: quando il pulsante centrale è alto, viene inviato il precedente pacchetto di 3 byte. Quando invece è premuto, viene inviato un pacchetto di 4 byte, dove il quarto ha valore 0x20 (o ha almeno il bit 0x20 impostato). In particolare, la pressione del pulsante centrale viene segnalata inviando 0,0,0,0x20 se non ci sono altri pulsanti premuti.

Protocollo Mousesystems

Il protocollo Mousesystems usa 1 bit di start, 8 bit di dati, nessuna parità, due bit di stop alla velocità di 1200 bit/s. I dati sono inviati a RxD in pacchetti di 5 byte. dx è inviato come somma dei due valori in complemento a due, dy è inviato come somma negata dei due valori in complemento a due. lb (mb, rb) vengono azzerati quando il pulsante di sinistra (centro, destra) viene premuto.

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 mostrano i cambiamenti da quando i byte 2 e 3 sono stati trasmessi.

Protocollo Sun

Il protocollo Sun è la versione a 4 byte della suddetta versione a 5 byte del protocollo Mousesystems: gli ultimi due non vengono inviati.

Protocollo MM

Il protocollo MM usa 1 bit di start, 8 bit di dati, parità dispari, un bit di stop alla velocità di 1200 bit/s. I dati sono inviati a RxD in pacchetti di 3 byte. dx e dy sono inviati come un solo valore con segno, nel quale il bit di segno indica un valore negativo. lb (mb, rb) sono impostati quando il pulsante di sinistra (centro, destra) è premuto:

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 collegamento simbolico comunemente usato che punta a un dispositivo di mouse.

VEDERE ANCHE

ttyS(4), gpm(8)

TRADUZIONE

La traduzione italiana di questa pagina di manuale è stata creata da Marco Curreli <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>

Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.

Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-ildp@lists.pluto.it.

2 maggio 2024 Linux man-pages 6.8