Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.74
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
27.10.2009, 11:02     Определить имя/тип COM порта #1
Есть USB-устройство, есть к нему драйвер, который позволяет общаться с устройством будто оно подключенно по СОМ порту. собственно этот драйвер, как я понимаю, эмулирует данный COM порт, и даёт ему имя устройства.

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

(среда Visual C++, система Windows ХР)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
27.10.2009, 22:54     Определить имя/тип COM порта #2
Видимо эволюция идет в сторону амеб.
Как ты думаешь можно тебе помочь, если ты даже не назвали ни устройство, ни драйвер, ни зачем тебе это нужно.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
28.10.2009, 06:14  [ТС]     Определить имя/тип COM порта #3
Цитата Сообщение от odip Посмотреть сообщение
Видимо эволюция идет в сторону амеб.
попрошу без оскорблений
Человек звучит гордо, а обезьяна - перспективно (с)

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

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

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

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

Типы ком портов бывают такие
\Device\VSerial0 со значением СОМ9 - это виртуальный сом порт.
\Device\Serial0 - родной СОМ порт
\Device\VCP0 - переходник USB to RS232
DrMcSheen
 Аватар для DrMcSheen
59 / 59 / 1
Регистрация: 25.05.2009
Сообщений: 521
29.10.2009, 13:11     Определить имя/тип COM порта #7
Как вариант - получить список портов ДО подключения устройства и ПОСЛЕ.
odip
Эксперт C++
 Аватар для odip
7226 / 3288 / 59
Регистрация: 17.06.2009
Сообщений: 14,165
29.10.2009, 13:30     Определить имя/тип COM порта #8
получить список портов ДО подключения устройства и ПОСЛЕ.
Устройство может быть подключено еще до загрузки компьютера.
Или до запуска программы.
DrMcSheen
 Аватар для DrMcSheen
59 / 59 / 1
Регистрация: 25.05.2009
Сообщений: 521
29.10.2009, 13:55     Определить имя/тип COM порта #9
Цитата Сообщение от TanT Посмотреть сообщение
Типы ком портов бывают такие
\Device\VSerial0 со значением СОМ9 - это виртуальный сом порт.
\Device\Serial0 - родной СОМ порт
\Device\VCP0 - переходник USB to RS232
И все эти названия прописаны в драйвере, который можно править обычным блокнотом без потери работоспособности.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
29.10.2009, 16:36  [ТС]     Определить имя/тип COM порта #10
DrMcSheen, я хотел подчеркнуть, что названия стандартные и определить конкретное устройство по ним не возможно, так как устройства различаются лишь этими типами и система присваивает им номера по очерёдности подключения.
DrMcSheen
 Аватар для DrMcSheen
59 / 59 / 1
Регистрация: 25.05.2009
Сообщений: 521
29.10.2009, 18:25     Определить имя/тип COM порта #11
Цитата Сообщение от TanT Посмотреть сообщение
DrMcSheen, я хотел подчеркнуть, что названия стандартные и определить конкретное устройство по ним не возможно, так как устройства различаются лишь этими типами и система присваивает им номера по очерёдности подключения.
Номера присваивает система, согласен. Но это лишь последняя цифра "0" в вышеперечисленных названиях. И даже у стандартных устройств, как ни странно, есть драйвера
В твоём случае, просто для интереса, подключи устройство, посмотри его ник в реестре и в папке с его драйвером поищи файл, содержащий эту строку. Без нуля, ессно. Точно найдёшь. И исправь.
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
29.10.2009, 20:59  [ТС]     Определить имя/тип COM порта #12
Цитата Сообщение от DrMcSheen Посмотреть сообщение
Номера присваивает система, согласен. Но это лишь последняя цифра "0" в вышеперечисленных названиях. И даже у стандартных устройств, как ни странно, есть драйвера
В твоём случае, просто для интереса, подключи устройство, посмотри его ник в реестре и в папке с его драйвером поищи файл, содержащий эту строку. Без нуля, ессно. Точно найдёшь. И исправь.
про драйвера я в курсе
можно поподробней про пути к ним. где этот ник в реестре? где эта папка с драйвером?
по адресу HKEY_LOCAL_MACHINE\HARDWARE\DEVICEM AP\SERIALCOMM\ я находил только стандартное название переходника USB to RS232. а именно там система раздаёт номера ком портов. пробовал подключать ещё что-нить подобное и лицезрел следующее такое же устройство тока с другой циферкой.

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

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2009, 21:09     Определить имя/тип COM порта
Еще ссылки по теме:

C++ Зачем функции дают тип возврата - имя класса?
C++ Определить тип файла
Определить тип символа C++
Ifstream - тип переменной имя файла C++
Определить имя класса C++

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

Или воспользуйтесь поиском по форуму:
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
30.10.2009, 21:09  [ТС]     Определить имя/тип COM порта #14
жалко нынче уже выходной, попробую проработать ваш вариант в понедельник, не вдумывался в ответ

Не по теме:

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


бери, мне не жалко, не я придумал. главное наставление - соответсвуй
Yandex
Объявления
30.10.2009, 21:09     Определить имя/тип COM порта
Ответ Создать тему
Опции темы

Текущее время: 02:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru