TinyModem
Header-only software audio modem library
Loading...
Searching...
No Matches
PacketStream.h File Reference
#include <string.h>
#include "AudioTools.h"
#include "AudioTools/Communication/FEC/ReedSolomon/rs.hpp"
#include "ModemBase.h"
Include dependency graph for PacketStream.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  tinymodem::PacketStatistics
 Statistics of the received packets. More...
struct  tinymodem::PacketFormat
 Constants of the packet format. More...
class  tinymodem::PacketEncoder< MAX_PAYLOAD, ECC_BYTES >
 Splits the written data into packets with a CRC-16 and Reed-Solomon forward error correction, which are framed with HDLC-style flags (0x7E) and byte stuffing, and writes them to the output (e.g. a ModemStream). More...
class  tinymodem::PacketDecoder< MAX_PAYLOAD, ECC_BYTES >
 Receives the packets of a PacketEncoder: the written bytes (e.g. the output of a modem decoder) are deframed, corrected and checked, and the payload of the valid packets is written to the output. More...
class  tinymodem::PacketStream< MAX_PAYLOAD, ECC_BYTES >
 Reliable data transfer over any Stream (e.g. a ModemStream, an MFSKStream or a Serial): the written data is sent in packets with CRC-16 and Reed-Solomon forward error correction, and only correct data can be read. Corrupted packets which can't be corrected are dropped. More...

Namespaces

namespace  tinymodem
 TinyModem: software audio modems and packets with error correction.

Functions

uint16_t tinymodem::crc16 (const uint8_t *data, size_t len, uint16_t crc=0xFFFF)
 CRC-16-CCITT (polynomial 0x1021, initial value 0xFFFF).