HID USB-устройство - отправка и получение данных - PullRequest
0 голосов
/ 21 мая 2018

Я хочу получить данные от антенны, подключенной к устройству Android через кабель OTG.Я уже установил соединение и выбрал нужные конечные точки для отправки и получения данных.Проблема со связью, мне нужно отправить 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-байтовые данные и получать ответ одинаковой длины?Я не могу использовать, например.https://github.com/felHR85/UsbSerial, поскольку мое USB-устройство не поддерживается.

...