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 RADIOLIB_ITA2_FIGS 0x1B
12 #define RADIOLIB_ITA2_LTRS 0x1F
13 #define RADIOLIB_ITA2_LENGTH 32
18 static const char ITA2Table[RADIOLIB_ITA2_LENGTH][2] RADIOLIB_NONVOLATILE = {
19 {
'\0',
'\0'}, {
'E',
'3'}, {
'\n',
'\n'}, {
'A',
'-'}, {
' ',
' '}, {
'S',
'\''}, {
'I',
'8'}, {
'U',
'7'},
20 {
'\r',
'\r'}, {
'D', 0x05}, {
'R',
'4'}, {
'J',
'\a'}, {
'N',
','}, {
'F',
'!'}, {
'C',
':'}, {
'K',
'('},
21 {
'T',
'5'}, {
'Z',
'+'}, {
'L',
')'}, {
'W',
'2'}, {
'H', 0x7F}, {
'Y',
'6'}, {
'P',
'0'}, {
'Q',
'1'},
22 {
'O',
'9'}, {
'B',
'?'}, {
'G',
'&'}, {0x7F, 0x7F}, {
'M',
'.'}, {
'X',
'/'}, {
'V',
';'}, {0x7F, 0x7F}
61 #if !defined(RADIOLIB_GODMODE)
64 #if defined(RADIOLIB_STATIC_ONLY)
65 char strAscii[RADIOLIB_STATIC_ARRAY_SIZE];
72 static uint16_t getBits(
char c);
76 #define RADIOLIB_ASCII 0
77 #define RADIOLIB_ASCII_EXTENDED 1
78 #define RADIOLIB_ITA2 2
92 #if !defined(RADIOLIB_EXCLUDE_AFSK)
111 int16_t
begin(
float base, uint32_t shift, uint16_t rate, uint8_t enc = RADIOLIB_ASCII, uint8_t stopBits = 1);
124 size_t write(
const char* str);
125 size_t write(uint8_t* buff,
size_t len);
126 size_t write(uint8_t b);
128 #if defined(RADIOLIB_BUILD_ARDUINO)
129 size_t print(__FlashStringHelper*);
130 size_t print(
const String &);
133 size_t print(
const char[]);
135 size_t print(
unsigned char,
int = DEC);
136 size_t print(
int,
int = DEC);
137 size_t print(
unsigned int,
int = DEC);
138 size_t print(
long,
int = DEC);
139 size_t print(
unsigned long,
int = DEC);
140 size_t print(
double,
int = 2);
142 size_t println(
void);
143 #if defined(RADIOLIB_BUILD_ARDUINO)
144 size_t println(__FlashStringHelper*);
145 size_t println(
const String &);
148 size_t println(
const char[]);
149 size_t println(
char);
150 size_t println(
unsigned char,
int = DEC);
151 size_t println(
int,
int = DEC);
152 size_t println(
unsigned int,
int = DEC);
153 size_t println(
long,
int = DEC);
154 size_t println(
unsigned long,
int = DEC);
155 size_t println(
double,
int = 2);
157 #if !defined(RADIOLIB_GODMODE)
161 #if !defined(RADIOLIB_EXCLUDE_AFSK)
165 uint8_t encoding = RADIOLIB_ASCII;
166 uint32_t baseFreq = 0, baseFreqHz = 0;
167 uint32_t shiftFreq = 0, shiftFreqHz = 0;
168 uint32_t bitDuration = 0;
169 uint8_t dataBitsNum = 0;
170 uint8_t stopBitsNum = 0;
175 size_t printNumber(
unsigned long, uint8_t);
176 size_t printFloat(
double, uint8_t);
178 int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
ITA2-encoded string.
Definition: RTTY.h:29
uint8_t * byteArr()
Gets the ITA2 representation of the ASCII string set in constructor.
Definition: RTTY.cpp:42
size_t length()
Gets the length of the ITA2 string. This number is not the same as the length of ASCII-encoded string...
Definition: RTTY.cpp:30
ITA2String(char c)
Default single-character constructor.
Definition: RTTY.cpp:6
~ITA2String()
Default destructor.
Definition: RTTY.cpp:24
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:84
int16_t standby()
Stops transmitting.
Definition: RTTY.cpp:535
void idle()
Send out idle condition (RF tone at mark frequency).
Definition: RTTY.cpp:176
int16_t begin(float base, uint32_t shift, uint16_t rate, uint8_t enc=RADIOLIB_ASCII, uint8_t stopBits=1)
Initialization method.
Definition: RTTY.cpp:130
RTTYClient(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: RTTY.cpp:116