Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 15.09.2020
Сообщений: 18

Как пересбросить USB порт

15.09.2020, 07:20. Показов 1482. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть проблема - у меня плохой USB-порт и в него вставлено устройство, постоянно пропадает контакт (это - USB данные, а не питание). Устройство начинает генерировать ошибки, пока его не переустановить (отключить питание).
Надо программно пересбросить порт (включить и выключить питание).
ОС - Windows (часто), Linux (реже). Устройство - 3G модем (после пересброса надо перезванивать).
Как это сделать?
Понимаю, тема без наработок, давайте пожалуйста информацию, возможно наработки появятся по обсуждению.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.09.2020, 07:20
Ответы с готовыми решениями:

USB порт
Вопрос- есть устройство USB (сотовый телефон) которое при установке драйверов не создает виртуальный ком порт. Видно только как USB device....

Подключение миши через USB порт
Всем доброго времени суток. Не могли бы Вы помочь с программой. Условие звучит так: подключаем мышь в USB порт, если подключение произошло,...

Передача данных из редактора на порт USB
Доброго времени суток, я написал в C++ Builder (не без помощи данного форума к слову) текстовый редактор который читает программы для...

9
Эксперт .NET
 Аватар для Rius
13089 / 7649 / 1671
Регистрация: 25.05.2015
Сообщений: 23,291
Записей в блоге: 14
15.09.2020, 07:22
Попробуйте прогу usbdeview.

Коннектор порта можно заменить, если руки прямые.
1
1 / 1 / 0
Регистрация: 15.09.2020
Сообщений: 18
15.09.2020, 07:29  [ТС]
Rius, спасибо скачал.
Есть вопрос. Она точно отключает питание или данные?

Добавлено через 4 минуты
Rius, проверил при отключении порта в программе, продолжает мигать лампочка на модеме (питание есть). Значит, только данные.
Цитата Сообщение от Rius Посмотреть сообщение
Коннектор порта можно заменить, если руки прямые.
Нет, коннектор порта нельзя заменить. Руки не прямые и паяльного оборудования нет.
0
Эксперт .NET
 Аватар для Rius
13089 / 7649 / 1671
Регистрация: 25.05.2015
Сообщений: 23,291
Записей в блоге: 14
15.09.2020, 07:30
Цитата Сообщение от VVDDD Посмотреть сообщение
Есть вопрос. Она точно отключает питание или данные?
Устройство перезапускает. Каким образом - не знаю. Попробуйте.
0
1 / 1 / 0
Регистрация: 15.09.2020
Сообщений: 18
15.09.2020, 07:47  [ТС]
Rius, спасибо буду пробовать. Останется как вариант если ниче не выйдет.
А можно ли все же переподключить именно питание? Вот в диспетчере устройств я могу отключить устройство так, что на нем пропадает питание (этого я в программе usbdeview сделать не смог, все перепробовал). Но вот диспетчером устройств я не могу назад включить его, пока не перевставлю. А как перевставлю, оно подключается автоматически.

Добавлено через 1 минуту
Только что опять пропал модем не мог подключится. Использовал Reload USB Hub и подключилось, может проблема не с питанием а с данными.

Добавлено через 3 минуты
Вот такое еще на гитхабе нашел:
https://github.com/ralight/usb... sb-reset.c
0
1 / 1 / 0
Регистрация: 15.09.2020
Сообщений: 18
17.09.2020, 02:49  [ТС]
Кто пожаловался на тему признавайтесь.
А проблему в общем я так и не решил. Я не программист, в общем и я не хочу влазить во всякие дебри и длиннокоды для решения такой задачи.
Мне нужен API какой то для работы с портами, а дальше я должен вызвать краткую функцию.
Типа API
https://libusb.info/
http://libusb.sourceforge.net/... b_api.html
Я немного неумелый (и мне лень искать) есть ли там функции именно для отключения питания? Как я написал выше, есть ссылка
https://github.com/ralight/usb... sb-reset.c
и там есть функции перезагрузки порта, но мне надо не перезагрузка, а отключение питания.
Отключение питание - оно же безопасное извлечение устройства отключает питание, но не видит устройство вновь до пере подключения. Народ ну скажите, ну неужели программно можно выключить питание а также само включить нельзя?
Даже как безопасно извлекать устройство из C++ не видел. наверное, надо использовать Windows напрямую без всякого API, вызывать окно, потом искать имя окна брать HWND и посылать сообщения о извлечении. Но опять же как назад вернуть без вытаскивания - ни с++, ни Windows не может...

Добавлено через 56 минут
Для виндовс:
https://it.wikireading.ru/53057
"

Безопасное извлечение USB-устройств

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

Самый первый и легкий способ — это зайти в Мой компьютер, щелкнуть правой кнопкой по нужному устройству и выбрать команду Извлечь. Но бывает так, что значок Безопасное извлечение устройства исчез, в контекстном меню ничего нет. Что же делать?

А выход довольно прост — самим создать такой значок. Делается это довольно просто. Создаем обычный текстовый файл и вводим в него следующее: rundll32 shell32.dll,Control_RunDLL hotplug.dll. Теперь осталось сохранить этот текст как BAT-файл. Жмем Ctrl+S и в качестве имени вводим, допустим, disk_eject.bat. Расположите файл в удобном вам месте и, при необходимости, просто запускайте его двойным щелчком."
Т.е. как я понял, надо копать в сторону hotplug.dll

Добавлено через 4 минуты
Нашел тут же новое из API:
https://github.com/johnelse/li... otplug.cpp
Оказывается, libusb умеет извлекать устройство (отключать питание). Теперь осталось найти, как же его включить опять.
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
17.09.2020, 12:25
Цитата Сообщение от VVDDD Посмотреть сообщение
Нет, коннектор порта нельзя заменить. Руки не прямые и паяльного оборудования нет.
Наш сервисный центр ждет Вас ... <тут реклама сервиса>

Цитата Сообщение от VVDDD Посмотреть сообщение
Даже как безопасно извлекать устройство из C++ не видел. наверное, надо использовать Windows напрямую без всякого API,
Вроде как в разделах С++Builder обсуждалось такое (там все равно на основе WinApi)

Добавлено через 1 минуту
Цитата Сообщение от VVDDD Посмотреть сообщение
Теперь осталось найти, как же его включить опять.
Что-то мне подсказывает что навряд ли есть такая возможность.
0
1 / 1 / 0
Регистрация: 15.09.2020
Сообщений: 18
20.09.2020, 05:13  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Что-то мне подсказывает что навряд ли есть такая возможность.
сомнительно... я где то видел программу, работающую с мс-дос для управления питания диска, правда жесткого, но USB тоже должно быть управление питанием, где то в биосе
0
Эксперт .NET
 Аватар для Rius
13089 / 7649 / 1671
Регистрация: 25.05.2015
Сообщений: 23,291
Записей в блоге: 14
20.09.2020, 06:35
Сомнительно - это проводить соответствие между дисками под досом и usb под виндой.
У дисков это тоже просто спящий режим. Как usb suspend.
Реле поставьте и всё : https://github.com/riuson/usb-relay-hid
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
20.09.2020, 09:37
Кстати можно и самому сделать на Arduino
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.09.2020, 09:37
Помогаю со студенческими работами здесь

Взаимодействие с устройством через usb порт
Добрый день! Есть принтер Kyocera fs4100 DN Есть программа от производителя status monitor, Которая показывает состояние принтера и...

Как отключить и включить USB порт через КС чтобы перезагрузить USB модем?
Добрый день. Нужен бат файл который будет отключать USB порт USB модема. Это можно сделать в ручную Через Диспетчер устройств, но нужно...

Как узнать напряжение на D- USB кабеля, который подключен в USB порт компьютера?
У меня есть небольшое устройство, которое выдаёт не больше 5В 500mA, каким образом на компьютере можно узнать напряжение на D- usb кабеля? ...

как настроить USB порт
как настроить USB порт потомушо когда я включаю флешку то у меня пишит в нижнем углу слева что ето обородывание может работать быстрее и...

Как открыть USB порт ?
Как открыть USB порт на ПК не имея при этом не каких прав


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru