2010-09-07 13 views
5

मैं चारों ओर अपने कीबोर्ड डिवाइस से इनपुट पर कब्जा करने के साथ खेल किया गया है:/dev/इनपुट कीबोर्ड प्रारूप

/dev/input/by-path/platform-i8042-serio-0-event-kbd 
मेरे लिए

, और अगर वहाँ यह क्या देता है के लिए किसी भी विनिर्देश था मैं सोच रहा था,

का उपयोग कर
od -tx1 /dev/input/by-path/platform-i8042-serio-0-event-kbd 

सुनने के लिए। मैं निश्चित रूप से कुछ चाबियों के व्यवहार के कारण उत्सुक हूं; मेटा, तीर कुंजी, numpad आगे स्लैश।

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 

हर अन्य प्रमुख मैं देखा है अब तक, मूल्यों से मेल खाते के रूप में कोष्ठक में दो बाइट्स है तो ऐसा कोई कारण इन विशेष कर रहे हैं?

उत्तर

12

/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_ या अन्य के साथ prefixed हैं। value के संभावित मान type और code दोनों पर निर्भर करते हैं। उदाहरण के लिए कुंजी-प्रेस ईवेंट value1 और कुंजी-रिलीज़ ईवेंट 0 के बराबर है।

आप के साथ घटना डेटा की जांच कर सकते हैं:

evtest /dev/input/eventX 

जहां X (या किसी अन्य घटना डिवाइस) अपने कुंजीपटल की घटना डिवाइस संख्या है। एक कुंजी प्रेस या रिलीज सामान्य रूप से तीन घटनाओं (EV_MSC, EV_KEY और EV_SYN) उत्सर्जित करता है।

3

कुछ चाबियाँ असामान्य कोड स्कैन है ...

से: http://www.beyondlogic.org/keyboard/keybrd.htm (संपादन के साथ):

अब वहाँ 101 कुंजी और 8 बिट 256 विभिन्न संयोजनों बनाने, इस प्रकार आप केवल प्रति एक बाइट भेजने की जरूरत है कुंजी, है ना?

नहीं। दुर्भाग्यवश, आपके कीबोर्ड पर मिली कुछ चाबियां विस्तारित कुंजी हैं, और इस प्रकार दो स्कैन कोड की आवश्यकता होती है। ये चाबियाँ पहले ई0 (हेक्स) से पहले होती हैं। लेकिन यह दो स्कैन कोड पर भी नहीं रुकता है। ई 1,14,77, ई 1, एफ 0,14, एफ 0,77 के बारे में कैसे! अब यह वैध स्कैन कोड नहीं हो सकता है? फिर से गलत। जब आप विराम/ब्रेक कुंजी दबाते हैं तो यह भेजा जाता है। मुझसे मत पूछो कि उन्हें इतना लंबा क्यों बनाना है! शायद वे एक बुरा दिन या कुछ कर रहे थे?

संबंधित मुद्दे