HID Arduino 与 Android 之间的两种通讯方式(controlTransfer)

问题描述 投票:0回答:1

我想在 leonardo 和 Android 平板电脑(充当主机)之间进行 2 路(输入和输出)HID 通信。在 leonardo 上,我使用 Nicohood HID 项目 我已经成功地使代码在 Linux、Windows 和 MacO 上运行,所以这是可能的。

使用纯android实现,我只能从leonardo接收数据,但不能发送给它......

从我在描述符中看到的,数据是使用特定端点从设备(IN 方向)发送的。对于另一种方式(OUT,到设备),我们必须使用控制端点。

尽管如此,它不适用于Android。这是我使用的代码:

UsbDeviceConnection mUsbConnection = mUsbManager.openDevice(myDevice);
byte data[] = {7, 11, 13, 17};
int resOut = mUsbConnection.controlTransfer(0x21, 9, 200, 2, data, data.length, 50);

 // => resOut value is always -1 (didn't succeed to communicate)

对于参数,我使用了这个问题的答案:使用Android与USB HID设备通信并查看了linux上的libusb / nicohood hid通信示例...

不幸的是,我尝试将值从“200”更改为“0”或将索引从0更改为1或2,但我真的不知道它们的意思,而且它并没有真正帮助......

如何使用 android 的控制端点将数据发送到设备?

PS:我可以从设备读取HID消息,所以这不是权限问题。

android arduino usb hid libusb
1个回答
0
投票

你如何在电脑上发送arduino数据??? 抱歉,我对你的问题没有用,但我只是感兴趣

© www.soinside.com 2019 - 2024. All rights reserved.