TinyModem
Header-only software audio modem library
Loading...
Searching...
No Matches
tinymodem::AX25Frame Class Reference

Conversion between AX.25 frames and the monitor text format (SRC>DEST,DIGI1,DIGI2*:info) and the KISS framing. More...

#include <AX25.h>

Static Public Member Functions

static uint16_t fcs (const uint8_t *data, size_t len)
 AX.25 frame check sequence: CRC-16-CCITT with reflected bits.
static int fromText (const char *text, size_t len, uint8_t *frame)
static int toText (const uint8_t *frame, size_t len, char *text, size_t text_size)
static size_t writeKiss (Print &out, const uint8_t *frame, size_t len)
 Writes the frame as KISS data frame for port 0.

Static Public Attributes

static constexpr int MAX_FRAME = 330
static constexpr int MIN_FRAME = 15
static constexpr uint8_t KISS_FEND = 0xC0
static constexpr uint8_t KISS_FESC = 0xDB
static constexpr uint8_t KISS_TFEND = 0xDC
static constexpr uint8_t KISS_TFESC = 0xDD

Static Protected Member Functions

static bool encodeAddress (const char *start, const char *end, uint8_t *out, bool command, bool digipeater)
static void decodeAddress (const uint8_t *in, char *call)

Detailed Description

Conversion between AX.25 frames and the monitor text format (SRC>DEST,DIGI1,DIGI2*:info) and the KISS framing.

Member Function Documentation

◆ decodeAddress()

void tinymodem::AX25Frame::decodeAddress ( const uint8_t * in,
char * call )
inlinestaticprotected

◆ encodeAddress()

bool tinymodem::AX25Frame::encodeAddress ( const char * start,
const char * end,
uint8_t * out,
bool command,
bool digipeater )
inlinestaticprotected

◆ fcs()

uint16_t tinymodem::AX25Frame::fcs ( const uint8_t * data,
size_t len )
inlinestatic

AX.25 frame check sequence: CRC-16-CCITT with reflected bits.

◆ fromText()

int tinymodem::AX25Frame::fromText ( const char * text,
size_t len,
uint8_t * frame )
inlinestatic

Converts a monitor text line (SRC>DEST,DIGI:info) into an AX.25 UI frame (without FCS): returns the frame length or 0 if invalid

◆ toText()

int tinymodem::AX25Frame::toText ( const uint8_t * frame,
size_t len,
char * text,
size_t text_size )
inlinestatic

Converts an AX.25 frame (without FCS) into a monitor text line (without newline): returns the text length or 0 if invalid

◆ writeKiss()

size_t tinymodem::AX25Frame::writeKiss ( Print & out,
const uint8_t * frame,
size_t len )
inlinestatic

Writes the frame as KISS data frame for port 0.

Member Data Documentation

◆ KISS_FEND

uint8_t tinymodem::AX25Frame::KISS_FEND = 0xC0
staticconstexpr

◆ KISS_FESC

uint8_t tinymodem::AX25Frame::KISS_FESC = 0xDB
staticconstexpr

◆ KISS_TFEND

uint8_t tinymodem::AX25Frame::KISS_TFEND = 0xDC
staticconstexpr

◆ KISS_TFESC

uint8_t tinymodem::AX25Frame::KISS_TFESC = 0xDD
staticconstexpr

◆ MAX_FRAME

int tinymodem::AX25Frame::MAX_FRAME = 330
staticconstexpr

◆ MIN_FRAME

int tinymodem::AX25Frame::MIN_FRAME = 15
staticconstexpr

The documentation for this class was generated from the following file: