2012-09-05 30 views
12

मैं यह पता लगाने की कोशिश कर रहा हूं कि आउटपुट शैल में गेटवेन्ट कमांड से आउटपुट किस प्रारूप में है।क्या किसी को पता है कि गेटवेन्ट का आउटपुट क्या है?

उदाहरण के लिए, उत्पादन इस तरह दिखता है:

adb shell getevent -t | grep event1

आयकर झंडा एक timestap प्रदान करता है और ग्रेप केवल टच स्क्रीन की घटनाओं से संदेशों को फ़िल्टर करने के लिए है।

22779-197145:/dev/इनपुट/EVENT1: 0003 003A 00400001

22779-197999:/dev/इनपुट/EVENT1: 0003 0039 82c30a97

22779-218477:/dev/इनपुट/EVENT1: 0003 003A 00390001

22779-219301:/dev/इनपुट/EVENT1: 0003 0039 82c30aa4

22779-230623:/dev/इनपुट/EVENT1: 0003 003A 002f0001

012,351,

22,779-231,416:/dev/इनपुट/EVENT1: 0003 0039 82c10aae

22779-242769:/dev/इनपुट/EVENT1: 0003 003A 00190001

22779-243623:/dev/इनपुट/EVENT1: 0003 0039 82c60ac1

22779-253328:/dev/इनपुट/EVENT1: 0003 003A 00000002

22,779-254,213:/dev/इनपुट/EVENT1: 0003 0039 82da0ae4

22779-415590:/dev/इनपुट/घटना 1: 0003 003a 00000000

22,779-416,444:/dev/इनपुट/EVENT1: 0003 0039 800b1549

समस्या मैं पता नहीं कैसे इस जानकारी पर कार्रवाई करने के लिए है कि है। जबकि पिछले क्षेत्र के सेकंड दो कोड के बीच बदलते हैं (जिसे एक्स और वाई मानों के अनुरूप करने का सुझाव दिया गया है), अंतिम क्षेत्र में या तो बहुत बड़ी या बहुत छोटी संख्याएं होती हैं।

इसके अलावा, टाइमस्टैम्प भी मेरे लिए विदेशी है। मुझे आश्चर्य है कि डैश के बाद भाग नैनोसेकंड हैं?

क्या किसी को पता है कि मैं इन चीजों के प्रारूप के बारे में कहां से पता लगा सकता हूं?

+2

गेटवेन्ट पर दुख की बात नहीं है ... क्या आपने http://source.android.com/tech/input/getevent.html पढ़ा था? – shkschneider

+0

हाँ मैंने किया, धन्यवाद। मुझे समझने के लिए एंड्रॉइड के स्रोत कोड को बदलने के लिए मुझे एक प्रारूप में आवश्यक जानकारी प्राप्त करने के लिए समाप्त करना पड़ा। – pypmannetjies

उत्तर

11

/dev/input/eventXevdev लिनक्स कर्नेल सबसिस्टम द्वारा उपयोग किया जाता है जो जेनेरिक इनपुट इवेंट लेयर हैंडलिंग इवेंट्स है और इसे ऐप्स पर टाइमस्टैम्प पास कर रहा है। आप इस कोशिश इस तरह getevent उपकरण के साथ कौन-से Android पर जा रहा है के बारे में अधिक मानव पठनीय उत्पादन प्राप्त करने के लिए, कर सकते हैं:

$ adb shell getevent -lp /dev/input/event1 

सभी getevent के विकल्प प्राप्त करने के लिए, कार्य करें:

$ adb shell getevent --help 

आप पढ़ सकते हैं getevent उपकरण here और लगभग evdevon Wiki के बारे में अधिक जानकारी।

गिरी सूत्रों के अनुसार, evdev उपयोग nanosecond संकल्प समय प्रारूप (ktime) और सूत्रों का कहना है, linux/next/include/linux/ktime.h या here में हैं यदि आप इसे देखने के लिए ऑनलाइन चाहते हैं।

+0

धन्यवाद, मुझे – pypmannetjies

+3

[गेटवेन्ट स्रोत] (http://code.metager.de/source/xref/android/4.0.4/system/core/toolbox/getevent.c#645) भी उपयोगी दिखाई दे सकता है। –

+0

[आपका लिंक] (https://source.android.com/tech/input/getevent) मृत प्रतीत होता है। क्या कहीं नया दस्तावेज है? –

0

ऐसा लगता है कि आपके स्निपेट में टचस्क्रीन स्पर्श नहीं किए गए थे या संभवतः एक्स और वाई रिकॉर्ड नहीं किए गए थे।

आमतौर पर, टच स्क्रीन के लिए X निर्देशांक 0003 0035 तहत कर रहे हैं और Y तहत 0003 0036 जबकि 0003 0039 उंगली नीचे के लिए आमतौर पर है और उंगली ऊपर (पिछले क्षेत्र के साथ के लिए भी अधिक की तरह लग रही (पिछले क्षेत्र अधिक 00000000 की तरह लग रही के साथ))।

बिल्कुल यकीन नहीं है कि 0003 003a क्या है लेकिन यह थोड़ा महत्व नहीं लगता है और यह निश्चित रूप से X या Y हेक्साडेसिमल नहीं है।

इसके अलावा, टाइमस्टैम्प सेकंड में मापा जाता है। टाइमस्टैम्प में डैश से पहले अनुभाग यूटीसी में 1 जनवरी 1 9 70 को यूनिक्स एपॉक्स का प्रतिनिधित्व करता है और डैश के बाद टाइमस्टैम्प उपरोक्त समय और तिथि के बाद सेकंड पर आधारित दिनांक बन जाता है।

आशा है कि कुछ और स्पष्टता जोड़ती है।

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

  • कोई संबंधित समस्या नहीं^_^