USB中断传输丢失数据

时间:2016-05-03 20:45:28

标签: android usb interrupt hid

因为几天我处理混乱的USB问题。我的Android(4.2)应用程序应该连接USB设备,使用USB HID中断协议发送/接收数据。从Android到设备的数据发送工作完美,但我收到适当的数据时遇到了很多问题。主要应用基于3个任务:主任务(UI),USB接收任务和USB传输任务。 USB的任务有单独的队列来插入接收数据(接收器)或获取来自主任务的发送(发送者)数据。我试图嗅探通过USB传输的数据(使用Android虚拟机和Windows USB分析器),一切看起来都不错,但Android只接收零(有时会收到另一个预期值)。

这是我的读写代码 - 两者都在单独的Runnable实例中运行:

public boolean writeRawData(UsbDeviceConnection connection, UsbRequest request, ByteBuffer buffer, int bufsize)
{
    if (request.queue(buffer, bufsize) == true)
    {
        return true;
    }
    return false;
}


public ByteBuffer readRawData(UsbDeviceConnection connection, UsbRequest request, ByteBuffer buffer, int bufsize)
{
        if (request.queue(buffer, bufsize) == true)
        {
            if (connection.requestWait() == request)
            {
               //deal with received data -> almost always wrong!
            }
        }
    return null;
} 

0 个答案:

没有答案