ByteFrame
Кодирование COBS с опциональной контрольной суммой для надёжной синхронизации пакетов по UART и радиоканалам без динамической памяти
Установка
Последняя опубликованная версия- Скачайте архив — реестр отдает его уже проверенным.
- В Arduino IDE выберите «Скетч → Подключить библиотеку → Добавить .ZIP библиотеку».
- Укажите скачанный файл — библиотека появится в списке доступных.
SHA-256:9fde59e7447b4d3594b57edfea479b043ca3bfb42b7a5cbac561a97ba8b125efByteFrame-0.2.0-9fde59e7.zipОписание
Когда данные передаются по UART, RS-485 или радиоканалу, нужно как-то понять, где заканчивается один пакет и начинается другой. ByteFrame решает эту проблему через кодирование COBS и дополнительный контрольный байт: каждый кадр содержит полезную нагрузку, опциональную контрольную сумму (CRC8, CRC16 или CRC32) и завершается нулевым байтом-разделителем. Благодаря COBS этот разделитель никогда не появится внутри кадра, так что декодер всегда может синхронизироваться после помех. Библиотека полностью header-only, не требует динамического выделения памяти, и позволяет заранее рассчитать максимальный размер закодированного пакета через compile-time функцию getMaxEncodedSize. Деко́дер работает с фиксированным внутренним буфером и ведёт счётчик ошибок по причинам. Хорошо сочетается с BytePack для типобезопасных полезных нагрузок.