ReAl (04.02.2010 23:08, просмотров: 328) ответил pav256 на если это так тогда в моем случае вообще нет смысла ждать какие то события... но я думаю все таки что e меня тут какой то косяк...
1) CreateFile("\\\\.\\COM22", ... если я правильно понял вопрос. http://msdn.microsoft.com/en-us/library/ms686358(VS.85).aspx
Т.е. номер у FTDI какой уж вышел,
sprintf(portstr, "\\\\.\\COM%d", portnumnum);
hCom = CreateFile( str, ...
2) Повторюсь, с "аналогами" из ftd2xx.dll просто не работал.
Файл должен быть открыт с флагом FILE_FLAG_OVERLAPPED
При этом WaitCommEvent получает структру OVERLAPPED
При этом если событие на порту с прошлого запроса уже произошло, то она WaitCommEvent возвращает TRUE и мы сразу читаем из буфера то, что там есть.
Если событие ещё не произошло, то она оставляет в системе задание на анализ этого события и нашу структуру OVERLAPPED, в которой прописано событие hRxEvent. И возвращает FALSE. Т.е. когда файл отрыт с FILE_FLAG_OVERLAPPED и в WaitCommEvent передана соответствующая структура с событием (отальные поля - внутреннее дело ОС), то она всегда возвращает управление СРАЗУ.
Если возвращает FALSE - события ещё не было, но запрос поставлен в очередь. Мы теперь вольны поделать что-то другое, опрашивая время от времени GetOverlappedResult, а можем уйти в спячку, ожидая то событие, которое мы прописали в структуре OVERLAPPED.