2016-07-20 14 views
7

the simple tutorial私はデバイス(ADNS-5000チップを内蔵したUSB光マウス)に接続し、bulkTransferに接続できます。どのようにAndroidのUSBホストを取得するホストがコマンドを送信した後にUsbデバイスの応答?

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コマンド" のいくつかのセットを定義:

ニーモニックGet_Status_Device

コマンド:80 00 00 00 00 00 02 00

注:通常00 00、セルフパワード00 00、リモートウェイクアップ02 00

を返します。 0

だから私はそれが好きな理解:私はデータを書き込む際:デバイスへ

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

私は0x00, 0x000x00, 0x00のいずれかを取得する必要があります。このバイトシーケンスが2のため、結果として定義される(これはおそらく、仕様に誤りでありますさまざまなステータス)または0x20, 0x00ですが、私はapiが何かを返す方法は見当たりません、そうですか?

答えて

0

私はADNS-5000仕様を簡単に見ました。 1つのことは確かです、あなたはINとOUTエンドポイントが利用可能です。 X-X = 00、::

Get_Status_Endpt0 82 00 00 00 XX 00 02 00 OUT XX = 80は、通常のコマンドは(何のAPIはありません)を返すことを意味00 00

を返します。結果。

私が想像できる唯一の方法は、OUTエンドポイントにコマンドを書き込み、INエンドポイントから(コマンド実行後に)ステータスを読み取ることです(ポーリングによって)。

これは私がいくつかのプロジェクトで使用していたものであり、それはまったく問題ありません。私はUSBプロトコルの詳細をチェックしていないので、ADNS-5000についてはわかりません。

希望します。

関連する問題