Тонкий вопрос о Serial Communications
От: svladimiri  
Дата: 23.07.07 23:28
Оценка:
Добрый день,

У меня такой вопрос: EV_TXEMPTY — это события или состояние ?

Вопрос возник вот почему:
После отправки 7 байт в порт (NON_EVERLAPPED) я вставляю задержку в 30 миллисекунд.
После задержки я устанавливаю SetCommMask(hComm, EV_TXEMPTY);, вызываю WaitCommEvent(hComm, &commEvent, NULL); — и оно работает, функция ловит событие !

Вопрос — почему ? По идее 30 миллисекунд более чем достаточно чтобы отправить все сообщение. Последний байт должен был быть давно выпихнут в линию, событие сгенерировано и WaitCommEvent должен был пропустить это событие. Но он его видит, что наталкивает меня на мысль что EV_TXEMPTY генерируется если в самом ком-порте устарновлен флаг, говорящий о том что буффер пустой.

Что посоветуете, коллеги ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.