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)

0 ответов

Другие вопросы по тегам