2012-07-11 4 views
6

में कैसे अनुवाद कर सकता हूं, मैं एम्बेडेड एप्लिकेशन के अंदर उनके ASCII समकक्ष में परिभाषित मानों से/dev/input/event0 से पढ़ने वाले कीबोर्ड ईवेंट को कन्वर्ट करने का प्रयास कर रहा हूं एक्स या टर्मिनल नहीं चल रहा है।मैं लिनक्स कीकोड्स को/dev/input/event * से ASCII

मुझे लगता है कि यह केवल अपने स्वयं के std :: map <> बनाने के बजाय लिनक्स के भीतर परिभाषित कीमैप कार्यक्षमता के माध्यम से किया जाना चाहिए, लेकिन मुझे शुरू करने के लिए एक अच्छी जगह नहीं मिल रही है। अब तक के अधिकांश उदाहरणों में मुझे लगता है कि मैं एक्स विंडोज़ या टर्मिनल के साथ चल रहा हूं।

+0

लागू करता टर्मिनल दिलचस्प हो सकता है। हालांकि इसे विरासत टर्मिनलों का समर्थन करने के लिए 40+ वर्षों के अमूर्तता के तहत दफनाया जा सकता है। –

+0

हां, kdb-1.12.tar.gz के माध्यम से खुदाई कर रहा है लेकिन निशान खोना जारी रखा है। –

+0

क्या इससे मदद मिलती है? [प्रोग्रामिंग में डेरेक @ द डेलीलिंक्स द्वारा पोस्ट किया गया »इवेंट डिवाइस नोड (/dev/input/event)] (http://www.thelinuxdaily.com/2010/05/grab-raw-keyboard-input-from से रॉ कीबोर्ड इनपुट प्राप्त करें) -event-डिवाइस नोड-devinputevent /) – kbulgrien

उत्तर

1

टेक्स्ट इनपुट (पारंपरिक यूएस कीबोर्ड और 7 बिट ASCII मानक के बहुत ही सरल मामले को छोड़कर) एक बेहद जटिल क्षेत्र है। मैं बहुत दृढ़ता से सुझाव देता हूं कि आप एक्स क्लाइंट का उपयोग करके ऐसा करें, जहां आप सभी मौजूदा इनपुट विधियों का लाभ उठा सकते हैं।

लेकिन यदि आपको जरूरी है, और आप एक प्रकार के कीबोर्ड और एक भाषा से खुश हैं, तो आप इसे टर्मिनल के रूप में ईवेंट की व्याख्या करके करते हैं। मूल्यों के लिए /usr/include/linux/input.h में परिभाषा की जांच करें। Shift और Ctrl कुंजी की स्थिति को ट्रैक करें (Alt-FN, आदि जैसी गैर-ASCII कुंजी ... निश्चित रूप से व्याख्या करने के लिए आप पर निर्भर हैं) और कुंजी अप ईवेंट पर संबंधित बाइट उत्सर्जित करें। हो सकता है कि आप एक ऑटो-दोहराने की सुविधा भी लागू करना चाहें, यदि डिफ़ॉल्ट आपके आवेदन के लिए काम नहीं करते हैं।

लेकिन मूल रूप से: नहीं। यह आपको लगता है कि यह एक बहुत (!) कठिन समस्या है।

0

आप से/dev/इनपुट/event0

struct input_event { 
    struct timeval time; 
    unsigned short type; 
    unsigned short code; 
    unsigned int value; 
}; 

नीचे संरचना अधिक जानकारी के लिए पढ़ सकते हैं: जो कुछ के स्रोत कोड ढूँढना https://www.kernel.org/doc/Documentation/input/input.txt

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