Цитата Сообщение от Валенок Посмотреть сообщение
Автору темы ничего не мешает заниматся этим онанизмом. Он даже считает что у него что-то получается.
Но для RTU это в принципе бред. В момент перехода мастера к чтению ответа в приемном буфере пусто (или мусор от помех) т.к. слейв еще принимает запрос или отбивает тайм-маркер а не генерит чего-либо. И если первый же байт не нужный адрес, можно, нет, вру, не можно, а обязательно нужно весь последующий кусок до самого тайм-маркера отправлять в мусор.
УВ. Валенок. Заметьте,после замечания Ровки обращаюсь к Вам на Вы.Хочу успокоить всех форумчан и Вас в том числе.Решение
Найдено. К сожалению не на этом форуме. И Ваши рассуждения програмно-филоссовские с применением специфических терминов
типа онанизма на техническм форуме, не имели успеха. Так ,что относитесь к таким терминам с осторожностью. В решение этого
вопроса хочу поблагадарить сапзапа и rwq и Юрия,которые поняли суть проблемы. Остальные не поняв сути давали советы косми
веских масштабов ,не вникая в суть,в том числе и Вы. Теперь о том как эту проблему я решил по советам 3 людей которых я перечи
слил. Суть проблемы я узнал от Юрия. Направление решения я узнл от RWG. Путь поиска от сапзапа. Учитывая это я обратился на
американский форум ,благо с англицким дружу. И первый америкос для которого программирование есть хобби,а не специальность ответил мне четко на решение моей проблемы.Он в отличии от валенка понял суть проблемы. Зовут его RIs.
Он сказал мне,что я не вовремя читаю буфер. И почитав это я получаю только часть буфера,не дочитав его до конца. И этот конец
,который я недочитал приклеивается в начало. И посоветовал мне следуещее. Поймать мне первый байт (адресный,как советовал
rwq) и по нему запустить таймер на время соответствующее времени прохождения одного байта при указанной скорости) и при
Этом следить за состоянием этого таймера. Поскольку каждый новый байт поступающий в буфер перезапускает этот таймер,то
Таймер то он не сбросится до конца посылки полного пакета ответа от клиента модбаса.. Програмно отслеживая сброс таймера,
Я могу сделать вывод,что пакет ответа лежит в буфере. И только с этого момента я его могу читать .
Логику америкоса я проверил. И получил правильное расположение байтов ответа от слэйва. Всем спасибо. Особенно сапзапу,
Юрию и RGW.