Потому что вы вызвали блок только один раз.
Надо вызывать его циклически (генерацией передних фронтов на входе xExecute).
Важный момент - TRUE на xDone не значит, что получены новые данные - это значит, что очередное обращение к буферу COM-порта завершилось успешно.
При этом буфер может быть пустым.
Факт приема новых данных можно отследить по выходу szSize.





Ответить с цитированием
