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
54fichiers trouvés dans65. Utilisez70pour 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-106et110à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.306environ314322... 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.