Libusb Показать новое устройство

во-первых, я должен сказать, что я новичок в libusb. У меня есть USB-устройство, и я пишу код для этого устройства в Linux. В моем коде я показываю производителя устройства и идентификатор продукта. После этого я отправляю данные с хоста на устройство. Как и ожидалось, идентификатор продукта меняется. После этого изменения я хочу снова отобразить производителя устройства и идентификатор продукта. Несмотря на то, что я вижу новый идентификатор продукта, когда пишу lsusb в терминале, я не могу отобразить код. Но я могу отобразить при следующем запуске программы. Поток кода нравится ниже:

  struct    libusb_device_handle     *devh    = NULL;
libusb_device                **devs;
libusb_device                **devs2;
libusb_context               *context1 = NULL;
libusb_context               *context2 = NULL;
libusb_config_descriptor *config;

libusb_init(&context1);

libusb_set_debug(context1,3);

counter = libusb_get_device_list(context1,&devs);

printf("Devices in List.\n");
ssize_t i;

for(i = 0; i < counter; i++) printdev(devs[i]); // display function is printdev

После этого я отправляю данные, и идентификатор продукта меняется вместе с этими данными. После этого изменения я хочу отобразить новый список устройств, и для этого, прежде всего, я освобождаю список устройств и закрываю сеанс.

libusb_free_device_list(devs,1);
libusb_exit(context1);

После закрытия сеанса я инициализирую новый сеанс и хочу получить новый список устройств. Для этого я делаю это:

 libusb_init(&context2);
counter = libusb_get_device_list(context2,&devs2);
for(i = 0; i < counter ; i++) printdev(devs2[i]);

Но я не могу отобразить новый список устройств. Я могу отобразить старый список устройств. Только я могу отобразить список новых устройств, снова запустив программу. Также я могу отобразить изменение с помощью lsusb после первого изменения идентификатора продукта.

Я не знаю, в чем проблема.

Спасибо за вашу помощь.

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]