Распознать COM-порты

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Распознать COM-порты

Сообщение hclubmk » 04.01.2012 (Ср) 15:40

Доброго времени суток. Работаю с 3G модемом Huawei e1550. При инсталляции софта устройства, создаются два виртуальных COM-порта:
3G PC UI Interface (COM**) и 3G Application Interface (COM**), через которые производится работа с устройством.
Вопрос заключается в том, каким образом (программно) определить номера этих самых портов. Посредством WMI - достаточно просто, но нет гарантии, что эта служба будет предустановлена и запущена на другой машине. В реестре практически никакой информации, кроме наличия номеров портов (есть номера этих портов, но нет возможности определить кто есть кто). EnumPorts никакого эффекта не возымела, поскольку программа прекращается вместе с IDE, и понять причину сего, также не представляется возможным (ось W7)
Кому приходилось решать подобные вопросы, прошу совета.
Научились ли Вы радоваться трудностям?

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Распознать COM-порты

Сообщение NashRus » 05.01.2012 (Чт) 2:03

Не понятно, что вызывает затруднение: определение номера портов или их вид.

В любом случае, SetupApi и ориентироваться либо по имени устройства, либо по другим специфичным свойствам устройств, либо открыть порт и послать AT-команду.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Распознать COM-порты

Сообщение hclubmk » 05.01.2012 (Чт) 10:56

Затруднение вызывает сопоставление номера порта его функциональному назначению.
порт "3G PC UI Interface" предназначен для работы с модемом посредством AT команд, порт "3G Application Interface" для приема-передачи голосовой информации (PCM raw) - т.е. нужно получить номер порта + его описание.
Кроме того, затруднение вызывает сопоставление каждого из портов определенному модему (если модемов несколько), т.е. Если модема два, то и вышеупомянутых портов будет по два. Какой будет принадлежать какому из модемов - тоже вопрос.
Научились ли Вы радоваться трудностям?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Распознать COM-порты

Сообщение Хакер » 05.01.2012 (Чт) 11:41

Могу узнать, как Hyper Terminal формирует содержимое нижнего комбо-бокса в диалоге «Параметры подключения». Тебе ведь именно это нужно или нет?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Распознать COM-порты

Сообщение NashRus » 05.01.2012 (Чт) 15:05

Еще раз повторю:

Через SetupApi можно получить дерево подключений, соответственно, у тебя будет родителем составное USB-устройство, а его детьми - всякие порты, картридеры, вставленные карточки, сам модем. Понятно, что несколько стиков = несколько родителей у всех этих портов и понятно как это все соотнести друг с другом.

Каждое тип / вид устройства имеет достаточно уникальный HarwareId с точностью до каждого инженерного проекта. У разных типов портов он будет разный.
Еще можешь смотреть FriendId (совместимый Id, не помню как он точно называется).

В фирменных утилитах все это работает именно так, как написано выше.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Распознать COM-порты

Сообщение hclubmk » 05.01.2012 (Чт) 22:21

Хакер писал(а):Тебе ведь именно это нужно или нет?

05.01.png
05.01.png (15.81 Кб) Просмотров: 1682

Не совсем.
Мне нужны порты 21 и 23, но не в том представлении, которое дает hyperterminal, поскольку абсолютно неясно, что это за порты и к какому устройству имеют отношение.
Необходимым и достаточным вариантом представления является реализация диспетчера устройств в контексте "устройства по подключению"
05.02.png

NashRus я тебя понял с первого раза.
Спасибо всем откликнувшимся.
Научились ли Вы радоваться трудностям?

NashRus
Постоялец
Постоялец
 
Сообщения: 388
Зарегистрирован: 18.03.2006 (Сб) 1:16

Re: Распознать COM-порты

Сообщение NashRus » 05.01.2012 (Чт) 23:35

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


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 15

    TopList  
cron