Android UsbConnection.bulkTransfer() работает, но UsbConnection.controlTransfer всегда возвращает -1
Я отправляю информацию на Arduino Nano с устройства Android. bulkTransfer
возвращает правильное значение (длина передаваемых данных), но Arduino получает странные значения. Я думаю, это потому, что скорость передачи Arduino (9600) отличается от скорости передачи, которую передает Android, но я не могу найти способ узнать, какое это значение.
Поэтому я попытался позвонить controlTransfer
установить скорость передачи в Android, но controlTransfer всегда возвращает -1. Я не понимаю почему bulkTransfer
работает но controlTransfer
выходит из строя.
Я использую этот код:
public int sendData(byte[] nbyte) throws IOException, NullPointerException {
if(nbyte == null) throw new NullPointerException("nbyte cannot be null");
int result = this.usbDeviceConnection.controlTransfer(0x40, 0, 0, 0, null, 0, 0);// reset
result = this.usbDeviceConnection.controlTransfer(0x40, 0, 1, 0, null, 0, 0);// clear Rx
result = this.usbDeviceConnection.controlTransfer(0x40, 0, 2, 0, null, 0, 0);// clear Tx
result = this.usbDeviceConnection.controlTransfer(0x40, 0x03, 0x4138, 0, null, 0, 0);
int len = this.usbDeviceConnection.bulkTransfer(this.usbEndpoint, nbyte, nbyte.length, 5000);
if(len == -1) throw new IOException("Bulktransfer failed");
return len;
}