Задача перекликается с темой "Как совместить текст и поток данных в RS-232 ?"
Имеется последовательная шина RS485 на ней много устройств разных типов: мои и сторонние. И понадобилась такая штука как логическое отключение/подключение устройства от шины (для общения со "сторонними" устройствам используется протокол XMODEM а он гонит бинарные данные и их нужно игнорировать).
С отключением просто: подаем адресную команду и выбранное устройство начинает отбрасывать все принятые байты.
Но возникает проблема как его потом включить ? Сейчас мое устройство ждет тишину в линии в течение заданного времени, потом break + специальную последовательность символов для возврата в командный режим.
Как оказалось такое решение неудачное.
Понадобилась работа через разнотипные интерфейсы: usb-serial, bluetooth-serial, tcp-serial и даже через радиомодем. Ни break ни смену четности ни времянки между байтами нельзя использовать потому что разнотипные интерфейсы не умеют ничего кроме передачи байт на какой то одной фиксированной скорости и не гарантируют времянки.
Таким образом мы имеем абстрактный поток передаваемых и принимаемых байт в которых нужно каким то образом сигнализировать об окончании бинарного обмена при этом не вмешиваясь в бинарные данные.