Отключите USB-устройство без отсоединения и повторного подключения

576
Sambir

У меня есть ИРТОЙ, купленный у опасных прототипов. Я запускаю его в Windows 7 x64 с WinLirc 0.9c. Но иногда устройства просто неожиданно зависают, и мне нужно удалить и снова подключить его, чтобы он снова заработал. Отключение и включение com-порта в диспетчере устройств часто приводит к появлению сообщения об ошибке с окнами о том, что устройство не может быть активировано.

Так что это похоже на аппаратную проблему, связанную с IRTOY. Сейчас я ищу устройство для отключения питания через USB. Он должен быть в состоянии отключить питание устройства удаленно. Это может фактически имитировать физическое удаление устройства из порта USB, как реле с разъемами USB мужского и женского пола.

Есть ли решение этой проблемы?

1
Если вы отключите устройство из «Управления устройствами» и включите его снова, оно решит проблему? Если это так, вы можете создать скрипт powershell, чтобы отключить и включить устройство arieljannai 6 лет назад 0
Это не. Устройство зависает и нуждается в отключении питания, чтобы снова работать Sambir 6 лет назад 0
@Sambir Что такое ИРТОЙ? ds_secret 6 лет назад 0

1 ответ на вопрос

0
Ale..chenski

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

Одним из решений для переключения питания VBUS с помощью программного обеспечения является использование USB-концентратора с переключаемыми контроллерами питания портов (их обычно сложно найти, но все же проще, чем найти системную плату ПК с контроллерами питания портов). Затем вам нужно выполнить ClearPortFeature (PORT_POWER) для порта с подключенным IRTOY, а затем SetPortFeature (PORT_POWER).

Как именно это сделать из пространства приложения, я не уверен, но бесплатный просмотрщик USB-устройств (от Uwe Sieber ) может отключать и включать порт VBUS, используя всплывающую опцию «Перезагрузить устройство». Имейте в виду, что к USB-порту обычно подключен значительный конденсатор, поэтому для прокачки VBUS может потребоваться некоторое время, поэтому команды «Очистить» и «Установить» должны быть правильно разделены во времени. К сожалению, USBTreeView делает это слишком быстро. Кроме того, вы можете перезапустить весь концентратор, для отключения VBUS на его нисходящих портах требуется достаточно много времени.

Если у Уве нет открытого исходного кода, вам нужно перейти в Microsoft SDK для получения основного исходного кода USBView и выяснить, как выдавать команды отключения / включения порта для драйвера.