У меня есть устройство, с которым я могу общаться с помощью libusb без проблем. Проблема заключается в том, что у этого устройства есть пути кода, которые при отправке определенных пакетов данных приводят к повторному перечислению устройства на шине.
После такого события я обнаружил, что libusb неправильно обрабатываетв этом случае, или, возможно, I неправильно обрабатывает его. Наблюдаемое поведение состоит в том, что на шине будет N + 1 устройств, где N было числом устройств до отправки пакета сброса. Два экземпляра в списке устройств будут указывать на одно и то же устройство, но только на одноиз них будут действительны;Я пытался просто использовать libusb_reset_device
, но также возвращает неверный дескриптор (обратите внимание, что не возвращает LIBUSB_ERROR_NOT_FOUND
, как указано в документах .
В той степени, в которой это актуально, я думаю, устройство выдает только событие "мягкого отключения". Я не знаком с близостью USB, это можно обнаружить в программном обеспечении?
Какие у меня есть варианты с libusb, кроме полного разрыва и повторной инициализации (например, libusb_exit/libusb_init
- это DOES работает). Я пытался убедиться, что текущее устройство было undef'd достаточно, ноэто не похоже на работу.