2017-03-08 25 views
0

私は、USBデバイス(モードUSBホスト)からデータを取得するAndroidアプリケーションを作成しています。私はhttps://developer.android.com/index.htmlの文書を読んで、またstackoverflowのいくつかの投稿を読んで、時にはbulkTransfer()、時にはcontrolTransfer()を使うことがわかりましたが、私は2つの方法の違いを見つけることができません。誰も私にいくつかの提案をお願いしますか?controlTransferとbulkTransferの違いは何ですか?

答えて

2

制御転送は、主にコマンドの送信やデバイス記述子の受信に使用されます。通常、デバイスを設定するときに使用されます。典型的なパケット長は、低速デバイスでは8バイト、高速デバイスでは8,16,32、または64バイトです。この方法で転送されるデータは、次の3つのパケットにフォーマットされます。 パケット1 - セットアップ:アドレスとエンドポイント番号を含むパケット パケット2 - データ:送信されるデータ パケット3 - ステータス:セットアップパケットが受信され、エラーなしで正しく読み取られました。

バルク転送は、ターゲットデバイスに大きなデータパケットを送信するために使用されます。プリンタとスキャナーは、通常、この転送プロトコルに従います。バルク転送では、データをエラーなしに転送および受信するためのエラー修正機能が組み込まれています。取得されたデータの量が要求されたデータの量と等しい場合、プロセスは完了したとみなされます。この転送方法は、レイテンシの保証がないため、時間に敏感なアプリケーションには理想的ではありません。

+0

ご回答ありがとうございます。 –

+0

'controlTransfer()'が送信するコマンドについてもっと詳しく説明できますか?それは何のために使われますか? @AbbasAbbas –

関連する問題