реклама на сайте
подробности

 
 
> Как определить имена существующих ком портов
sergey sva
сообщение Mar 1 2010, 14:39
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Как определить имена существующих ком портов, на vs ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Nik.
сообщение Mar 19 2010, 18:13
Сообщение #2





Группа: Участник
Сообщений: 9
Регистрация: 27-02-08
Пользователь №: 35 443



На сегодняшний день мы делаем так !! с ипользованием Setup Device Information api (Написано в Builder С++)

Код
try
{
HDEVINFO hDI;
Tstring List *sl_com_fullnames = new TStringLis();
  SP_DEVINFO_DATA DDI;
  DWORD uReq, uTyp, uEnum;
  BOOL fErr;
  char IdBuffer[ 1024 ];

  DDI.cbSize = sizeof( SP_DEVINFO_DATA );


//Получение  GUID_DEVCLASS_MULTIPORTSERIAL
  hDI = SetupDiGetClassDevs( &GUID_DEVCLASS_MULTIPORTSERIAL, NULL, NULL,
    DIGCF_PRESENT | DIGCF_PROFILE );
  uEnum = 0;
  do
  {

    fErr = SetupDiEnumDeviceInfo( hDI, uEnum, &DDI );
    if( !fErr )
      break;
    fErr = SetupDiGetDeviceRegistryProperty( hDI, &DDI, SPDRP_FRIENDLYNAME,
      &uTyp, IdBuffer, 1024, &uReq );
    if( !fErr )
      fErr = SetupDiGetDeviceRegistryProperty( hDI, &DDI, SPDRP_DEVICEDESC,
        &uTyp, IdBuffer, 1024, &uReq );

    sl_com_fullnames->Add( IdBuffer);
    uEnum ++;
  } while( 1 );

//Устройств GUID_DEVCLASS_PORTS
  hDI = SetupDiGetClassDevs( &GUID_DEVCLASS_PORTS, NULL, NULL,
    DIGCF_PRESENT | DIGCF_PROFILE );
  uEnum = 0;
  do
  {

    fErr = SetupDiEnumDeviceInfo( hDI, uEnum, &DDI );
    if( !fErr )
      break;
    fErr = SetupDiGetDeviceRegistryProperty( hDI, &DDI, SPDRP_FRIENDLYNAME,
      &uTyp, IdBuffer, 1024, &uReq );
    if( !fErr )
      fErr = SetupDiGetDeviceRegistryProperty( hDI, &DDI, SPDRP_DEVICEDESC,
        &uTyp, IdBuffer, 1024, &uReq );

    sl_com_fullnames->Add( IdBuffer );
    uEnum ++;
  } while( 1 );

Цитата(V_G @ Mar 5 2010, 13:07) *
По-моему, любой порт поддерживает любое сочетание параметров, какое зададите (во вменяемом диапазоне, понятно).
В терминале (родном виндовом) у меня у хардовых портов можно выставить скорость до 115 кБод (по-моему), у виртуальных (USB-COM) - до 960 кБод.
По сути это должно определяться драйвером, тесно привязанным к аппаратуре.


Я вроде знаю для того тчобы узнать настройки, Вы должны открыть порт и запустить функцию GetCommProperties. А она даем Вам что умеет порт.

Сообщение отредактировал rezident - Mar 20 2010, 02:56
Причина редактирования: Оформление цитаты исходника.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sergey sva   Как определить имена существующих ком портов   Mar 1 2010, 14:39
- - DpInRock   Прочитать соответсвующее поле реестра.   Mar 1 2010, 17:36
|- - gotty   Цитата(DpInRock @ Mar 1 2010, 19:36) Проч...   Mar 2 2010, 07:38
||- - V_G   В цикле поочередно пытаюсь открыть все возможные к...   Mar 2 2010, 08:50
|- - Xenia   Цитата(DpInRock @ Mar 1 2010, 20:36) Проч...   Mar 2 2010, 22:39
|- - aaarrr   Цитата(Xenia @ Mar 3 2010, 01:39) Это пло...   Mar 2 2010, 23:22
|- - V_G   Цитата(Xenia @ Mar 3 2010, 08:39) А на ви...   Mar 3 2010, 00:26
|- - gotty   Цитата(Xenia @ Mar 3 2010, 00:39) Это пло...   Mar 3 2010, 08:39
- - Yaumen   Если лень разбираться, то существует множество кла...   Mar 2 2010, 13:57
- - sergey sva   Да проще будет использовать готовый класс. Код arr...   Mar 2 2010, 17:19
- - sigmaN   Из диспетчера устройств они точно исчезают все(ну ...   Mar 4 2010, 01:49
|- - Xenia   Цитата(sigmaN @ Mar 4 2010, 04:49) Доподл...   Mar 4 2010, 07:42
|- - aaarrr   Цитата(Xenia @ Mar 4 2010, 10:42) ...Боле...   Mar 4 2010, 08:40
|- - gotty   Цитата(Xenia @ Mar 4 2010, 09:42) Более т...   Mar 4 2010, 09:04
- - V_G   В той ветке реестра, о которой писалось выше, порт...   Mar 4 2010, 08:30
- - sergey sva   Буду использовать метод который просматривает реес...   Mar 5 2010, 09:35
- - V_G   По-моему, любой порт поддерживает любое сочетание ...   Mar 5 2010, 10:07


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 02:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016