1 #if !defined(_RADIOLIB_RTTY_H)
2 #define _RADIOLIB_RTTY_H
4 #include "../../TypeDef.h"
6 #if !defined(RADIOLIB_EXCLUDE_RTTY)
8 #include "../PhysicalLayer/PhysicalLayer.h"
9 #include "../AFSK/AFSK.h"
11 #define ITA2_FIGS 0x1B
12 #define ITA2_LTRS 0x1F
13 #define ITA2_LENGTH 32
18 static const char ITA2Table[ITA2_LENGTH][2] RADIOLIB_PROGMEM = {{
'\0',
'\0'}, {
'E',
'3'}, {
'\n',
'\n'}, {
'A',
'-'}, {
' ',
' '}, {
'S',
'\''}, {
'I',
'8'}, {
'U',
'7'},
19 {
'\r',
'\r'}, {
'D', 0x05}, {
'R',
'4'}, {
'J',
'\a'}, {
'N',
','}, {
'F',
'!'}, {
'C',
':'}, {
'K',
'('},
20 {
'T',
'5'}, {
'Z',
'+'}, {
'L',
')'}, {
'W',
'2'}, {
'H', 0x7F}, {
'Y',
'6'}, {
'P',
'0'}, {
'Q',
'1'},
21 {
'O',
'9'}, {
'B',
'?'}, {
'G',
'&'}, {0x7F, 0x7F}, {
'M',
'.'}, {
'X',
'/'}, {
'V',
';'}, {0x7F, 0x7F}};
64 #ifndef RADIOLIB_GODMODE
67 #ifdef RADIOLIB_STATIC_ONLY
68 char _str[RADIOLIB_STATIC_ARRAY_SIZE];
75 static uint16_t getBits(
char c);
80 #define ASCII_EXTENDED 1
97 #if !defined(RADIOLIB_EXCLUDE_AFSK)
123 int16_t
begin(
float base, uint32_t shift, uint16_t rate, uint8_t encoding = ASCII, uint8_t stopBits = 1);
130 size_t write(
const char* str);
131 size_t write(uint8_t* buff,
size_t len);
132 size_t write(uint8_t b);
134 size_t print(__FlashStringHelper*);
136 size_t print(
const String &);
137 size_t print(
const char[]);
139 size_t print(
unsigned char,
int = DEC);
140 size_t print(
int,
int = DEC);
141 size_t print(
unsigned int,
int = DEC);
142 size_t print(
long,
int = DEC);
143 size_t print(
unsigned long,
int = DEC);
144 size_t print(
double,
int = 2);
146 size_t println(
void);
147 size_t println(__FlashStringHelper*);
149 size_t println(
const String &);
150 size_t println(
const char[]);
151 size_t println(
char);
152 size_t println(
unsigned char,
int = DEC);
153 size_t println(
int,
int = DEC);
154 size_t println(
unsigned int,
int = DEC);
155 size_t println(
long,
int = DEC);
156 size_t println(
unsigned long,
int = DEC);
157 size_t println(
double,
int = 2);
159 #ifndef RADIOLIB_GODMODE
163 #if !defined(RADIOLIB_EXCLUDE_AFSK)
167 uint8_t _encoding = ASCII;
168 uint32_t _base = 0, _baseHz = 0;
169 uint32_t _shift = 0, _shiftHz = 0;
170 uint32_t _bitDuration = 0;
171 uint8_t _dataBits = 0;
172 uint8_t _stopBits = 0;
177 size_t printNumber(
unsigned long, uint8_t);
178 size_t printFloat(
double, uint8_t);
180 int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);