我正在尝试使用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设备的编程很新,所以我可能搞砸了一些非常微不足道的事情。任何帮助表示赞赏。