Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/50: Рейтинг темы: голосов - 50, средняя оценка - 4.94
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
1

Определить имя/тип COM порта

27.10.2009, 11:02. Показов 10466. Ответов 13
Метки нет (Все метки)

Есть USB-устройство, есть к нему драйвер, который позволяет общаться с устройством будто оно подключенно по СОМ порту. собственно этот драйвер, как я понимаю, эмулирует данный COM порт, и даёт ему имя устройства.

Собственно вопрос: можно программным способом определить из всего множества доступных COM портом именно этот? как это сделать, какие сведенья необходимо знать/получить?

(среда Visual C++, система Windows ХР)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.10.2009, 11:02
Ответы с готовыми решениями:

Имя СOM порта через диспетчер устройств
Благодарю за помощь! Мне необходимо через диспетчер устройств Windiws вытащить имя СОМ порта. Как...

Ввести массив строк фамилию, имя и отчество. Нужно определить, какое имя является родным
Ввести массив строк, в каждой из которых через символ пропуска заданные фамилия, имя и отчество...

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

Определить имя пользователя и тип процессора
подскажите, как с использованием 2х апи функций (GetUserName и GetSystemInfo) определить имя...

13
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
27.10.2009, 22:54 2
Видимо эволюция идет в сторону амеб.
Как ты думаешь можно тебе помочь, если ты даже не назвали ни устройство, ни драйвер, ни зачем тебе это нужно.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
28.10.2009, 06:14  [ТС] 3
Цитата Сообщение от odip Посмотреть сообщение
Видимо эволюция идет в сторону амеб.
попрошу без оскорблений
Человек звучит гордо, а обезьяна - перспективно (с)

Цитата Сообщение от odip Посмотреть сообщение
Как ты думаешь можно тебе помочь, если ты даже не назвали ни устройство, ни драйвер, ни зачем тебе это нужно.
Я и спрашивал
какие сведенья необходимо знать/получить?
1. устройство MSP430
2. сведения о драйвере в системе гласят:
c:\WINDOWS\system32\DRIVERS\klfltdev.sys
c:\WINDOWS\system32\DRIVERS\usbser.sys
3. требуется для оганизации программного поиска СОМ порта к которому подключенно устройство
0
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
28.10.2009, 15:15 4
можно программным способом определить из всего множества доступных COM портом именно этот?
требуется для оганизации программного поиска СОМ порта к которому подключенно устройство
Сначала ты просил совсем другое - ты спрашивал - как сделать фиксированный COM-порт для этого устройства.
Теперь ты спрашиваешь - как определить на какой COM-порт устройство село само.

Давай еще эволюционируй немного и определись с задачей..

Добавлено через 1 минуту
Насколько я понимаю определить куда село устройство намного проще чем заставить его сесть на заданный COM-порт.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
28.10.2009, 17:32  [ТС] 5
произошла типичная подмена понятий, отбросим предшествующее недопонимание.
Задача: определить на какой COM-порт устройство село само.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
29.10.2009, 12:15  [ТС] 6
Короче, тему надо закрывать помощи ждать уже не стоит.

Самостоятельно выяснил следующее:
программным способом найти определённое устройство можно только послав ему какой-то запрос через COM порт и получив (в случае - ну наконец-то повезло) ответ. соответственно устройство должно корректо отвечать на ваш запрос о чём с ним желательно "договориться".
собственно так всегда и поступают, доверяя выбор пользователю или перебирая все порты в поисках того, который ответит. а всё потому, что кроме типа ком порта в реестре по адресу HKEY_LOCAL_MACHINE\HARDWARE\DEVICEM AP\SERIALCOMM\ ничего узнать не удасться

Типы ком портов бывают такие
\Device\VSerial0 со значением СОМ9 - это виртуальный сом порт.
\Device\Serial0 - родной СОМ порт
\Device\VCP0 - переходник USB to RS232
0
61 / 62 / 3
Регистрация: 25.05.2009
Сообщений: 520
29.10.2009, 13:11 7
Как вариант - получить список портов ДО подключения устройства и ПОСЛЕ.
0
Эксперт С++
7175 / 3234 / 79
Регистрация: 17.06.2009
Сообщений: 14,164
29.10.2009, 13:30 8
получить список портов ДО подключения устройства и ПОСЛЕ.
Устройство может быть подключено еще до загрузки компьютера.
Или до запуска программы.
0
61 / 62 / 3
Регистрация: 25.05.2009
Сообщений: 520
29.10.2009, 13:55 9
Цитата Сообщение от TanT Посмотреть сообщение
Типы ком портов бывают такие
\Device\VSerial0 со значением СОМ9 - это виртуальный сом порт.
\Device\Serial0 - родной СОМ порт
\Device\VCP0 - переходник USB to RS232
И все эти названия прописаны в драйвере, который можно править обычным блокнотом без потери работоспособности.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
29.10.2009, 16:36  [ТС] 10
DrMcSheen, я хотел подчеркнуть, что названия стандартные и определить конкретное устройство по ним не возможно, так как устройства различаются лишь этими типами и система присваивает им номера по очерёдности подключения.
0
61 / 62 / 3
Регистрация: 25.05.2009
Сообщений: 520
29.10.2009, 18:25 11
Цитата Сообщение от TanT Посмотреть сообщение
DrMcSheen, я хотел подчеркнуть, что названия стандартные и определить конкретное устройство по ним не возможно, так как устройства различаются лишь этими типами и система присваивает им номера по очерёдности подключения.
Номера присваивает система, согласен. Но это лишь последняя цифра "0" в вышеперечисленных названиях. И даже у стандартных устройств, как ни странно, есть драйвера
В твоём случае, просто для интереса, подключи устройство, посмотри его ник в реестре и в папке с его драйвером поищи файл, содержащий эту строку. Без нуля, ессно. Точно найдёшь. И исправь.
0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
29.10.2009, 20:59  [ТС] 12
Цитата Сообщение от DrMcSheen Посмотреть сообщение
Номера присваивает система, согласен. Но это лишь последняя цифра "0" в вышеперечисленных названиях. И даже у стандартных устройств, как ни странно, есть драйвера
В твоём случае, просто для интереса, подключи устройство, посмотри его ник в реестре и в папке с его драйвером поищи файл, содержащий эту строку. Без нуля, ессно. Точно найдёшь. И исправь.
про драйвера я в курсе
можно поподробней про пути к ним. где этот ник в реестре? где эта папка с драйвером?
по адресу HKEY_LOCAL_MACHINE\HARDWARE\DEVICEM AP\SERIALCOMM\ я находил только стандартное название переходника USB to RS232. а именно там система раздаёт номера ком портов. пробовал подключать ещё что-нить подобное и лицезрел следующее такое же устройство тока с другой циферкой.

проясните ситуцию если не сложно
0
61 / 62 / 3
Регистрация: 25.05.2009
Сообщений: 520
30.10.2009, 06:28 13
Цитата Сообщение от TanT Посмотреть сообщение
где этот ник в реестре? где эта папка с драйвером?
Ну с определением "ник" я просто прикололся, имея в виду его имя.
Где находится папка с драйвером - это надо тебя спросить: когда система пишет "найдено новое устройство", ведётся автоматический поиск драйверов в папке %windir%\inf. В случае отсутствия - просит указать путь к *.inf файлу, т.е. к папке с драйвером.
Вобщем, подключай устройство, определи, на какой порт оно село, смотри в реестре - кста, путь ты верный нашел - как оно обозвалось, и ищи файл, содержащий эту строку. В папке с драйвером. В папке windows\inf. Во всём компьютере, наконец, если не знаешь, кто и откуда дрова ставил.
Найденный файл может быть *.inf, *.cat, *.sys, да в принципе любой, но ссылка на него есть в файле описания драйвера - в inf.
В найденном файле правишь эту строку на своё усмотрение - она может быть упомянута неоднократно, здесь универсального метода нет, всё методом тыка - главное, чтобы в реестре отобразилось именно это новое имя устройства, и из своей программы по этой строке будешь определять нужный порт.

Не по теме:

быстро, качественно, бесплатно. Выбери любые два. - надо взять на вооружение :)

0
эволюционирую потихоньку
468 / 466 / 91
Регистрация: 30.06.2009
Сообщений: 1,401
30.10.2009, 21:09  [ТС] 14
жалко нынче уже выходной, попробую проработать ваш вариант в понедельник, не вдумывался в ответ

Не по теме:

быстро, качественно, бесплатно. Выбери любые два. - надо взять на вооружение :)


бери, мне не жалко, не я придумал. главное наставление - соответсвуй
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2009, 21:09

Что происходит при Тип имя = new тип
Объясните пожалуйста или дайте ссылку на пояснение, т.к. вообще не понимаю что это - type name =...

имя Device по № порта
Всем доброе время суток. Подскажите как по номеру com порта вывести название девайса?

Как определить имя сервер может определить имя
Раньше было все нормально когда IP адреса были статичными, но наш администратор сделал их...

Как запомнить имя COM - порта для следующего запуска приложения
Всем привет. У меня в программе используется COM - порт (через USB - COM переход). По сути порт...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru