[an error occurred while processing this directive]
|
в линии не допустимы последовательности, состоящие из более чем 5 единиц подряд. Поэтому если Вам надо передать 0xFF (11111111), то в линию надо выдать 111110111. Если Вам надо передать 0x7E - то в линию пойдет 011111010. Если подряд код 0x1F а затем 0xF0 - (0001111111110000) - то 00011111011110000. таким образом появление кода флага (0x7E) в линии исключено во времся передачи собственно пакета. Ну то есть не исключено, а его появление означает конец фрейма. Ну а приемник должен при приеме выкидывать ноль, пришедший после пяти последовательных единиц. Вот. Кстати для UART это нахрен не нужно в принципе. Там синхронизация обеспечивается старт- и стоп-битами, и там достаточно SLIP, коий Вы собственно и почти сделали, заменив коды SLIP'а ESC и END (0xDB и 0xC0) на собственно-придуманный 0x7E.
E-mail: info@telesys.ru