Androidにおけるusbデータ通信速度の遅い問題の解決方法
Androidとチップを使ってusb通信を通じて、遅延があることを発見して、最高50 ms、更に高いデータの損失があって、ネット上の解決方法:
このfifoを増やしたバッファは
https://stackoverflow.com/questions/9405710/android-losing-incoming-hi-speed-usb-data
これはusbrequestで
UsbRequest.queue(..)100%故障なく働いていますか?私もその問題にぶつかった. - support_ms 2016年3月4日11:17
UsbRequest APIを使用して、大量のusbトラフィックを持つプロジェクトを作成しました.私はデータの紛失に対してクレームを出したことがありません.でも、私はUsbRequestしか使っていないのを覚えています.queue(..)を使用してデータを転送します.データを送信するために、1秒タイムアウトした同期APIを使用しました.UsbRequestを使用します.queue(..)場合は、キューに挿入したリクエストがキューから受信したリクエストと同じであることを確認してください.また、読み取りをブロックする電話ごとに新しいリクエストを作成しました.-Pablo Valdes 2016年3月5日17:38 https://stackoverflow.com/questions/9108548/android-usb-host-bulktransfer-is-losing-data
この輪訓は命令を下した.
私が同じことをしている間に、このようなものを使って本当に私を助けてくれて、私はあなたが何らかのタイプのwhileサイクルをしなければならないことに気づきました.
私のデバイスに対して、私は64バイトのパケットを送って、パケットは2つの制御バイトと62のデータになるので、私の伝送に対して、私は似たようなことをしなければなりません.
これらの線は私にとってとても役に立ち、私は完全に同じ問題を持っています.これが私がそれを修復する方法です.必要であれば、もっと情報を提供します.ただコメント:).これは私にとって本当にがっかりしていることを知っています.Acer Iconia A 500とAndroid 4.0.3を使いますちなみに
https://stackoverflow.com/questions/10889461/android-usb-host-api-bulk-transfer-buffer-size?noredirect=1&lq=1
【androidのUSB通信】androidのUSBデータ転送
これは4つの総伝送方式があるが、それに対応する説明はない.
https://blog.csdn.net/ariesuk/article/details/69383577
このコードは転送を中断しますか?
このfifoを増やしたバッファは
https://stackoverflow.com/questions/9405710/android-losing-incoming-hi-speed-usb-data
これはusbrequestで
UsbRequest.queue(..)100%故障なく働いていますか?私もその問題にぶつかった. - support_ms 2016年3月4日11:17
UsbRequest APIを使用して、大量のusbトラフィックを持つプロジェクトを作成しました.私はデータの紛失に対してクレームを出したことがありません.でも、私はUsbRequestしか使っていないのを覚えています.queue(..)を使用してデータを転送します.データを送信するために、1秒タイムアウトした同期APIを使用しました.UsbRequestを使用します.queue(..)場合は、キューに挿入したリクエストがキューから受信したリクエストと同じであることを確認してください.また、読み取りをブロックする電話ごとに新しいリクエストを作成しました.-Pablo Valdes 2016年3月5日17:38
この輪訓は命令を下した.
私が同じことをしている間に、このようなものを使って本当に私を助けてくれて、私はあなたが何らかのタイプのwhileサイクルをしなければならないことに気づきました.
私のデバイスに対して、私は64バイトのパケットを送って、パケットは2つの制御バイトと62のデータになるので、私の伝送に対して、私は似たようなことをしなければなりません.
StringBuilder sb = new StringBuilder(); while(bulkTransfer(UsbEndpoint endpoint, byte[] buffer, int length, int timeout) > 2){ for(int i = 2; i < buffer.length(); i++){ sb.append((char) buffer[i]); } }
これらの線は私にとってとても役に立ち、私は完全に同じ問題を持っています.これが私がそれを修復する方法です.必要であれば、もっと情報を提供します.ただコメント:).これは私にとって本当にがっかりしていることを知っています.Acer Iconia A 500とAndroid 4.0.3を使いますちなみに
https://stackoverflow.com/questions/10889461/android-usb-host-api-bulk-transfer-buffer-size?noredirect=1&lq=1
【androidのUSB通信】androidのUSBデータ転送
これは4つの総伝送方式があるが、それに対応する説明はない.
https://blog.csdn.net/ariesuk/article/details/69383577
このコードは転送を中断しますか?
mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 1) { // 1 means send a 64 bytes array in msg.obj
ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE);
final byte[] array = (byte[]) msg.obj;
buffer.clear();
buffer.put( array );
UsbRequest outRequest = new UsbRequest();
outRequest.initialize(mUsbConnection, mUsbEndpointOut);
outRequest.queue(buffer, BUFFER_SIZE);
Log.d(L.TAG, "Queueing request:"+outRequest);
// don't do a mConnection.requestWait() here, ReceiveThread is already listening
} else if (msg.what == 2) { // 2 means exit
Log.d(L.TAG, "SenderThread::handleMessage(): terminate");
Looper.myLooper().quit();
} else {
Log.e(L.TAG, "SenderThread::handleMessage(): unknow message type: " + msg.what);
}
}
};