Domanda

Quello che mi piacerebbe assumere la proprietà di un dispositivo HID che potrebbe già essere stato inserito, consumare il suo output, evitando altri (X11 o terminale) dal consumo di esso.

Se posso farne a meno, non voglio far finta di essere un terminale, ma piuttosto di monopolizzare un particolare dispositivo HID o carattere. L'idea è che alcuni dispositivi HID possono essere riconosciuti come mouse / tastiere di x / terminale, ma un secondo mouse o la tastiera potrebbe essere utilizzato per qualcos'altro, ma per fare questo è necessario assicurarsi che essi non sono l'invio di input spurio in un terminale aperto.

Qualcuno ha qualche comprensione quanto a come questo potrebbe essere fatto?

È stato utile?

Soluzione

L'ho fatto -. La mia domanda specifica era un demone che leggono gli eventi da un USB HID lettore di codice a barre (che presenta come un dispositivo USB HID tastiera)

Per fare questo ho utilizzato l'interfaccia dispositivo evento, aprendo il dispositivo /dev/input/event* corrispondente al dispositivo ero dopo. È quindi possibile rilasciare l'ioctl EVIOCGRAB sul dispositivo, che lo afferra per uso esclusivo, e leggere gli eventi (che rappresentano tasti premuti, i movimenti del mouse, ecc) dal dispositivo non appena saranno disponibili.

(Quando il dispositivo viene afferrato ad uso esclusivo, solo l'applicazione vedrà gli eventi da esso).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top