1

我正在尝试在 Android 和控制器之间进行通信。我想请教如何配置消息,因为我见过不同的方式,但我不知道为什么每种方式。我想以 32 个字节将消息从 Android 发送到控制器。我有这个代码:

private void sendData(){

    int baudRate = 115200;
    byte stopBitsByte = 1;
    byte parityBitesByte = 0;
    byte dataBits = 32;
    byte[] msg = {
            (byte) (baudRate & 0xff),
            (byte) ((baudRate >> 8) & 0xff),
            (byte) ((baudRate >> 16) & 0xff),
            (byte) ((baudRate >> 24) & 0xff),
            stopBitsByte,
            parityBitesByte,
            (byte) dataBits
    };

    deviceConnection.controlTransfer(UsbConstants.USB_TYPE_CLASS | 0x01, 0x20, 0, 0, msg, msg.length,5000);
    deviceConnection.controlTransfer(UsbConstants.USB_TYPE_CLASS | 0x01, 0x22, 0x1, 0, null, 0, 0);
}

我非常清楚的另一件事是消息是如何从控制器接收到 Android 的。为此,我有以下代码:

private void receiveData(){

    int bufferMaxLength=epIN.getMaxPacketSize();
    ByteBuffer mBuffer = ByteBuffer.allocate(bufferMaxLength);
    UsbRequest inRequest = new UsbRequest();
    inRequest.initialize(deviceConnection, epIN);

    while(inRequest.queue(mBuffer, bufferMaxLength) == true) {
        deviceConnection.requestWait();
    }
}

PS:我是第一次使用 UsbDevice、UsbManager、USBInterface、UsbEndpoint、UsbDeviceConnection、UsbRequest 还是 UsbConstants。

PS2:提供代码用于从 Android Arduino 发送和接收消息,反之亦然。

4

0 回答 0