2013-07-19 11 views
7

के माध्यम से जुड़े कुछ हार्डवेयर के लिए एक गेम नियंत्रक ड्राइवर लिखना मैं एक गेम नियंत्रक के लिए एक ड्राइवर बनाने के लिए देख रहा हूं (एक कोबाल्ट प्रवाह www.cobaltflux.com)। भौतिक नियंत्रक के पास 9 चेहरे बटन और दो नियंत्रण-बॉक्स बटन होते हैं (प्रारंभ/चयन)। कंट्रोल बॉक्स में एक यूएसबी पोर्ट है, लेकिन जहां तक ​​मैं कह सकता हूं कि किसी ने कभी इसके लिए ड्राइवर नहीं लिखा है। अंत परिणाम मैं चाहता हूं कि यूएसबी पोर्ट के माध्यम से कोबाल्ट प्रवाह में प्लग करने में सक्षम होना चाहिए और खिड़कियां इसे गेम नियंत्रक के रूप में पहचानती हैं।यूएसबी

मेरे पास कुछ प्रोग्रामिंग अनुभव है। मैं यूसी डेविस में कंप्यूटर साइंस में एक वरिष्ठ स्नातक छात्र और एक बड़ी एम्बेडेड सिस्टम कंपनी में एक इंटर्न हूं, हालांकि इस परियोजना में कई पहलुओं को शामिल किया गया है जिनमें मुझे कोई अनुभव नहीं है: यूएसबी पोर्ट के माध्यम से हार्डवेयर और सॉफ्टवेयर इंटरफेस करना, हार्डवेयर से प्रतिक्रिया की जांच करना 'टी बिल्ड (जो बटन दबाते समय प्रकाश डालता है?), और विंडोज़ के लिए सामान्य रूप से ड्राइवर और वास्तव में प्रोग्राम बनाते हैं।

चूंकि मैं व्यक्तिगत रूप से किसी को भी नहीं जानता जो मुझे इस समस्या को हल करने के लिए वर्कफ़्लो के सही रास्ते पर सेट करने में सक्षम होगा, मैं यहां पूछ रहा हूं। मैं दृष्टिकोण की तरह कुछ जा रहा कल्पना:

मैं एक यूएसबी

मैं एक कार्यक्रम को खोलने के मतदान पर क्या धक्का बटन के प्रभाव यूएसबी चैनल

मैं एक प्रोग्राम लिखने पर हैं के माध्यम से डिवाइस कनेक्ट है कि यूएसबी पोर्ट से गेम सिग्नल ड्राइवरों के उन संकेतों को इंटरफेस करता है जिनके पास विंडोज़

यह ध्यान देने योग्य हो सकता है कि मुझे जॉयपैड समर्थन होना चाहिए और बटन के लिए जॉयस्टिक समर्थन नहीं होना चाहिए क्योंकि खेल में किसी भी बटन को दबाएगा एक बार और जॉयस्टिक आमतौर पर केवल इनपुट की एक दिशा पंजीकृत करते हैं किसी दिए गए समय नहीं।

कोई सलाह या सहायता की सराहना की जाएगी। मुझे यह पता लगाने में परेशानी हो रही है कि कहां से शुरू करना है।

+0

अस्पष्ट या बहुत व्यापक के रूप में बंद करने के लिए वोटिंग। –

+1

मुझे एक समान प्रश्न है, और यह महसूस नहीं करता कि यह बहुत व्यापक या अस्पष्ट है। मेरे पास लॉजिटेक स्टीयरिंग व्हील नियंत्रक है जो W8 या W10 में समर्थित नहीं है। यह इसे पहचानता है, लेकिन कोई इनपुट नहीं पढ़ता है। मैं बस कुछ ऐसा लिखना चाहता हूं जो उस यूएसबी पोर्ट पर सुन सके और फिर मुझे उस जानकारी को गेम नियंत्रक इंटरफ़ेस में मैप करने दें। – Tanoshimi

उत्तर

4

मेरे पास एक साल से अधिक समय के लिए बिल्कुल वही समस्या है और मुझे अभी तक सही समाधान नहीं मिला है।

जब आप यूएसबी के माध्यम से पैड प्लग करते हैं तो यह एक डिवाइस आईडी और एक विक्रेता आईडी के साथ घोषित करता है जो डिवाइस है। विंडोज प्लग-एंड-प्ले ड्राइवर के लिए खोजना शुरू कर देता है। यह तंत्र स्पॉट करता है यह एक पॉइंटिंग डिवाइस है (मेरे मामले में एक या 2 चूहों में) और यह सुनिश्चित करता है कि इसे कच्चे डेटा इनपुट डिवाइस के रूप में माना जाता है। इन उपकरणों से इनपुट ओएस द्वारा संचालित संदेशों में परिवर्तित हो जाता है। ऐसा लगता है कि समाधान ऐसे कच्चे इनपुट डिवाइस के संदेशों को दाएं हैंडलर में पास करना है। मेरे मामले में दो चूहों दोनों चूहों के रूप में पहचाने जाते हैं और संदेशों को उसी हैंडलर द्वारा उपयोग किया जाता है क्योंकि वे तीसरे माउस से आते हैं जो वास्तव में मेरा पॉइंटिंग डिवाइस है। कच्चे इनपुट एपीआई में खोदने के लिए मुझे सी ++ कोडिंग में पर्याप्त अनुभव नहीं हुआ है। मुझे अपने प्रश्न पर उत्तर के रूप में एक दिलचस्प लिंक मिला: http://www.icculus.org/manymouse/ कम से कम यह मेरी समस्या पर एक जवाब देता है। हो सकता है कि यह आपको अपने ड्राइवर को लिखने के लिए विचार देगा! सौभाग्य !!! स्टीफन

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