私はbulk transfer Androidで作業しています。私はUSBとの間でデータを送受信しています。私が送るデータはcbwBuffer
です。これはUSBにセクタとセクタ数のUSBスタートを読み込ませるように指示するコマンドです。以下は私のコードです。バルク転送データは正常に受信されましたが、長さが足りません
byte cswBuffer[] = new byte[18432];
iRes = conn.bulkTransfer(epOUT, cbwBuffer, 31, 500);//send data
iRes2 = conn.bulkTransfer(epIN, cswBuffer, 18432, 500);//receive data
受信したデータが正確18432.ただし、IRES2が16384に等しくなければなりません、私が受け取ったデータのみが16384バイトではなく、18432バイトであることを意味しています。 cswBuffer(受信したデータ)を調べ、自分のデータが0インデックスから16384インデックスまでしか正しいことを確認しますが、残りはどこにありますか?データが十分でないことを意味します。 18432-16384 = 2048バイト以上必要です。
18432は、1セクタ= 512バイトのため、私のUSBの36セクタを読み取ることを意味します。 32個以上のセクタを読み込んだ場合、常に16384バイトが得られることに気付きました。
質問を理解しやすくするために、多少の情報とコードを提供する必要があります。現実には、誰もがこれに答える方法は本質的にありません。 bulkTransferメソッドとは何ですか? connとは何ですか?実際のデータは16384バイト以上ですか? –
@NicRobertson読者が理解できるようになった –