Tad писал(а):
какой длины прийдет ответ столько и считаетЭто ты откуда такую чушь взял У нас ни в одном компоненте COM не реализована функция определения действительной длины принятого буфера, это нормально можно реализовать только в асинхронном режиме. А в твоей схеме тупо длину переданной команды с onWrite, ты отправляешь на чтение этого же количества байт через компонент If_Else на doRead, а остальное тупо стирашь по doRXClear.
Или для тебя новость, что запросив 6-ть байт на чтение в одной итерации, ты и получишь только эти 6-ть байт
Откуда ты взял, что запросив 6-ть байт, ты получишь весь буфер чтения
------------ Дoбавленo в 20.43:
Tad, если тебе действительно интересно, как осуществляется асинхронное чтение всего буфера чтения, то завтра тебе могу выложить экспериментальный компонент асинхронного обмена по COM-порту, он у меня на работе просто. Он пока находится в стадии тестирования, но можете потестировать его, если хотите, может еще кто потестирует. Но, увы, он не работает под FPC из-за наличия мультипоточности