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 = {{
'\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 #if !defined(RADIOLIB_GODMODE)
67 #if defined(RADIOLIB_STATIC_ONLY)
68 char _str[RADIOLIB_STATIC_ARRAY_SIZE];
75 static uint16_t getBits(
char c);
79 #define RADIOLIB_ASCII 0
80 #define RADIOLIB_ASCII_EXTENDED 1
81 #define RADIOLIB_ITA2 2
97 #if !defined(RADIOLIB_EXCLUDE_AFSK)
123 int16_t
begin(
float base, uint32_t shift, uint16_t rate, uint8_t encoding = RADIOLIB_ASCII, uint8_t stopBits = 1);
137 size_t write(
const char* str);
138 size_t write(uint8_t* buff,
size_t len);
139 size_t write(uint8_t b);
141 size_t print(__FlashStringHelper*);
143 size_t print(
const String &);
144 size_t print(
const char[]);
146 size_t print(
unsigned char,
int = DEC);
147 size_t print(
int,
int = DEC);
148 size_t print(
unsigned int,
int = DEC);
149 size_t print(
long,
int = DEC);
150 size_t print(
unsigned long,
int = DEC);
151 size_t print(
double,
int = 2);
153 size_t println(
void);
154 size_t println(__FlashStringHelper*);
156 size_t println(
const String &);
157 size_t println(
const char[]);
158 size_t println(
char);
159 size_t println(
unsigned char,
int = DEC);
160 size_t println(
int,
int = DEC);
161 size_t println(
unsigned int,
int = DEC);
162 size_t println(
long,
int = DEC);
163 size_t println(
unsigned long,
int = DEC);
164 size_t println(
double,
int = 2);
166 #if !defined(RADIOLIB_GODMODE)
170 #if !defined(RADIOLIB_EXCLUDE_AFSK)
174 uint8_t _encoding = RADIOLIB_ASCII;
175 uint32_t _base = 0, _baseHz = 0;
176 uint32_t _shift = 0, _shiftHz = 0;
177 uint32_t _bitDuration = 0;
178 uint8_t _dataBits = 0;
179 uint8_t _stopBits = 0;
184 size_t printNumber(
unsigned long, uint8_t);
185 size_t printFloat(
double, uint8_t);
187 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:17
ITA2-encoded string.
Definition: RTTY.h:28
uint8_t * byteArr()
Gets the ITA2 representation of the ASCII string set in constructor.
Definition: RTTY.cpp:40
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:28
ITA2String(char c)
Default single-character constructor.
Definition: RTTY.cpp:4
~ITA2String()
Default destructor.
Definition: RTTY.cpp:22
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:14
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:88
int16_t standby()
Stops transmitting.
Definition: RTTY.cpp:529
void idle()
Send out idle condition (RF tone at mark frequency).
Definition: RTTY.cpp:174
int16_t begin(float base, uint32_t shift, uint16_t rate, uint8_t encoding=RADIOLIB_ASCII, uint8_t stopBits=1)
Initialization method.
Definition: RTTY.cpp:128
RTTYClient(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: RTTY.cpp:114