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

 
 
> Как преодолеть ограничение номера COM-порта в XP?
bvn123
сообщение Jan 25 2008, 10:41
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 9-08-04
Пользователь №: 468



Здравствуйте,
при изготовлении устройств с использованием USB-UART мостов под каждое устройство с уникальным VID и PID WinXP создает виртуальный COM-порт с уникальным номером.
По какой причине порты выше COM9 не открываются?
Как преодолеть?

Проверку выполнял как с использованием функций Windows API, так и компонента VarianAsync32, у которого, согласно документации, есть собственное ограничение (до COM16) .

В реестре при подключении очередных устр-в прописываются, например, COM10 или COM11, в диспетчере устройств порты COM10 и COM11 также автоматически появляются

Моя программа в Дельфи обнаруживает и распознает COM10, 11, но открытие порта с номером >9 вызывает ошибку:
PortNumber:=10;
hCOM:=CreateFile(
PChar('COM'+inttostr(PortNumber)),
GENERIC_READ + GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
// если PortNumber меньше 10-ти - работает, если >=10, hCOM=INVALID_HANDLE_VALUE
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vvs157
сообщение Jan 25 2008, 11:50
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 526
Регистрация: 8-04-05
Пользователь №: 3 960



Цитата(bvn123 @ Jan 25 2008, 13:41) *
Здравствуйте,
при изготовлении устройств с использованием USB-UART мостов под каждое устройство с уникальным VID и PID WinXP создает виртуальный COM-порт с уникальным номером.
По какой причине порты выше COM9 не открываются?
Как преодолеть?
У Вас какой-то глюк в системе. В ХР нет никаких проблем с СОМпортами болне 9-го. Любой номер до 255 открывается без проблем.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 25 2008, 14:16
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(vvs157 @ Jan 25 2008, 13:50) *
У Вас какой-то глюк в системе.
Глюка в системе нет. Просто имя порта для CreateFile надо указывать правильно. Вот: http://support.microsoft.com/kb/115831


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
bvn123
сообщение Jan 25 2008, 14:58
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 112
Регистрация: 9-08-04
Пользователь №: 468



Цитата(Сергей Борщ @ Jan 25 2008, 18:16) *
Глюка в системе нет. Просто имя порта для CreateFile надо указывать правильно. Вот: http://support.microsoft.com/kb/115831


Спасибо, Сергей, ссылка помогла, заработало в таком виде:

hCOM:=CreateFile(
PChar('\\.\COM'+inttostr(PortNumber)),
GENERIC_READ + GENERIC_WRITE,
0,
nil,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);

При 'большем кол-ве слэшей (если копировать из статьи по ссылке \\\\.\\COM10) не работало

Очевидно и в компоненте VarianAsync, на котором я также тестировал эту неприятность, также не внесена соотв.поправка.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bvn123   Как преодолеть ограничение номера COM-порта в XP?   Jan 25 2008, 10:41
- - Сергей Борщ   sprintf(comPortName, "\\\...   Jan 25 2008, 11:41
|- - Сергей Борщ   Цитата(bvn123 @ Jan 25 2008, 16:58) При ...   Jan 25 2008, 15:18
- - jorikdima   "nen тему надо в фак какой нибудь. Периодичес...   Jan 25 2008, 15:29
- - ESL   Я не мудрствуя решал эту проблему проще, в диспетч...   Jan 25 2008, 15:36
|- - bvn123   Цитата(ESL @ Jan 25 2008, 19:36) Я не муд...   Jan 28 2008, 08:40
- - paskal   Пишу обмен по СОМ порту через CreateFile. Правда п...   Aug 30 2009, 15:31
|- - AHTOXA   "\\\\.\\COM12...   Aug 30 2009, 16:27
- - paskal   Пишу обмен по СОМ порту через CreateFile. Правда п...   Aug 30 2009, 19:23
|- - Xenia   Цитата(paskal @ Aug 30 2009, 22:23) Пишу ...   Aug 31 2009, 10:49
- - paskal   Помогите решить проблему. Работаю с КОМом через ст...   Aug 31 2009, 17:21
- - AHTOXA   Сдаётся мне, что когда тему подклеивают к предыдущ...   Sep 1 2009, 22:05


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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 19:10
Рейтинг@Mail.ru


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