HID usb设备 - 发送和接收数据

时间:2018-05-21 15:06:50

标签: android usb hid

我想通过otg cable从天线连接到Android设备获取数据。我已经建立连接选择正确的端点来发送和接收数据。问题在于通信,我必须发送65个字节的数据,但是端点只允许64个,当我尝试发送65时,它会在1/2发送/读取请求后卡住。

private lateinit var connection: UsbDeviceConnection
private lateinit var usbEndpointZero: UsbEndpoint
private lateinit var usbEndpointOne: UsbEndpoint

override fun sendUsbPacket(data: ByteArray): Boolean {
    synchronized(connection) {
        connection.claimInterface(usbInterface, FORCE_INTERFACE)
        val value = connection.bulkTransfer(usbEndpointOne, data, data.size/*usbEndpointOne.maxPacketSize*/, 0)
        connection.releaseInterface(usbInterface)
        return viewModel.getDeviceConnectedObservable().value ?: false
    }
}


override fun receiveUsbPacket(data: ByteArray): Boolean {
    synchronized(connection) {
        connection.claimInterface(usbInterface, FORCE_INTERFACE)
        val value = connection.bulkTransfer(usbEndpointZero, data, data.size/*usbEndpointZero.maxPacketSize*/, 0)
        connection.releaseInterface(usbInterface)
        return viewModel.getDeviceConnectedObservable().value ?: false
    }
}

我该怎么做才能发送65个字节的数据并接收相同长度的响应?我不能用eg。 https://github.com/felHR85/UsbSerial因为我的USB设备不受支持。

0 个答案:

没有答案