Цитата:
Сообщение от Valentin8080
P.S. Разобрал ситуацию подробно:
Вообщем в очередной раз подался запрос 82 11 F1 21 F0 95. За заданное время RTO ответ не пришел (пришло только эхо запроса TxD(Эхо):82 11 F1 21 F0 95). Программа начинает подавать следующий запрос, но в это время ецу оказывается уже начал отправлять данные. В результате программа передает 84 11 F1 18 00 FF 00 9D (8 байт), а в ответ ждет сначала эхо запроса (8 байт) а ей приходит предыдущий ответ, но программа этого не знает и выкусывает как ей кажется эхо запроса (8 байт ) - TxD(Эхо):8B F1 11 61 F0 00 10 2D - вот почему не до конца ответ  При этом продолжение пакета может быть битым, так как на него наложился следующий запрос.
|
Нашел и исправил ошибку, при которой сказанная выше ситуация приводит к зависанию панели. В новой версии обмен данными просто продолжится, забраковав неправильный прием. Для примера выложил лог своей панели с заведомо маленьким RTO.
P.S. To Alex_St - Стараюсь лишний проверок не делать, дабы не загружать процессор. Только самое необходимое, чтобы отбраковать неправильный прием.