मैं सी में गणितीय तरंग कार्यों का उपयोग करके ध्वनि बनाने के साथ खेल रहा हूं। मेरी परियोजना में अगला कदम तरंगों को अलग करने के लिए मिडी कीबोर्ड नियंत्रक से उपयोगकर्ता इनपुट प्राप्त कर रहा है पिचों।सी लिनक्स डिवाइस प्रोग्रामिंग - सीधे से पढ़ना/देव
मेरी पहली धारणा यह थी कि यह अपेक्षाकृत सरल होगा और लिनक्स होने पर लिनक्स, मुझे अपने डिवाइस से कच्चे डेटा स्ट्रीम को पढ़ने की अनुमति देगा जैसे कि मैं कोई अन्य फाइल करूंगा।
हालांकि, शोध भारी सलाह देता है कि मैं MIDI नियंत्रक के लिए डिवाइस ड्राइवर लिखता हूं। सामान्य विचार यह है कि भले ही डिवाइस फ़ाइल मौजूद हो, भले ही कर्नेल को पता नहीं चलेगा कि कौन सा सिस्टम निष्पादित करता है जब मेरा एप्लिकेशन कॉल() और लिखने() लिखता है।
इन चेतावनियों के बावजूद, मैंने एक प्रयोग किया। मैंने MIDI नियंत्रक में प्लग किया और "/ dev/midi1" डिवाइस फ़ाइल को बिल्ली दिया। शून्य वर्णों की एक स्थिर धारा दिखाई दी, और जब मैंने MIDI नियंत्रक पर एक कुंजी दबाई तो कई बाइट अपेक्षित संदेश खंडों के अनुरूप दिखाई दिए जो MIDI डिवाइस को आउटपुट करना चाहिए। MIDI Protocol Info
तो मेरी प्रश्न हैं:
क्यों cat'ed धारा इस तरह से व्यवहार करते हैं करता है?
क्या इसका मतलब यह है कि मेरे सिस्टम पर एक प्लग और प्ले डिवाइस ड्राइवर पहले से स्थापित है?
क्या मुझे अभी भी आगे बढ़ना चाहिए और डिवाइस ड्राइवर लिखना चाहिए, या क्या मैं इसे फ़ाइल की तरह पढ़ने से दूर हो सकता हूं?
इन क्षेत्रों में अपना ज्ञान साझा करने के लिए उन्नत में धन्यवाद।
इसे कैट करने के बजाए, मैं अनुशंसा करता हूं कि आप 'सी' प्रोग्राम से डिवाइस को पढ़ लें। आप कहते हैं कि आप 'वैध' डेटा देख रहे हैं, निश्चित रूप से क्यों नहीं पता? बीटीडब्ल्यू, वहां पहले से ही एक डिवाइस ड्राइवर होना चाहिए, अन्यथा आपके पास डिवाइस फ़ाइल नहीं होगी, न ही इसे एक्सेस करने का कोई तरीका होगा। – KevinDTimm