2012-04-26 10 views
5

मैं एंड्रॉइड ऐप से हमारे एम्बेडेड डिवाइस पर डेटा पढ़ने और लिखने के लिए एंड्रॉइड ऐप लिखने की कोशिश कर रहा हूं। टैबलेट और एम्बेडेड डिवाइस यूएसबी के माध्यम से धारावाहिक कनवर्टर से जुड़े हुए हैं। क्या हमारे एंड्रॉइड टैबलेट में एम्बेडेड डिवाइस से डेटा पढ़ना संभव है? कोई भी नमूना कोड जिसे मैं देख सकता हूं?एंड्रॉइड 3.1 यूएसबी पोर्ट के माध्यम से यूएसबी पोर्ट के माध्यम से पढ़ें और लेखक डेटा

+0

क्या आपने देखा [यह] (http://developer.android.com/guide/topics/usb/accessory.html) या [यह] (http://developer.android.com/guide/topics/usb /host.html) दस्तावेज? – Jack

+0

हां, जैक, मैंने बाद में पढ़ा। मैंने एक नया सवाल शुरू किया, कृपया एक नज़र डालें। धन्यवाद! – dan

उत्तर

0

एक सीरियल कनवर्टर के रूप में, एक यूएसबी डिवाइस है एंड्रॉयड टैबलेट एक यूएसबी मेजबान के रूप में कार्य करना पड़ता है। यह सुविधा एंड्रॉइड 3.1 के बाद उपलब्ध है। एपीआई दस्तावेज android developer page पर उपलब्ध है और कोड उदाहरण भी शामिल है।

वास्तव में कनवर्टर के साथ संवाद करने के लिए आपको इसके आंतरिक के बारे में थोड़ा और पता लगाना होगा: बाजार पर कई अलग-अलग डिवाइस हैं, कुछ यूएसबी छिपाई का उपयोग कर रहे हैं, अन्य यूएसबी सीडीसी डिवाइस क्लास का उपयोग कर रहे हैं या यहां तक ​​कि इसका पालन नहीं करते हैं कोई वर्ग लिनक्स lsusb कमांड डिवाइस/इंटरफ़ेस डिस्क्रिप्टर प्राप्त करने में सहायक हो सकता है।

एक ठेठ सीडीसी डिवाइस पर आप अपने डिवाइस केवल एक ही है, तो दो थोक अंतिम बिंदुओं के साथ बातचीत करने और शायद कुछ इंटरफेस सेटअप करने के लिए संबंधित अनुरोधों baudrate, आदि का उपयोग USB implementers forum.

पर संचार उपकरण वर्ग विनिर्देश देखें होगा थोक अंतराल (नियंत्रण समापन बिंदु के बगल में) में से एक और आप सीरियल लाइन पर कुछ बाइट्स लिखने के लिए आउट एंडपॉइंट पर UsbDeviceConnection.bulkTransfer() विधि का उपयोग करने का प्रयास कर सकते हैं। एक अच्छा मौका है कि यह सिर्फ काम करेगा, हालांकि एक स्वच्छ कार्यान्वयन के लिए आपको कक्षा विनिर्देश के साथ रहना चाहिए। https://code.google.com/r/felixhaedicke-usb-serial-for-android

मैं इसे का उपयोग किया है सफलतापूर्वक:

+0

हाय, अलेक्जेंडर जानकारी के लिए धन्यवाद। मेरा कनेक्शन टैबलेट यूएसबी/सीरियल केबल से जुड़ा हुआ है, जिसका एक अंत यूएसबी पोर्ट है और दूसरा सिर एक सीरियल पोर्ट है। धारावाहिक बंदरगाह एक और धारावाहिक केबल से जुड़ा हुआ है जो अन्य एम्बेडेड डिवाइस से जुड़ता है। यूएसबी होस्ट मोड के लिए मुझे एक बात समझ में नहीं आ रही है, मुझे विक्रेता आईडी, उत्पाद आईडी, कक्षा, सबक्लास निर्दिष्ट करने की आवश्यकता है। मैं उन जानकारी को कैसे जान सकता हूं? एक लिनक्स मशीन के साथ यूएसबी/सीरियल केबल कनेक्ट करें और इसे ढूंढें? धन्यवाद!!! – dan

+0

हाय बिल, हाँ सही लिनक्स या मैक यहां आसान है। विंडोज के तहत भी उपकरण हो सकते हैं, लेकिन लिनक्स में यह वास्तव में सीधे आगे है। आप एक लिनक्स लाइव सीडी/यूएसबी स्टिक बूट संस्करण का उपयोग कर सकते हैं। फिर पीसी से जुड़े कनवर्टर के साथ एक शेल में lsusb चलाएं। यह आदेश के आउटपुट में दिखाई देना चाहिए। मेरा दिखता है: 'बस 004 डिवाइस 002: आईडी 067 बी: 2303 प्रोलिफिश टेक्नोलॉजी, इंक पीएल 2303 सीरियल पोर्ट ' – Alexander

+0

आईडी के बाद संख्याएं आपके डिवाइस की _vendor_: _product_ आईडी हैं। फिर पूर्ण डिवाइस डिस्क्रिप्टर प्राप्त करने के लिए 'lsusb -v -d 067b: 2303' चलाएं। वहां आप कक्षा और उप-वर्ग के बारे में पढ़ सकते हैं। जैसा कि आप यूएसबी के साथ काफी परिचित नहीं लगते हैं, मैं पूरी यूएसबी अवधारणा के बारे में थोड़ा सा पढ़ने का सुझाव देता हूं। शायद [यहां] (http://www.beyondlogic.org/usbnutshell/usb1.shtml)। इससे आपको अपना लक्ष्य प्राप्त करने में मदद मिलेगी। – Alexander

1

मैं पोर्टेड यूएसबी के लिए एंड्रॉयड lib, जो PL2303 ड्राइवर पहले से ही लागू किया उपयोग करने का सुझाव।

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