Как мне прочитать только доступные данные с COM-порта Windows? - PullRequest
2 голосов
/ 25 апреля 2009

У меня есть дескриптор файла для последовательного (COM) порта. Мне нужно прочитать все доступные данные немедленно, а не ждать отправки дополнительных данных.

Как определить объем доступных данных? Я могу позвонить SetCommMask(myHandle, EV_RXCHAR), а затем дождаться события, чтобы сообщить мне, что некоторые данные доступны, но это не скажет мне, сколько я теперь могу читать без блокировки.

В данный момент я использую CreateFile () и перекрывающийся ввод-вывод для выполнения моих чтений, поэтому они асинхронны, но все еще ждут, пока буфер заполнится, чтобы сообщить о завершении ввода-вывода.

1 Ответ

4 голосов
/ 25 апреля 2009

Функция ClearCommError () - это то, что вы ищете - она ​​возвращает в структуре COMSTAT количество символов во входных и выходных очередях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...