Программными средствами я могу контролировать любой байт залетающий в буфер. Допустим могу отловить 1 адресный байт
и по этому событию могу прочитать буфер. Но толку от этого не будет,потому что буфер будет пуст,так туда ещё ничего не успело
залететь. Если бы этот адресный байт был последним,то я бы отловив этот байт ,и по этому событию прочитав буфер, увидил бы
Все данные,где последним был бы адресный байт.
Все проблему решил костылем. Обработал принятую строку следующим образом. Нашел в строке адресный байт и его индекс.
путем перебора. Не очень сложными программными манипуляциями вырезал адресный байт с байтами следующими за ним до
конца строки. И поставил этот байтовый блок в начало строки. Понимаю,что это не лучший метод решения,но лучшего не знаю.
Спасибо тему закрываю.
Я наверное Вас до конца не понял.Я програмно могу на лету поймать зараннее известный байт. Этим байтом является
из пакета только адресный, допустим я его отловил.По этому событию я могу сделать толко одно действие. это прочитать содержимое буфера на момент ,когда я этот байт поймал.Ну посмотрю я буфер и не увижу там ничего,потому,
что следующий байт еще не зашел. Я согласен с Вами,что рыть нужно в направлении указанном Вами,что и делаю в настоя
щий момент.
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Автору темы ничего не мешает заниматся этим онанизмом. Он даже считает что у него что-то получается.
Но для RTU это в принципе бред. В момент перехода мастера к чтению ответа в приемном буфере пусто (или мусор от помех) т.к. слейв еще принимает запрос или отбивает тайм-маркер а не генерит чего-либо. И если первый же байт не нужный адрес, можно, нет, вру, не можно, а обязательно нужно весь последующий кусок до самого тайм-маркера отправлять в мусор.
Последний раз редактировалось rwg; 15.09.2018 в 19:08.