aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/dim13/cobs/README.md
blob: ec14b9e073301c39ea51f0f95bb24051b1ea6a79 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Consistent Overhead Byte Stuffing

[![Build Status](https://travis-ci.org/dim13/cobs.svg?branch=master)](https://travis-ci.org/dim13/cobs)
[![GoDoc](https://godoc.org/github.com/dim13/cobs?status.svg)](https://godoc.org/github.com/dim13/cobs)

COBS encoder breaks a packet into one or more sequences of non-zero
bytes.  The encoding routine searches through the first 254 bytes of
the packet looking for the first occurrence of a zero byte.  If no
zero is found, then a code of 0xFF is output, followed by the 254
non-zero bytes. If a zero is found, then the number of bytes
examined, n, is output as the code byte, followed by the actual
values of the (n-1) non-zero bytes up to (but not including) the zero
byte. This process is repeated until all the bytes of the packet have
been encoded.

See also: http://www.stuartcheshire.org/papers/COBSforToN.pdf