|
Как преодолеть ограничение номера COM-порта в XP? |
|
|
|
Jan 25 2008, 10:41
|
Частый гость
 
Группа: Свой
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Jan 25 2008, 14:58
|
Частый гость
 
Группа: Свой
Сообщений: 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, на котором я также тестировал эту неприятность, также не внесена соотв.поправка.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|