Les appareils obtiennent très probablement un fichier dans 02
nommé 15
où N est les différents périphériques comme la souris, le clavier, la prise jack, les boutons d'alimentation, etc.
09
devrait vous donner un indice.
Regardez aussi :
18
Où 27
la valeur est le chemin sous 34
.
Vous pouvez tester par ex.
26
Pour implémenter, utilisez ioctl et vérifiez périphériques + moniteur.
MODIFICATION 2 :
D'ACCORD. Je développe cette réponse sur la base de l'hypothèse 47
est utilisé.
Une façon pourrait être :
-
Au démarrage boucle tous les
54
fichiers trouvés dans65
. Utilisez70
pour demander des bits d'événement :30
puis vérifiez si
88
-bit est défini. -
Définissez IFF puis vérifiez les clés :
48
Par exemple. si les touches numériques sont intéressantes, alors vérifiez si les bits pour
97
-106
et110
à129
. -
Les clés IFF trouvées puis démarrent la surveillance du fichier d'événements dans le fil.
-
Retour à 1.
De cette façon, vous devriez pouvoir surveiller tous les appareils qui répondent aux critères recherchés. Vous ne pouvez pas seulement vérifier 134
comme par ex. le bouton d'alimentation aura ce bit défini, mais il n'aura évidemment pas 148
etc. ensemble.
Ont vu des faux positifs pour les clés exotiques, mais pour les clés normales cela devrait suffire. Il n'y a pas de préjudice direct dans la surveillance, par ex. fichier d'événements pour le bouton d'alimentation ou une prise, mais ceux-ci n'émettront pas les événements en question (c'est-à-dire le mauvais code).
Plus en détail ci-dessous.
MODIFICATION 1 :
En ce qui concerne "Expliquez cette dernière déclaration…" . Aller dans stackoverflow land ici… mais :
Un échantillon rapide et sale en C. Vous devrez implémenter divers codes pour vérifier que vous obtenez réellement le bon périphérique, traduire le type d'événement, le code et la valeur. Typiquement key-down, key-up, key-repeat, key-code, etc.
Pas le temps (et c'est trop ici) d'ajouter le reste.
Découvrez 153
, des programmes comme 164
, code du noyau, etc. pour les codes de mappage. Par exemple. 173
Quoi qu'il en soit :
Exécuter comme par exemple :
56
Code :
69
MODIFICATION 2 (suite) :
Notez que si vous regardez 185
vous avez une lettre au début de chaque ligne. Ici 196
signifie bitmap. C'est-à-dire par exemple :
71
Chacun de ces bits correspond à une propriété de l'appareil. Ce qui, par bitmap, signifie que 1 indique qu'une propriété est présente, comme défini dans 209
. :
88
Jetez un oeil à 213
dans l'arborescence des sources du noyau. Beaucoup de bon code là-bas. (Par exemple, les propriétés des appareils sont produites par cette fonction.)
Chacune de ces cartes de propriétés peut être atteinte par 223
. Par exemple, si vous souhaitez vérifier quelles propriétés de LED sont disponibles, dites :
98
Regardez la définition de 235
en 247
pour combien 256
sont définis.
Pour vérifier l'état des voyants, dites :
105
Si bit 1 dans 261
sont 1 alors num-lock sont allumés. Si le bit 2 est 1, le verrouillage des majuscules est allumé, etc.
274
a les différentes définitions.
Remarques concernant la surveillance des événements :
Le pseudo-code de surveillance pourrait être quelque chose dans le sens :
113
Quelques documents connexes :
288
, esp. notez la section 5.292
, description de divers événements, etc. Prenez note de ce qui est mentionné sous par ex.306
environ314
322
... lisez le reste si vous le souhaitez.
Vous pouvez le faire facilement en référençant 339
. Ceux-ci apparaissent sous forme de liens symboliques que vous pouvez déréférencer en utilisant 340
pour déterminer le périphérique bloc associé. Ces liens sont cependant créés par 350
qui pourraient ne pas être présents dans votre environnement intégré.
Ou.. Regardez le 360
après avoir connecté le périphérique USB. Cela devrait vous donner le 371
nœud.