Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Одновременная работа с Com1 и Com3 под Win2k [D6, Win2k]


Greenman ©   (2003-01-22 06:24:00) 

Не получается одновременно работать с Com1 и Com3 под Win2k.
Делаю

FComPortHandle1 := CreateFile(PChar("COM1"),GENERIC_READ or GENERIC_WRITE,
0,nil,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,0);

FComPortHandle1 := CreateFile(PChar("COM3"),GENERIC_READ or GENERIC_WRITE,
0,nil,OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL or FILE_FLAG_OVERLAPPED,0);

После этого FComPortHandle2=INVALID_FILE_HANDLE

Причем, самое интересное, если вызывать их в обратном порядке,
то этот код работает нормально, правда читать/писать все равно не получается.
Как вообще тогда работать с большим количеством портов под w2k?
Их сейчас у меня 4 (и все заняты), а наверное будет еще больше.


Greenman   (2003-01-23 05:33:00) [1]

Ну чтож, я так и предпологал с самого начала.
Наверное стоит попробовать giveio, хотя тоже сомневаюсь что что-нибудь получиться


DOOMin   (2003-01-22 11:58:00) [2]

чтобы работать под виндами нужно, чтобы все порты имели отдельное прерывание. Проверено! Иначе надо писать спец. драйвер или покупать плату с таким драйвером


ksa3003   (2003-01-22 11:29:00) [3]

Устами Странникаглаголит истина, всё так и есть


Странник   (2003-01-22 10:58:00) [4]

Да просто порты сидят на одном прерывании.
COM1 - COM3, COM2 - COM4.
И в твоем случае (если считать что оба порта на UART метеринки) открывается один порт два раза.
Для того, чтобы так их использовать, необходимо чтобы (начиная с 3-го) порты были на специальной плате-расширителе, либо на встроенном модеме.


Reindeer Moss Eater   (2003-01-22 09:35:00) [5]

Предлагаешь всем анализировать код, который к вопросу имеет весьма отдаленное отношение?


Greenman   (2003-01-22 09:27:00) [6]

Это просто опечатка, в коде все нормально. Тем более, при тестировании эти два куска кода разнесены в два различных приложения, и получается весьма странный результат от порядка их запуска.


Reindeer Moss Eater   (2003-01-22 09:00:00) [7]

Ты дважды присваиваешь FComPortHandle1 , и ни разу ничего не присваиваешь FComPortHandle2


Наверх

Титульная страница Поиск, карта сайта Написать письмо