我正在尝试在 Xubuntu 12.04 上使用 libusb 和 libhid 将数据发送到 Measurement Computing 1208FS 设备。我已成功识别设备及其端点,并设法为我的程序声明接口。
当我尝试使用 hid_interrupt_write() 或 libusb_interrupt_transfer() 写入端点时,我收到一条错误消息“设备或资源忙”。当设备连接到驱动程序时,通常似乎会发生此错误,但我认为这不是我的问题,因为我已设法分离驱动程序。
这是我目前使用 0x83 作为我要与之通信的端点的代码片段:
void SendToUSB(int value, HIDInterface* hid)
{
hid_return ret;
char packet[] = {value};
unsigned int timeout = 1000;
ret = hid_interrupt_write(hid, 0x83, packet, 1, timeout);
if (ret == HID_RET_SUCCESS) printf("SUCCESS calling hid_interrupt_write\n");
else printf("FAILURE calling hid_interrupt_write(): %s\n", strerror(errno));
}
我对 USB 设备编程相当陌生,所以我可能把一些非常琐碎的事情搞砸了。任何帮助表示赞赏。