Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/46: Рейтинг темы: голосов - 46, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 86

Определить имя устройства на com порту

06.02.2018, 13:38. Показов 9771. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
есть считывающее устройство, поставил на него драйвера для создания виртуального com порта в диспетчере устройств определяется, как на скриншоте, а через WMI не видно этого устройства. Кто знает что может быть? Если через программу создать виртуальный com порт - то через WMI видно.
Миниатюры
Определить имя устройства на com порту  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.02.2018, 13:38
Ответы с готовыми решениями:

Как получить имя подключенного к порту устройства?
Ребят, как получить имя подключенного к порту устройства? К примеру "Cino FuzzyScan USB Virtual COM Port", все перерыл и нифига не...

Определить по порту имя программы
Всем добра. Как мне определить программу по порту на своем ПК? Вожу в TextBox1 порт (заранее уже известно что он открыт) жму кнопку и...

Цикличестий опрос устройства на COM порту
Доброго времени суток! Пишу программу для опроса контроллера к которому подключены датчики. Опрос датчиков нужно производить циклично но...

16
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
06.02.2018, 15:31
Попробуйте запрос WMI переделать
C#
1
2
3
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_PnPEntity where ClassGuid = '{4D36E978-E325-11CE-BFC1-08002BE10318}'"))
{
  ...
А вообще, очень рекомендую от WMI отказаться.
Список COM портов
0
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 86
07.02.2018, 06:24  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
А вообще, очень рекомендую от WMI отказаться.
Список COM портов
Почему?
Лучше из реестра вытягивать информацию?

Добавлено через 14 минут
Через реестр я пробовал, но там же нет данных о имени устройства
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
07.02.2018, 06:30
Лучший ответ Сообщение было отмечено Usaga как решение

Решение

Цитата Сообщение от deskindom3 Посмотреть сообщение
Почему?
Информация получается слишком долго.
Первое чтение: WMI - 500мс, SetupAPI - 12 мс;
Повторы: WMI - 237мс, SetupAPI - 0 мс.
При одном порту это не заметно, при десятке - просто жесть.
Информация в WMI может быть повреждена при кривых драйверах, отчего её чтение приведёт к падению программы. А где ловить ошибку будет не понятно, пока сами не увидите.
Цитата Сообщение от deskindom3 Посмотреть сообщение
Лучше из реестра вытягивать информацию?
Реестр не всегда содержит корректную и актуальную информацию.
По ссылке либа есть, освойте её. Там куча способов получения списка портов.
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
07.02.2018, 06:37
Вот вам демка упомянутых двух способов.
Вложения
Тип файла: zip SerialPorts.zip (8.3 Кб, 268 просмотров)
0
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 86
07.02.2018, 06:53  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Реестр не всегда содержит корректную и актуальную информацию.
По ссылке либа есть, освойте её. Там куча способов получения списка портов.
Но мне то нужно получить зная имя устройства получить имя порта , на котором это устройство
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
07.02.2018, 07:10
Цитата Сообщение от deskindom3 Посмотреть сообщение
Но мне то нужно получить зная имя устройства получить имя порта , на котором это устройство
Ну и что?)
Вообще в случае с COM-портами это делается рассылкой запросов на все доступные порты и обработкой ответов.
А то, что вы делаете, это поиск порта (не устройства) по его описанию. Только в вашем случае это совпало, что, видимо, мост USB-UART находится внутри устройства.
  1. WMI не единственное средство получения описания COM-порта.
  2. Второе - SetupAPI, демка приложена постом выше.
  3. Третье - devcon (Windows Device Console)
    Windows Batch file
    1
    2
    3
    4
    5
    
    c:\Program Files (x86)\Intel\Bluetooth\utilities>devcon find =ports
    USB\VID_10C4&PID_EA60\1111                                  : Silicon Labs CP210x USB to UART Bridge (COM4)
    1 matching device(s) found.
     
    c:\Program Files (x86)\Intel\Bluetooth\utilities>
Может и ещё есть что-нибудь.
0
0 / 0 / 0
Регистрация: 05.10.2017
Сообщений: 86
07.02.2018, 13:10  [ТС]
Хорошо, буду смотреть, изучать. Спасибо!

Добавлено через 5 часов 54 минуты
Цитата Сообщение от Rius Посмотреть сообщение
По ссылке либа есть, освойте её. Там куча способов получения списка портов.
Какая именно?
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
07.02.2018, 13:17
CEnumerateSerial v1.33 - A C++ class to enumerate serial ports
0
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 226
08.11.2021, 13:07
Здравствуйте. Как проверять работу программы, отправляющей данные на COM порт с помощью терминальной утилиты?

Т.е. на форме есть ComboBox....
И есть запущенный терминал v1.9b. Что и как выбирать в списке портов, чтоб программы "видели" друг друга?
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
08.11.2021, 13:18
А как программа отправляет с помощью сторонней утилиты?
0
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 226
08.11.2021, 13:23
Нет. Есть ДВЕ вещи - я кодю сам (как чайник) и есть средства проверки в виде терминала. Они просто запускаются одновременно. В связке они могут как-то помочь отладке?
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
08.11.2021, 13:39
Да, если подключить приём или передачу основного порта к приёму дополнительного. Тогда можно было бы слушать входящие или исходящие пакеты.
Но сейчас это снифферами делают, типа https://www.hhdsoftware.com/serial-port-monitor
0
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 226
08.11.2021, 13:47
Примерно такое я и имел ввиду. Значит, это не так просто... Есть средства создания "эха", чтоб отправлять данные и сразу обратно их читать. На Ардуино и МК можно соединять Rx и TX. Но там есть физический UART.
И тут я полагал, что можно использовать какой нибудь виртуальный патч, программно соединяющий порты. Значит это сниффер. Спасибо.
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
08.11.2021, 13:57
Если прям патч... Если надо посылать своей программой, а слушать программой - терминалом, либо наоборот, то ещё есть т. н. "виртуальный нуль-модемный кабель".

Добавлено через 1 минуту
Снифферы нужны для прослушивания обмена.
А виртуальный кабель для симуляции устройства.
1
0 / 0 / 0
Регистрация: 26.04.2014
Сообщений: 226
08.11.2021, 15:49
Спасибо. Не могли ли бы вы дать подсказку...
Исходно: в txt файле в столбец числа, до 50 строк, без разделителей, только перевод строки, макс число 999.

Отправляю с терминала как Send file и успешно читаю / парсю целевым устройством int dataIn = mySerial.parseInt();

Все хорошо и менять бы не хотелось.

Теперь надо отправить, скажем, число 999 программно.
C#
1
2
3
4
 
int number = 999;
byte[] b = BitConverter.GetBytes(number);
port.Write(b, 0, 2);
Не работает., целевое устройство не распознает. В сети предложенные способы неудобны, т.к. нужно тестить целевое устройство также с терминала.
Вопрос оф-топ, но если извините, буду признателен.
0
Эксперт .NET
 Аватар для Rius
13026 / 7591 / 1662
Регистрация: 25.05.2015
Сообщений: 23,094
Записей в блоге: 14
08.11.2021, 16:00
Для данной темы это оффтоп.

C#
1
byte[] b = Encoding.ASCII.GetBytes(number.ToString());
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2021, 16:00
Помогаю со студенческими работами здесь

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

Интервал ожидания ответа от устройства по последовательному порту
Скажите пожалуйста, Как мне самому задать время ожидания ответа от СОМ-порта? Можно ли добавить это в ShowSetupDialog? Работаю с...

Узнать имя устройства
Как узнать имя устройства подключенного к определенному порту? Например к COM3 или LPT1

Получить имя устройства
Каким образом можно получить имя устройства, например, флешки, зная букву диска? Например, хочу получить строку "РОМАН":

Нормальное имя устройства
Суть такая пишу на VB.net но что-то не увидел там людей более умных по winapi) Да и суть не меняется! Получаю название web камер через...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru