Задать вопрос
Kalombyr
@Kalombyr

Есть ли алгоритм кодирования, который не допускает подряд 3-6 одинаковых значений?

Здравствуйте!
Два устройства общаются через com-порт. Пусть будут Arduino, т.к. тестирую на них.
Нужно как-то отделять пакет от пакета, при условии, что в потоке возможны искажения. Понятно дело, контрольные суммы, контроль чётности и т.д.
Но вот встал вопрос, как лучше разделять "пакеты" (последовательность байт) ?
Пока что ставлю подряд 3 нуля. В идеале, ищу какой-либо простой и быстрый алгоритм кодирования/декодирования байт, который бы позволил избежать несколько подряд (ну скажем от 3 до 6) одинаковых фиксированных значений (то есть мне нужно заранее знать, что бы его поставить разделителем)
Думал просто к каждому третьему байту добавлять единицу, но тогда проблема: если искажение будет в нём при передаче и он станет равным 0.
  • Вопрос задан
  • 122 просмотра
Подписаться 1 Средний Комментировать
Решение пользователя dollar К ответам на вопрос (5)
dollar
@dollar
Делай добро и бросай его в воду.
Контрольная сумма (хеш).

Если искажение и будет, то шанс его не обнаружить - один на миллион (на самом деле ещё меньше, хотя зависит от разрядности).
Ответ написан