Molto probabilmente i dispositivi ricevono un file in 07
denominato 19
dove N sono i vari dispositivi come mouse, tastiera, jack, pulsanti di accensione ecc.
04
dovrebbe darti un suggerimento.
Guarda anche:
13
Dove 22
il valore è il percorso sotto 38
.
Puoi testare ad es.
21
Per implementare usa ioctl e controlla dispositivi + monitor.
MODIFICA 2:
OK. Sto espandendo questa risposta in base al presupposto 42
viene utilizzato.
Un modo potrebbe essere:
-
All'avvio eseguire il ciclo di tutti i
59
file trovati in60
. Usa75
per richiedere bit di evento:35
quindi controlla se
83
-bit è impostato. -
IFF impostato quindi controlla le chiavi:
43
Per esempio. se i tasti numerici sono interessanti, controlla se i bit per
92
-101
e114
a124
. -
Le chiavi IFF trovate quindi avviano il monitoraggio del file di eventi nel thread.
-
Torna a 1.
In questo modo dovresti monitorare tutti i dispositivi che soddisfano i criteri desiderati. Non puoi controllare solo 138
come ad es. power-button avrà questo bit impostato, ma ovviamente non avrà 142
ecc. impostato.
Ho visto falsi positivi per chiavi esotiche, ma per chiavi normali questo dovrebbe bastare. Non vi è alcun danno diretto nel monitoraggio, ad es. file di eventi per il pulsante di accensione o un jack, ma quelli non emetteranno eventi in questione (ovvero codice errato).
Più in dettaglio di seguito.
MODIFICA 1:
Per quanto riguarda "Spiega l'ultima affermazione..." . Andando oltre in StackOverflow atterra qui... ma:
Un esempio rapido e sporco in C. Dovrai implementare vari codici per verificare di ottenere effettivamente il dispositivo corretto, tradurre il tipo di evento, il codice e il valore. Tipicamente key-down, key-up, key-repeat, key-code, ecc.
Non ho tempo, (ed è troppo qui), di aggiungere il resto.
Dai un'occhiata a 157
, programmi come 168
, codice del kernel ecc. per i codici di mappatura. Per esempio. 178
Comunque:
Esegui come ad esempio:
51
Codice:
64
MODIFICA 2 (continua):
Nota che se guardi 180
hai una lettera all'inizio di ogni riga. Qui 190
significa mappa di bit. Questo è per esempio:
76
Ciascuno di questi bit corrisponde a una proprietà del dispositivo. Che per bit-map significa, 1 indica che è presente una proprietà, come definito in 203
. :
82
Dai un'occhiata a 217
nell'albero dei sorgenti del kernel. Un sacco di buon codice lì. (Ad esempio, le proprietà dei dispositivi sono prodotte da questa funzione.)
Ognuna di queste mappe di proprietà può essere raggiunta da 228
. Ad esempio, se vuoi controllare quali proprietà dei LED sono disponibili, dì:
92
Guarda la definizione di 239
in 241
per come 250
sono definiti.
Per controllare lo stato dei LED, dire:
100
Se il bit 1 in 266
sono 1 allora il blocco numerico è acceso. Se il bit 2 è 1 allora il blocco maiuscole è acceso ecc.
279
ha le varie definizioni.
Note relative al monitoraggio degli eventi:
Lo pseudo-codice per il monitoraggio potrebbe essere qualcosa nella direzione di:
117
Alcuni documenti correlati:
283
, spec. nota la sezione 5.296
, descrizione di vari eventi ecc. Prendere nota di quanto menzionato ad es.300
su319
327
... leggi il resto se vuoi.
Puoi farlo facilmente facendo riferimento a 333
. Questi appaiono come collegamenti simbolici che puoi dereferenziare usando 345
per determinare il dispositivo a blocchi associato. Questi collegamenti sono comunque creati da 355
che potrebbe non essere presente nel tuo ambiente embedded.
Oppure... Guarda il 365
dopo aver collegato il dispositivo USB. Dovrebbe darti il 376
nodo.