Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение параметров виртуального COM-порта, (Bluetooth, под Windows Mobile) 
:(
    Опции темы
Lord Dagger
Дата 23.7.2006, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 14.8.2004
Где: Москва

Репутация: нет
Всего: 3



Приветствую читателей этой темы!

Возник следующий вопрос: необходимо определить параметры виртуальных Com-портов, имеющихся в системе? На всякий случай, еще раз напомню: интерфейс Bluetooth, ОС Windows mobile 2003-2005.

При помощи следующего нехитрого кода я перечисляю все имеющиеся в системе com-порты:
Код

DEVMGR_DEVICE_INFORMATION devInfo;

HANDLE devSearchHandle = NULL;
bool devFound = true;

devInfo.dwSize = sizeof(devInfo);

devSearchHandle = FindFirstDevice(DeviceSearchByLegacyName,L"COM*",&devInfo);
if ( ( devSearchHandle == NULL ) || ( devInfo.hDevice == NULL ) )
{
    devFound = false;//ERR( HRESULT_FROM_WIN32( GetLastError() ));
}

while(devFound != 0)
    devFound = FindNextDevice(devSearchHandle,&devInfo);
        
if(devSearchHandle)
    FindClose(devSearchHandle);


Прочитав devInfo.szDeviceKey можно определить принадлежность порта к Bluetooth-интерфейсам, но, к сожалению, НЕ ОДНОЗНАЧНО.
Что более важно, предоставляемая информация не позволяет узнать параметры этого порта, например, является ли он клиентским или серверным.

При регистрации порта в системе функцией RegisterDevice(), соотв. параметры указываются в структуре PORTEMUPortParams, например, так:
Код

PORTEMUPortParams pp;
memset (&pp, 0, sizeof(pp));
pp.flocal = TRUE;
pp.channel = channel & 0xff;

HANDLE h = RegisterDevice (L"COM", index, L"btd.dll", (DWORD)&pp);


Однако, несмотря на двухдневные поиски в MSDN я так и не нашел способа получить обратно эту структуру. Тем не менее, многие приложения от сторонних производителей отображают параметры виртуальных com-портов.

Хотель бы услышать мнение профессионаловsmile 
--------------------
(+)  
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.