Как программно отключить и повторно включить произвольное USB-устройство?

В Java все находится в форме класса.

Если вы хотите использовать любой объект, тогда у вас есть две фазы:

  1. Объявить
  2. Инициализация

Пример:

  • Объявление: Object a;
  • Инициализация: a=new Object();

То же самое для концепции массива

  • Объявление: Item i[]=new Item[5];
  • Инициализация: i[0]=new Item();

Если вы не дают секцию инициализации, тогда возникает NullpointerException.

34
задан Peter Mortensen 27 November 2014 в 10:04
поделиться

11 ответов

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

-1
ответ дан Community 27 November 2019 в 17:16
поделиться

В Извлекаются, диски USB с помощью C# ( Проект Кода) ищут это:

функция CM_Request_Device_Eject

Это - функция SetupApi, которая извлекает устройство (любое устройство, которое может быть извлечено). Это берет описатель экземпляра устройства (или devInst), как введено...

-1
ответ дан Peter Mortensen 27 November 2019 в 17:16
поделиться

Само устройство может делать это (т.е., для выполнения USB разъединяют/повторно подключают последовательность).

Вы связались с производителем устройств, или если Вы - производитель, EE, который разработал его?

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

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

, Если ничто иное, Phidget имеет USB управляемые релейные платы, которые можно использовать для соединения питания или самих строк USB к концентраторам или отдельным устройствам.

-Adam

0
ответ дан Adam Davis 27 November 2019 в 17:16
поделиться

Мы использовали это к программируемым USB-устройствам разъединения.

0
ответ дан Ilya 27 November 2019 в 17:16
поделиться

Если у Вас есть больше чем один из них на какой-либо конкретной хост-машине, Вы могли бы сэкономить некоторое время путем включения их в их собственный специализированный концентратор USB из машины - по крайней мере, это - только один кабель для отключения/включения для перезапуска нескольких устройств за один раз.

Вы, вероятно, думали об этом, конечно.:-)

0
ответ дан robsoft 27 November 2019 в 17:16
поделиться

Я посмотрел на это для автоматизированных тестов. Лучшее решение, которое мы предложили, кажется, способность концентраторов USB отключить устройства, когда они потребляют слишком много энергии. От USB pserspective, кажется, что хост USB может дать концентратору команду делать так. С 12 устройствами у Вас будут концентраторы, таким образом, я предложил бы исследовать тот путь.

1
ответ дан MSalters 27 November 2019 в 17:16
поделиться

Мысль: под Диспетчером устройств можно щелкнуть правой кнопкой значку компьютера (вершина дерева устройств), и "сканируют для изменений". Я не на 100% уверен, но я думаю, "извлекаете" ли Вы USB-устройство (программное обеспечение "отключают" эквивалентный), затем Сканирование для Изменений аппаратной конфигурации, оно обнаружится назад даже при том, что оно никогда на самом деле оставило порт.

, Если я прав относительно этого, Вы смогли использовать Microsoft. Win32. Класс Shell для эмуляции открытия Control Panel-> Administrative Tools-> Device Manager и выполнение объекта контекстного меню. Это стоит того, чтобы попытаться, так или иначе.

2
ответ дан Coderer 27 November 2019 в 17:16
поделиться

Как сказал Greg Hewgill , я не думаю, что это возможно.

Инициирование целого запуска usb инициировано ведомым устройством usb (в Вашем случае Ваше устройство). Хост usb (ПК) может отправить сообщение на устройство, чтобы сказать ему закрываться, но как только это сделано, что это до устройства для отшатываний снова. Хост не может вызвать его к.

Для усугубления положения Вы вполне возможно найдете, что USB-устройство обнаруживает вставляемый разъем (путем обнаружения напряжения usb на линиях питания) для запуска. Это особенно верно для приводимых в действие устройств шины.

<час>

Это кажется, что существуют различия от Вашей ситуации и случая попытки размонтировать/повторно монтировать карты памяти. Когда карта памяти размонтирована нет никакой причины, что это не может остаться перечислимым на ПК. Вы на самом деле не сбрасываете карту памяти, просто делая это - неактивная файловая система.

1
ответ дан Community 27 November 2019 в 17:16
поделиться

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

3
ответ дан Greg Hewgill 27 November 2019 в 17:16
поделиться

Что относительно того, чтобы использовать Devcon.exe, чтобы "удалить" и затем "повторно просканировать"?

DR

9
ответ дан 27 November 2019 в 17:16
поделиться

Некоторое время назад мне пришлось сделать это для моего автомобильного компьютерного проекта. Драйверы сенсорного экрана не любили переходить в спящий режим, и их нужно было повторно подключать, когда компьютер возвращался из спящего режима. В конечном итоге я решил это использовать с помощью Devcon.exe, как предлагал DigitalRacer. Однако хитрость заключалась в том, что удаление / повторное сканирование на контроллере не работало. Мне пришлось выполнить удаление / повторное сканирование на концентраторе выше по потоку от устройства (который впоследствии отключил все подключенные устройства).

1
ответ дан 27 November 2019 в 17:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: