Если бы буфер был забит - была бы дискотека на индикаторе RX.
так забитый буфер это один из вариантов. а модбас.lib не рулит портом, а пользуется им как дыркой куда не глядя пихает/берет данные. Рулите дыркой - Вы. И как - никто не знает. Проекта - нет.
Что касается забитости буфера, да и вообще, раз уж влезли в модбас.lib, то никто же не мешает поставить программную ловушку ошибки типа:
Код:
...
X:= SysComWrite(ComHandle, ADR(DataBuf), DataSize, 0); (*X - DINT*)
if X <> DataSize then
какой-то флажок поднять; (*а в основном коде по этому флажку посмотреть X. Если <= 0 проблемы с портом. Его кто-то закрыл? Если <> 0 - забит буфер*)
end_if
Read := (*SysComWrite(ComHandle, ADR(DataBuf), DataSize, 0)*)
X = DataSize;
...