AndroidでカスタムメイドのUSBデバイス(スレーブとして動作)からデータを読み込もうとしています。次のコードを使用して、デバイスにデータを書き込むことができました。
UsbRequest request = new UsbRequest();
request.initialize(_outConnection, _outEndpoint);
int bufferDataLength = _outEndpoint.getMaxPacketSize();
ByteBuffer buffer = ByteBuffer.allocate(bufferDataLength + 1);
buffer.put(bytes);
if (request.queue(buffer, bufferDataLength)) {
UsbRequest req = _outConnection.requestWait(); }
デバイスが接続されているデバッグ ボードに結果が表示されます。データを読み取るために同じアプローチを試みていますが、明らかにうまくいきません:
int siz = 1;
ByteBuffer res = ByteBuffer.allocate(siz + 1);
UsbRequest request = new UsbRequest();
request.initialize(_inConnection, _inEndpoint);
request.queue(res, siz); // This return false always
私は何を間違っていますか?送り返されたパケットのサイズはわかりませんが、常に読み取ることができるのは 1 バイトだと思います。
私のデバイスには、2 つの割り込みエンドポイント (IN と OUT) を持つ HID インターフェイスがあります。