Simple CinderBlock for SLIP and COBS encode / decode.
const size_t size = 12;
uint8_t data[size] = {
0x45, 0x00, 0x00, 0x2C, 0x4C, 0x79, 0x00, 0x00, 0x40, 0x06, 0x4F, 0x37
};
// COBS using ci::BufferRef
auto buffer = Buffer::create(data, size);
auto encodedBuffer = COBSEncode(buffer);
auto decodedBuffer = COBSDecode(encodedBuffer);
if (decodedBuffer->getSize() != buffer->getSize()) {
// 💀
}
// SLIP using raw uint8_t*
size_t maxEncodedSize = 2 * size + 2;
uint8_t encodedData[maxEncodedSize];
size_t encodedSize = SLIPEncode(data, size, encodedData);
size_t maxDecodedSize = encodedSize - 1;
uint8_t decodedData[maxDecodedSize];
size_t decodedSize = SLIPDecode(data, size, decodedData);
if (decodedSize != size) {
// 💀
}
- Christopher Baker's excellent openFrameworks addon ofxIO