2011-07-14 20 views
7

मैं वर्तमान में अपने विश्वविद्यालय के लिए एक शोध परियोजना पर काम कर रहा हूं। लक्ष्य माइक्रोसॉफ्ट किनेक्ट कैमरा का उपयोग कर मैक को नियंत्रित करना है। एक और छात्र किनेक्ट ड्राइवर लिख रहा है (जिसे छत पर या मैक के पीछे की दीवार पर कहीं भी घुमाया जाएगा और मैक स्क्रीन पर सभी उंगलियों की स्थिति को आउटपुट करेगा)।बाहरी कैमरे का उपयोग कर मैक को नियंत्रित करने के लिए ओएस एक्स में मल्टीटाउच-इवेंट्स जेनरेट और पोस्ट करें

मेरी उंगलियों की स्थिति का उपयोग करना और उन पर प्रतिक्रिया करना मेरी ज़िम्मेदारी है। लक्ष्य माउस को नियंत्रित करने के लिए एक ही उंगली का उपयोग करना और कई अंगुलियों पर प्रतिक्रिया करना है, जैसे कि वे ट्रैकपैड पर हैं।

मैंने सोचा कि यह आसान और सीधे आगे बढ़ने वाला है, लेकिन इसकी नहीं। एक अंगुली (CGEvent का उपयोग करके) का उपयोग करके माउस कर्सर को नियंत्रित करना वास्तव में बहुत आसान है, लेकिन दुर्भाग्य से सिस्टम में मल्टीटाउच-जेस्चर बनाने और पोस्ट करने के लिए कोई सार्वजनिक API नहीं है।

मैंने बहुत सी शोध किए हैं, जिसमें सभी सीजीईवींट्स को सबसे कम संभव स्थिति पर एक ईवेंट टैप का उपयोग करके और उन्हें अलग करने की कोशिश कर रहा है, लेकिन अब तक कोई वास्तविक प्रगति नहीं है।

से मैं इस पर ठोकर खाई और महसूस किया, यहां तक ​​कि एक घटना नल के लिए न्यूनतम स्थिति काफी गहरी नहीं है कि: Extending Functionality of Magic Mouse: Do I Need a kext?

जब मैं समझ गया ठीक है, में निर्मित ट्रैकपैड (और MagicMouse और MagicTrackpad) निजी मल्टीटाउचस्पोर्ट-फ्रेमवर्क के साथ एक केएक्सटी-कर्नेल-एक्सटेंशन पर संचार करता है, जो आने वाले डेटा को ओएस को किसी तरह से उत्पन्न और पोस्ट कर रहा है।

तो मुझे ट्रैकपैड की तरह ही काम करने के लिए मल्टीटाउच सपोर्ट.फ्रेमवर्क से निजी एपीआई का उपयोग करना होगा, है ना? या मुझे एक केएक्सटी-एक्सटेंशन लिखने की आवश्यकता होगी?

और यदि मुझे मल्टीटाउच सपोर्ट-फ्रेमवर्क का उपयोग करने की आवश्यकता है: निजी एपीआई प्राप्त करने के लिए मैं इसे कैसे अलग कर सकता हूं? (मुझे क्लास-डंप पता है, लेकिन यह केवल उद्देश्य-सी-फ्रेमवर्क पर काम करता है, जो यह ढांचा नहीं है)

किसी भी प्रतिक्रिया के लिए बहुत धन्यवाद! नेक्सडी।

+0

क्या किसी को इसके लिए कोई समाधान मिला है ??? मैं कुछ दिनों पहले इसी तरह की समस्या से जूझ रहा हूं, लेकिन कुछ भी काम नहीं करता है :( – Nostradamus

+0

आप यहां सुझाव जैसे कुछ कोशिश कर सकते हैं http://stackoverflow.com/a/2489593/895803 क्या आप किसी अन्य समाधान के साथ आए थे? – wheels53

उत्तर

0

"लक्ष्य माउस को नियंत्रित करने के लिए एक ही उंगली का उपयोग करना और कई अंगुलियों पर प्रतिक्रिया देना है" यहां अगर मैं समझता हूं कि आप क्या करने की कोशिश कर रहे हैं तो आप किनेक्ट से उंगलियों को ट्रैक करने का प्रयास करते हैं। लेकिन बात यह है कि किनेक्ट केवल प्रमुख शरीर के जोड़ों को पकड़ता है। लेकिन आप मुझे लगता है कि अन्य तीसरे पक्ष पुस्तकालयों के साथ ऐसा कर सकते हैं। मैंने देखा एक नमूना परियोजना है। लेकिन खिड़कियों के लिए यह। बस बड़ी तस्वीर पाने की कोशिश करें http://channel9.msdn.com/coding4fun/kinect/Finger-Tracking-with-Kinect-SDK-and-the-Kinect-for-XBox-360-Device