2012-04-26 2 views
5

Android 기기에서 Android 태블릿의 데이터를 읽고 쓰는 Android 앱을 작성하려고합니다. 태블릿과 임베디드 장치는 USB를 통해 직렬 변환기에 연결됩니다. 임베디드 장치에서 안드로이드 타블렛으로 데이터를 읽을 수 있습니까? 내가 볼 수있는 샘플 코드는 무엇입니까?Android 3.1의 USB 포트를 통한 읽기 및 기록기 데이터

+0

[this] (http://developer.android.com/guide/topics/usb/accessory.html) 또는 [this] (http://developer.android.com/guide/topics/usb)를 보았습니까? /host.html) documentation? – Jack

+0

예, 잭, 나중에 읽었습니다. 나는 새로운 질문을 시작했다. 한번보세요. 감사! – dan

답변

0

직렬 변환기는 USB 장치이므로 안드로이드 타블렛은 USB 호스트처럼 작동해야합니다. 이 기능은 Android 3.1부터 사용할 수 있습니다. API 설명서는 android developer page에 있으며 코드 예제가 포함되어 있습니다.

변환기와 실제로 통신하려면 내부 부품에 대해 좀 더 알아봐야합니다. 시장에 여러 가지 장치가 있으며 일부는 USB HID를 사용하고 다른 일부는 USB CDC 장치 클래스를 사용하거나 심지어는 준수하지도 않습니다 모든 클래스. 리눅스 lsusb 명령은 장치/인터페이스 설명자를 얻는 데 도움이 될 수 있습니다. 장치가 하나만있는 경우

전형적인 CDC 장치에

당신은 USB implementers forum.

의 통신 장치 클래스 사양을 참조하십시오이 대량 엔드 포인트와 상호 작용 아마 인터페이스를 등 설치에 관한 요구한다 전송 속도를 사용해야합니다 IN 및 하나의 OUT 대량 끝점 (컨트롤 끝점 옆)을 사용하면 OUT 끝점에서 UsbDeviceConnection.bulkTransfer() 메서드를 사용하여 직렬 줄에 일부 바이트를 쓰려고 할 수 있습니다. 이것이 제대로 작동 할 수있는 좋은 기회가 있지만 깨끗한 구현을 위해서는 클래스 스펙을 고수해야합니다. 나는 성공적으로 사용했습니다 https://code.google.com/r/felixhaedicke-usb-serial-for-android

:

+0

안녕하세요, 알렉산더 정보 주셔서 감사합니다. 내 연결은 태블릿이 USB/직렬 케이블로 연결되어 있습니다.이 케이블의 한쪽 끝은 USB 포트이고 다른 쪽 끝은 직렬 포트입니다. 직렬 포트는 다른 내장형 장치와 연결되는 다른 직렬 케이블과 연결됩니다. 내가 USB 호스트 모드에 대해 이해할 수없는 한 가지는 vendro id, product id, class, subclass를 지정해야한다는 것입니다. 그 정보를 어떻게 알 수 있습니까? 리눅스 머신과 USB/시리얼 케이블을 연결하고 찾아 내면 되나요? 감사!!! – dan

+0

안녕하세요 Bill, 네, 맞습니다. Linux 또는 Mac이 여기에 편리합니다. Windows에서도 도구가있을 수 있지만 리눅스에서는 정말 간단합니다. 당신은 리눅스 라이브 CD/USB 스틱 부팅 버전을 사용할 수 있습니다. 그런 다음 변환기가 PC에 연결된 쉘에서 lsusb를 실행하십시오. 명령의 출력에 나타나야합니다. 광산은 다음과 같습니다 :'Bus 004 Device 002 : ID 067b : 2303 Prolific Technology, Inc. PL2303 Serial Port' – Alexander

+0

ID 뒤의 숫자는 장치의 _vendor_ : _product_ ID입니다. 그런 다음'lsusb -v -d 067b : 2303'을 실행하여 전체 장치 설명자를 얻습니다. 거기에서 당신은 클래스와 하위 클래스에 대해 읽을 수 있습니다. USB에 익숙하지 않은 것처럼 보였으므로 전체 USB 개념에 대해 약간 읽는 것이 좋습니다. 어쩌면 [여기] (http://www.beyondlogic.org/usbnutshell/usb1.shtml). 이렇게하면 목표를 달성하는 데 도움이됩니다. – Alexander

1

는 이미 구현 된 PL2303 드라이버가 이식 된 USB-를위한 안드로이드 lib 디렉토리를 사용하는 것이 좋습니다.