сбой выполнения для приложения на скрытом устройстве - PullRequest
1 голос
/ 30 октября 2019

Я очень новичок в программировании USB-устройств, поэтому, пожалуйста, примите мои извинения, если вопрос тупой.

У меня есть простое USB-устройство (это устройство с фильтром), которое я хочу использовать во встроенномприменение. Поставщик предоставил мне исходный код переменного тока, который работает на основе хидапи. Сначала я пытаюсь запустить простое приложение на компьютере с Linux. Я могу успешно построить проект, но когда я запускаю проект, он заканчивается на шаге перечисления со значением et -1.

Устройство подключено к моему компьютеру. Я совершенно заблудился, что мне следует сделать, чтобы он идентифицировал устройство. Любые предложения будут очень признательны

Я не знаю, какую информацию я могу добавить сюда, приложение выглядит так:

int main()
{
    hsfw_wheel_info *devs, *cur_dev;
    devs = enumerate_wheels();
    cur_dev = devs;
    while (cur_dev) {
        printf("Device Found - type: %04hx %04hx serial_number: %ls\n",cur_dev->vendor_id, cur_dev->product_id, cur_dev->serial_number);

        cur_dev = cur_dev->next;
    }

enumerate_wheels - это функция, которая использует hid_enumerate.

Спасибо

1 Ответ

0 голосов
/ 07 ноября 2019

Спасибо @shellter. Я перешел с hid.c, который использует libusb, на тот, что для родного linux, и прошел этап перечисления. Теперь не удается открыть устройство (/ dev / hidraw0). Вызов open (path, 0_RDWR) не открывает устройство.

Я полагаю, это проблема с правами доступа? Я прочитал несколько сообщений, которые я должен исправить с помощью setuid. Как мне изменить это разрешение для программы, которая в какой-то момент должна взаимодействовать со скрытым устройством? Есть ли переменная окружения, которую я могу установить?

Большое спасибо.

...