سؤال

لقد كنت ألعب مع التقاط المدخلات من جهاز لوحة المفاتيح الخاص بي:

/dev/input/by-path/platform-i8042-serio-0-event-kbd 

بالنسبة لي ، وكنت أتساءل عما إذا كان هناك أي مواصفات لما يعيده ، باستخدام

od -tx1 /dev/input/by-path/platform-i8042-serio-0-event-kbd 

للاستماع. أشعر بالفضول في الغالب بسبب سلوك بعض المفاتيح ؛ Meta ، مفاتيح السهم ، Numpad Forward Slash.

0520300 ac 9d 86 4c 6b 0f 04 00 04 00  04  00 (db) 00 00 00
0520320 ac 9d 86 4c 8c 0f 04 00 01 00 (7d) 00  00 00 00 00
0520340 ac 9d 86 4c 95 0f 04 00 00 00  00  00  00 00 00 00

كل مفتاح آخر نظرت إليه حتى الآن لديه البايتان بين قوسين كقيم مطابقة ، هل هناك أي سبب من الأسباب المميزة؟

هل كانت مفيدة؟

المحلول

/dev/input/by-path/platform-i8042-serio-0-event-kbd هو مجرد ارتباط /dev/input/eventX ملف جهاز الحدث. يمكن قراءة البيانات من ملفات جهاز الحدث كما

struct input_event {
    struct timeval time;
    __u16 type;
    __u16 code;
    __s32 value;
};

المعرفة في /usr/include/linux/input.h.

القيم الممكنة type بادئة مع EV_. القيم الممكنة code يعتمد على type. هم بادئة مع KEY_ أو BTN_ أو REL_ أو هكذا. القيم الممكنة value تعتمد على كليهما type و code. على سبيل المثال لأحداث الضغط المفاتيح value يساوي 1 ولأحداث الإفراج عن المفاتيح 0.

يمكنك فحص بيانات الحدث مع:

evtest /dev/input/eventX

أين X هو رقم جهاز الحدث للوحة المفاتيح الخاصة بك (أو أي جهاز حدث آخر). ينبعث أو إصدار مفتاح واحد عادة ثلاثة أحداث (EV_MSC, EV_KEY و EV_SYN).

نصائح أخرى

بعض المفاتيح لها رموز مسح غير عادية ...

من: http://www.beyondlogic.org/keyboard/keybrd.htm (مع التعديلات):

الآن هناك 101 مفتاح و 8 بتات تصنع 256 مجموعة مختلفة ، وبالتالي تحتاج فقط إلى إرسال بايت واحد لكل مفتاح ، أليس كذلك؟

لا. لسوء الحظ ، هناك حفنة من المفاتيح الموجودة على لوحة المفاتيح هي مفاتيح ممتدة ، وبالتالي تتطلب رمز المسح. يسبق هذه المفاتيح E0 (Hex). لكنه لا يتوقف عند رموبين المسحين أيضًا. ماذا عن E1،14،77 ، E1 ، F0،14 ، F0،77! الآن لا يمكن أن يكون رمز مسح صالح؟ مخطئ مرة أخرى. يحدث أن يتم إرساله عند الضغط على مفتاح الإيقاف المؤقت/الكسر. لا تسألني لماذا يجب عليهم جعلها وقتًا طويلاً! ربما كانوا يقضون يومًا سيئًا أو شيء من هذا القبيل؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top