1 #if !defined(_RADIOLIB_HELLSCHREIBER_H)
2 #define _RADIOLIB_HELLSCHREIBER_H
4 #include "../../TypeDef.h"
6 #if !defined(RADIOLIB_EXCLUDE_HELLSCHREIBER)
8 #include "../PhysicalLayer/PhysicalLayer.h"
9 #include "../AFSK/AFSK.h"
11 #define RADIOLIB_HELL_FONT_WIDTH 7
12 #define RADIOLIB_HELL_FONT_HEIGHT 7
18 static const uint8_t HellFont[64][RADIOLIB_HELL_FONT_WIDTH - 2] RADIOLIB_NONVOLATILE = {
19 { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0000000 },
20 { 0b0001000, 0b0001000, 0b0001000, 0b0000000, 0b0001000 },
21 { 0b0010100, 0b0010100, 0b0000000, 0b0000000, 0b0000000 },
22 { 0b0010100, 0b0111110, 0b0010100, 0b0111110, 0b0010100 },
23 { 0b0111110, 0b0101000, 0b0111110, 0b0001010, 0b0111110 },
24 { 0b0110010, 0b0110100, 0b0001000, 0b0010110, 0b0100110 },
25 { 0b0010000, 0b0101000, 0b0010000, 0b0101000, 0b0110100 },
26 { 0b0001000, 0b0001000, 0b0000000, 0b0000000, 0b0000000 },
27 { 0b0000100, 0b0001000, 0b0001000, 0b0001000, 0b0000100 },
28 { 0b0010000, 0b0001000, 0b0001000, 0b0001000, 0b0010000 },
29 { 0b0010100, 0b0001000, 0b0010100, 0b0000000, 0b0000000 },
30 { 0b0001000, 0b0001000, 0b0111110, 0b0001000, 0b0001000 },
31 { 0b0000000, 0b0000000, 0b0000000, 0b0001000, 0b0010000 },
32 { 0b0000000, 0b0000000, 0b0111110, 0b0000000, 0b0000000 },
33 { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0001000 },
34 { 0b0000010, 0b0000100, 0b0001000, 0b0010000, 0b0100000 },
35 { 0b0011100, 0b0100110, 0b0101010, 0b0110010, 0b0011100 },
36 { 0b0011000, 0b0001000, 0b0001000, 0b0001000, 0b0001000 },
37 { 0b0011000, 0b0100100, 0b0001000, 0b0010000, 0b0111100 },
38 { 0b0111100, 0b0000100, 0b0011100, 0b0000100, 0b0111100 },
39 { 0b0100100, 0b0100100, 0b0111100, 0b0000100, 0b0000100 },
40 { 0b0011100, 0b0100000, 0b0111100, 0b0000100, 0b0111100 },
41 { 0b0111100, 0b0100000, 0b0111100, 0b0100100, 0b0111100 },
42 { 0b0111100, 0b0000100, 0b0001000, 0b0010000, 0b0100000 },
43 { 0b0111100, 0b0100100, 0b0011000, 0b0100100, 0b0111100 },
44 { 0b0111100, 0b0100100, 0b0111100, 0b0000100, 0b0111100 },
45 { 0b0000000, 0b0001000, 0b0000000, 0b0000000, 0b0001000 },
46 { 0b0000000, 0b0001000, 0b0000000, 0b0001000, 0b0001000 },
47 { 0b0000100, 0b0001000, 0b0010000, 0b0001000, 0b0000100 },
48 { 0b0000000, 0b0111110, 0b0000000, 0b0111110, 0b0000000 },
49 { 0b0010000, 0b0001000, 0b0000100, 0b0001000, 0b0010000 },
50 { 0b0011100, 0b0000100, 0b0001000, 0b0000000, 0b0001000 },
51 { 0b0011100, 0b0100010, 0b0101110, 0b0101010, 0b0001100 },
52 { 0b0111110, 0b0100010, 0b0111110, 0b0100010, 0b0100010 },
53 { 0b0111100, 0b0010010, 0b0011110, 0b0010010, 0b0111100 },
54 { 0b0011110, 0b0110000, 0b0100000, 0b0110000, 0b0011110 },
55 { 0b0111100, 0b0100010, 0b0100010, 0b0100010, 0b0111100 },
56 { 0b0111110, 0b0100000, 0b0111100, 0b0100000, 0b0111110 },
57 { 0b0111110, 0b0100000, 0b0111100, 0b0100000, 0b0100000 },
58 { 0b0111110, 0b0100000, 0b0101110, 0b0100010, 0b0111110 },
59 { 0b0100010, 0b0100010, 0b0111110, 0b0100010, 0b0100010 },
60 { 0b0011100, 0b0001000, 0b0001000, 0b0001000, 0b0011100 },
61 { 0b0111100, 0b0001000, 0b0001000, 0b0101000, 0b0111000 },
62 { 0b0100100, 0b0101000, 0b0110000, 0b0101000, 0b0100100 },
63 { 0b0100000, 0b0100000, 0b0100000, 0b0100000, 0b0111100 },
64 { 0b0100010, 0b0110110, 0b0101010, 0b0100010, 0b0100010 },
65 { 0b0100010, 0b0110010, 0b0101010, 0b0100110, 0b0100010 },
66 { 0b0011100, 0b0100010, 0b0100010, 0b0100010, 0b0011100 },
67 { 0b0111110, 0b0100010, 0b0111110, 0b0100000, 0b0100000 },
68 { 0b0111110, 0b0100010, 0b0100010, 0b0100110, 0b0111110 },
69 { 0b0111110, 0b0100010, 0b0111110, 0b0100100, 0b0100010 },
70 { 0b0111110, 0b0100000, 0b0111110, 0b0000010, 0b0111110 },
71 { 0b0111110, 0b0001000, 0b0001000, 0b0001000, 0b0001000 },
72 { 0b0100010, 0b0100010, 0b0100010, 0b0100010, 0b0111110 },
73 { 0b0100010, 0b0100010, 0b0010100, 0b0010100, 0b0001000 },
74 { 0b0100010, 0b0100010, 0b0101010, 0b0110110, 0b0100010 },
75 { 0b0100010, 0b0010100, 0b0001000, 0b0010100, 0b0100010 },
76 { 0b0100010, 0b0010100, 0b0001000, 0b0001000, 0b0001000 },
77 { 0b0111110, 0b0000100, 0b0001000, 0b0010000, 0b0111110 },
78 { 0b0001100, 0b0001000, 0b0001000, 0b0001000, 0b0001100 },
79 { 0b0100000, 0b0010000, 0b0001000, 0b0000100, 0b0000010 },
80 { 0b0011000, 0b0001000, 0b0001000, 0b0001000, 0b0011000 },
81 { 0b0001000, 0b0010100, 0b0000000, 0b0000000, 0b0000000 },
82 { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0111110 }
97 #if !defined(RADIOLIB_EXCLUDE_AFSK)
112 int16_t
begin(
float base,
float rate = 122.5);
127 size_t write(
const char* str);
128 size_t write(uint8_t* buff,
size_t len);
129 size_t write(uint8_t b);
131 #if defined(RADIOLIB_BUILD_ARDUINO)
132 size_t print(__FlashStringHelper*);
133 size_t print(
const String &);
135 size_t print(
const char[]);
137 size_t print(
unsigned char,
int = DEC);
138 size_t print(
int,
int = DEC);
139 size_t print(
unsigned int,
int = DEC);
140 size_t print(
long,
int = DEC);
141 size_t print(
unsigned long,
int = DEC);
142 size_t print(
double,
int = 2);
144 size_t println(
void);
145 #if defined(RADIOLIB_BUILD_ARDUINO)
146 size_t println(__FlashStringHelper*);
147 size_t println(
const String &);
149 size_t println(
const char[]);
150 size_t println(
char);
151 size_t println(
unsigned char,
int = DEC);
152 size_t println(
int,
int = DEC);
153 size_t println(
unsigned int,
int = DEC);
154 size_t println(
long,
int = DEC);
155 size_t println(
unsigned long,
int = DEC);
156 size_t println(
double,
int = 2);
158 #if !defined(RADIOLIB_GODMODE)
162 #if !defined(RADIOLIB_EXCLUDE_AFSK)
166 uint32_t baseFreq = 0, baseFreqHz = 0;
167 uint32_t pixelDuration = 0;
170 size_t printNumber(
unsigned long, uint8_t);
171 size_t printFloat(
double, uint8_t);
173 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
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:89
int16_t begin(float base, float rate=122.5)
Initialization method.
Definition: Hellschreiber.cpp:21
HellClient(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: Hellschreiber.cpp:6
size_t printGlyph(uint8_t *buff)
Method to "print" a buffer of pixels, this is exposed to allow users to send custom characters.
Definition: Hellschreiber.cpp:33
void setInversion(bool inv)
Invert text color.
Definition: Hellschreiber.cpp:57
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15