Я хочу получить данные от антенны, подключенной к устройству 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-устройство не поддерживается.