2016-07-20 2 views
7

the simple tutorial 다음은 장치 (ADNS-5000 칩이 장착 된 USB 광 마우스)에 연결하여 bulkTransfer으로 만들 수 있습니다.안드로이드에 들어가는 방법 USB 호스트가 호스트가 명령을 보낸 후 어떤 USB 장치가 응답합니까?

니모닉 : Get_Status_Device

명령어 : 80 00 00

UsbInterface intf = device.getInterface(0); 
UsbEndpoint endpoint = intf.getEndpoint(0); 
UsbDeviceConnection connection = manager.openDevice(device); 
connection.claimInterface(intf, forceClaim); 
connection.bulkTransfer(endpoint, bytes, bytes.length, TIMEOUT); //do in another thread 

ADNS-5000 스펙 (출력 봤 될 수 있음), 예를 들어 존재하는 가운데 "USB 명령"의 일부 세트를 정의 00 00 00 02 00

참고 : 일반적으로 00 00를 반환은, 자기는 00 00, 원격 웨이크 업 전원 02 00

그래서 나는 그것을 좋아 이해 : 나는 데이터를 쓸 때 : 장치에

private byte[] bytes = {(byte) 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00}; 

을 내가 받아야 하나 0x00, 0x00 또는 0x00, 0x00(이 바이트 시퀀스가 ​​두 결과로 정의되어이 아마 사양에 오류가 다른 상태) 또는 0x20, 0x00, 즉 이지만 API가 반환하는 방식이 표시되지 않습니다. 맞습니까?

답변

0

ADNS-5000 사양을 간략하게 살펴 보았습니다. 한 가지 확실한 점은 IN 및 OUT 엔드 포인트를 사용할 수 있다는 것입니다.

Get_Status_Endpt0 82 00 00 00 XX 00 02 00 OUT : XX = 00, IN : 는 XX = 80은 일반적으로 00 00

이 명령은 (어떤 API가없는) 반환 할 수 있음을 의미합니다 반환 결과.

OUT 엔드 포인트에 명령을 쓰고 IN 엔드 포인트에서 명령 실행 후 상태 (폴링)를 읽는 것이 유일한 방법입니다.

이것은 몇 가지 프로젝트에서 사용해온 것이므로 완벽하게 좋습니다. USB 프로토콜 세부 사항을 확인하지 않았기 때문에 ADNS-5000에 대해 확신 할 수 없습니다.

희망이 있습니다.

관련 문제