|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.02.2017, 08:41 | #1 |
Новичок
Джуниор
Регистрация: 14.12.2016
Сообщений: 2
|
Com port (rs232) асинхронные чтение. Использование таймаута во время ожидания события прихода данных из порта
Есть поток чтения, где мы ожидаем событие из порта по маске (EV_RXCHAR).
функция ожидание выглядит так: DWORD signal = WaitForMultipleObjects(2, phevnt_rx, false, timeout_ms); где phevnt_rx - содержит предварительно созданное событие из TOverlapped и событие для остановки потока; timeout_ms - время таймаута для подсчета времени отсутствия информации на прием. Использование timeout_ms (равного у меня 10 мс) вместо INFINITE привело к тому, что поток чтения не всегда считывает последний пришедший байт. Событие порта о пришедшем последнем байте не происходит после таймаута. Как сделать так чтобы после таймаута получить это байт? //открытие порта: Код:
Код:
Код:
Код:
Код:
//------------------------------------------------------------------------- Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение данных с COM-порта и вывод их в memo | CHEburaschka | Общие вопросы Delphi | 12 | 21.05.2015 09:24 |
Com port (RS232) | Pavlov_yu | C++ Builder | 14 | 18.06.2014 19:12 |
Дикий тупняк - чтение данных с com порта. | GMX | Компоненты Delphi | 8 | 26.03.2014 15:39 |
Истекло время ожидания (Timeout). Время ожидания истекло до завершения операции или сервер не отвечает. | kgs_forum | C# (си шарп) | 1 | 20.08.2013 20:14 |
Чтение данных с COM порта 232 | Dimitr_88 | Общие вопросы C/C++ | 10 | 03.09.2010 10:39 |