libusb LIBUSB_ERROR_IO при передаче
Я запускаю программу ниже, которая возвращает код ошибки (-1, LIBUSB_ERROR_IO, Bytes sent: 0) при попытке передать данные. Я использую библиотеку libusb-1.0.
#include <stdio.h>
#include "inc/libusb.h"
int main(void) {
libusb_device_handle *dev_handle;
unsigned char buf[5] = {0x04, 0x00, 0x06, 0x06, 0x00};
int r, bytes_sent = 0;
if(libusb_init(NULL)) return 1;
dev_handle = libusb_open_device_with_vid_pid(NULL, 0x1b1c, 0x0c04);
libusb_claim_interface(dev_handle, 0);
r = libusb_interrupt_transfer(dev_handle, 0x81, buf, 5, &bytes_sent, 0);
printf("Return code: %d\nBytes sent: %d\n", r, bytes_sent);
libusb_release_interface(dev_handle, 0);
libusb_close(dev_handle);
libusb_exit(NULL);
return 0;
}
Кроме того, я не уверен, что использую правильный адрес конечной точки. Вот некоторые изображения из usbview: http://i.imgur.com/4FFaOkq.png, http://i.imgur.com/B9cEoV6.png. Первый показывает устройство, с которым я пытаюсь связаться. Поскольку в первом изображении от устройства предоставляется не так много информации, я использую информацию из второго изображения. Я прав, предполагая, что мне нужно использовать прерывание связи с этим устройством, судя по типу передачи, под дескриптором конечной точки?
Наконец, возможно ли, что libusb может не подходить для связи с конкретным устройством, и мне нужно использовать другую библиотеку?(Например, hidapi)