Допустим слейв включился чуть позже чем остальные слейвы и мастер и уже идет обмен. в порту какие то данные, что искать, чей адрес? нет гарантий в том что вы примите чей то пакет сначала.
Вид для печати
запросы на чтение имеют определенную размерность байт, запросы на запись содержат двойное указание сколько байт всего в запросе, чё Вы пытаетесь со всеми спорить то. Программисты всех устройств и направлений делают слейвы, ни чего в этом нет сложного
Тм чтобы принять лажовый запрос надо сильно постораться, вероятность совпадения мизерная, если вобще не равна нулю
это у меня был знакомый он с Java в преобразователь Ethernet/485 писал и не дожидаясь ответ писал и читал по всем адресам (устройствам которых было много) на 485 шине (modbus) .. а потом не понимал почему какие то странные ответы приходят. На вопрос что 485 это полудуплекс и мастер-слейв ... он четко говорил мне все равно я по Ethernet работаю и долго звонил в MOXA устраивал разбирательства почему их устройства такие дорогие и так плохо работают. :)
lazy объясните дураку, как можно начать принимать запрос с середины пакета, если в начале любого пакета данных должна быть пауза а ее тупо нет ?
Зачем что-то читать вообще, если видно что это не начало пакета ? Ну включился слейв позже и что ? программа обработчик должна дождаться начало следующего пакета и только тогда начинать их проверять, ему прислали или не ему.
Дык-ж периодически на Землю прилетает метеорит и гасит почти все живое. Последний раз запортил все настройки у завров. Вот lazy и хочет защиту от этого поставить. Видимо у заказчика на это монет взял.
Lazy ! Тут защита простая - нужно применить функцию nauchitoslachitat() из hodjanasreddin.lib