diff --git a/_a_f_s_k_8h_source.html b/_a_f_s_k_8h_source.html index 3dfd7d53..bc099cfd 100644 --- a/_a_f_s_k_8h_source.html +++ b/_a_f_s_k_8h_source.html @@ -101,41 +101,45 @@ $(document).ready(function(){initNavTree('_a_f_s_k_8h_source.html',''); initResi
17  public:
23  AFSKClient(PhysicalLayer* phy, uint32_t pin);
24 
-
29  int16_t begin();
+
29  AFSKClient(AFSKClient* aud);
30 
-
37  int16_t tone(uint16_t freq, bool autoStart = true);
-
38 
-
44  int16_t noTone(bool keepOn = false);
-
45 
-
46 #if !defined(RADIOLIB_GODMODE)
-
47  private:
-
48 #endif
-
49  PhysicalLayer* phyLayer;
-
50  uint32_t outPin;
+
35  int16_t begin();
+
36 
+
43  int16_t tone(uint16_t freq, bool autoStart = true);
+
44 
+
50  int16_t noTone(bool keepOn = false);
51 
-
52  // allow specific classes access the private PhysicalLayer pointer
-
53  friend class RTTYClient;
-
54  friend class MorseClient;
-
55  friend class HellClient;
-
56  friend class SSTVClient;
-
57  friend class AX25Client;
-
58  friend class FSK4Client;
-
59 };
-
60 
-
61 #endif
-
62 
-
63 #endif
+
52 #if !defined(RADIOLIB_GODMODE)
+
53  private:
+
54 #endif
+
55  PhysicalLayer* phyLayer;
+
56  uint32_t outPin;
+
57 
+
58  // allow specific classes access the private PhysicalLayer pointer
+
59  friend class RTTYClient;
+
60  friend class MorseClient;
+
61  friend class HellClient;
+
62  friend class SSTVClient;
+
63  friend class AX25Client;
+
64  friend class FSK4Client;
+
65  friend class BellClient;
+
66 };
+
67 
+
68 #endif
+
69 
+
70 #endif
AFSKClient
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
-
AFSKClient::begin
int16_t begin()
Initialization method.
Definition: AFSK.cpp:8
-
AFSKClient::noTone
int16_t noTone(bool keepOn=false)
Stops transmitting audio tone.
Definition: AFSK.cpp:27
-
AFSKClient::tone
int16_t tone(uint16_t freq, bool autoStart=true)
Start transmitting audio tone.
Definition: AFSK.cpp:12
+
AFSKClient::begin
int16_t begin()
Initialization method.
Definition: AFSK.cpp:13
+
AFSKClient::noTone
int16_t noTone(bool keepOn=false)
Stops transmitting audio tone.
Definition: AFSK.cpp:32
+
AFSKClient::tone
int16_t tone(uint16_t freq, bool autoStart=true)
Start transmitting audio tone.
Definition: AFSK.cpp:17
AFSKClient::AFSKClient
AFSKClient(PhysicalLayer *phy, uint32_t pin)
Default contructor.
Definition: AFSK.cpp:4
-
AX25Client
Client for AX25 communication.
Definition: AX25.h:249
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:243
+
BellClient
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:55
FSK4Client
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition: FSK4.h:15
-
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:89
-
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:92
+
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
+
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
-
RTTYClient
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:84
+
RTTYClient
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:17
SSTVClient
Client for SSTV transmissions.
Definition: SSTV.h:117
diff --git a/_a_p_r_s_8h_source.html b/_a_p_r_s_8h_source.html index 899faf53..030859f5 100644 --- a/_a_p_r_s_8h_source.html +++ b/_a_p_r_s_8h_source.html @@ -170,7 +170,7 @@ $(document).ready(function(){initNavTree('_a_p_r_s_8h_source.html',''); initResi
APRSClient::begin
int16_t begin(char sym, bool alt=false)
Initialization method.
Definition: APRS.cpp:11
APRSClient::sendPosition
int16_t sendPosition(char *destCallsign, uint8_t destSSID, char *lat, char *lon, char *msg=NULL, char *time=NULL)
Transmit position.
Definition: APRS.cpp:24
APRSClient::sendMicE
int16_t sendMicE(float lat, float lon, uint16_t heading, uint16_t speed, uint8_t type, uint8_t *telem=NULL, size_t telemLen=0, char *grid=NULL, char *status=NULL, int32_t alt=RADIOLIB_APRS_MIC_E_ALTITUDE_UNUSED)
Transmit position using Mic-E encoding.
Definition: APRS.cpp:61
-
AX25Client
Client for AX25 communication.
Definition: AX25.h:249
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:243
diff --git a/_a_x25_8h_source.html b/_a_x25_8h_source.html index 46573a8c..b4b8d551 100644 --- a/_a_x25_8h_source.html +++ b/_a_x25_8h_source.html @@ -95,210 +95,202 @@ $(document).ready(function(){initNavTree('_a_x25_8h_source.html',''); initResiza
7 
8 #include "../PhysicalLayer/PhysicalLayer.h"
9 #include "../AFSK/AFSK.h"
-
10 
-
11 // macros to access bits in byte array, from http://www.mathcs.emory.edu/~cheung/Courses/255/Syllabus/1-C-intro/bit-array.html
-
12 #define SET_BIT_IN_ARRAY(A, k) ( A[(k/8)] |= (1 << (k%8)) )
-
13 #define CLEAR_BIT_IN_ARRAY(A, k) ( A[(k/8)] &= ~(1 << (k%8)) )
-
14 #define TEST_BIT_IN_ARRAY(A, k) ( A[(k/8)] & (1 << (k%8)) )
-
15 #define GET_BIT_IN_ARRAY(A, k) ( (A[(k/8)] & (1 << (k%8))) ? 1 : 0 )
-
16 
-
17 // CRC-CCITT calculation macros
-
18 #define XOR(A, B) ( ((A) || (B)) && !((A) && (B)) )
-
19 #define CRC_CCITT_POLY 0x1021 // generator polynomial
-
20 #define CRC_CCITT_POLY_REVERSED 0x8408 // CRC_CCITT_POLY in reversed bit order
-
21 #define CRC_CCITT_INIT 0xFFFF // initial value
-
22 
-
23 // maximum callsign length in bytes
-
24 #define RADIOLIB_AX25_MAX_CALLSIGN_LEN 6
-
25 
-
26 // flag field MSB LSB DESCRIPTION
-
27 #define RADIOLIB_AX25_FLAG 0b01111110 // 7 0 AX.25 frame start/end flag
-
28 
-
29 // address field
-
30 #define RADIOLIB_AX25_SSID_COMMAND_DEST 0b10000000 // 7 7 frame type: command (set in destination SSID)
-
31 #define RADIOLIB_AX25_SSID_COMMAND_SOURCE 0b00000000 // 7 7 command (set in source SSID)
-
32 #define RADIOLIB_AX25_SSID_RESPONSE_DEST 0b00000000 // 7 7 response (set in destination SSID)
-
33 #define RADIOLIB_AX25_SSID_RESPONSE_SOURCE 0b10000000 // 7 7 response (set in source SSID)
-
34 #define RADIOLIB_AX25_SSID_HAS_NOT_BEEN_REPEATED 0b00000000 // 7 7 not repeated yet (set in repeater SSID)
-
35 #define RADIOLIB_AX25_SSID_HAS_BEEN_REPEATED 0b10000000 // 7 7 repeated (set in repeater SSID)
-
36 #define RADIOLIB_AX25_SSID_RESERVED_BITS 0b01100000 // 6 5 reserved bits in SSID
-
37 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_CONTINUE 0b00000000 // 0 0 HDLC extension bit: next octet contains more address information
-
38 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_END 0b00000001 // 0 0 address field end
-
39 
-
40 // control field
-
41 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE 0b01101100 // 7 2 U frame type: set asynchronous balanced mode (connect request)
-
42 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE_EXT 0b00101100 // 7 2 set asynchronous balanced mode extended (connect request with module 128)
-
43 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT 0b01000000 // 7 2 disconnect request
-
44 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT_MODE 0b00001100 // 7 2 disconnect mode (system busy or disconnected)
-
45 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_ACK 0b01100000 // 7 2 unnumbered acknowledge
-
46 #define RADIOLIB_AX25_CONTROL_U_FRAME_REJECT 0b10000100 // 7 2 frame reject
-
47 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_INFORMATION 0b00000000 // 7 2 unnumbered information
-
48 #define RADIOLIB_AX25_CONTROL_U_EXHANGE_IDENTIFICATION 0b10101100 // 7 2 exchange ID
-
49 #define RADIOLIB_AX25_CONTROL_U_TEST 0b11100000 // 7 2 test
-
50 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_ENABLED 0b00010000 // 4 4 control field poll/final bit: enabled
-
51 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_DISABLED 0b00000000 // 4 4 disabled
-
52 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_READY 0b00000000 // 3 2 S frame type: receive ready (system ready to receive)
-
53 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_NOT_READY 0b00000100 // 3 2 receive not ready (TNC buffer full)
-
54 #define RADIOLIB_AX25_CONTROL_S_REJECT 0b00001000 // 3 2 reject (out of sequence or duplicate)
-
55 #define RADIOLIB_AX25_CONTROL_S_SELECTIVE_REJECT 0b00001100 // 3 2 selective reject (single frame repeat request)
-
56 #define RADIOLIB_AX25_CONTROL_INFORMATION_FRAME 0b00000000 // 0 0 frame type: information (I frame)
-
57 #define RADIOLIB_AX25_CONTROL_SUPERVISORY_FRAME 0b00000001 // 1 0 supervisory (S frame)
-
58 #define RADIOLIB_AX25_CONTROL_UNNUMBERED_FRAME 0b00000011 // 1 0 unnumbered (U frame)
-
59 
-
60 // protocol identifier field
-
61 #define RADIOLIB_AX25_PID_ISO_8208 0x01
-
62 #define RADIOLIB_AX25_PID_TCP_IP_COMPRESSED 0x06
-
63 #define RADIOLIB_AX25_PID_TCP_IP_UNCOMPRESSED 0x07
-
64 #define RADIOLIB_AX25_PID_SEGMENTATION_FRAGMENT 0x08
-
65 #define RADIOLIB_AX25_PID_TEXNET_DATAGRAM_PROTOCOL 0xC3
-
66 #define RADIOLIB_AX25_PID_LINK_QUALITY_PROTOCOL 0xC4
-
67 #define RADIOLIB_AX25_PID_APPLETALK 0xCA
-
68 #define RADIOLIB_AX25_PID_APPLETALK_ARP 0xCB
-
69 #define RADIOLIB_AX25_PID_ARPA_INTERNET_PROTOCOL 0xCC
-
70 #define RADIOLIB_AX25_PID_ARPA_ADDRESS_RESOLUTION 0xCD
-
71 #define RADIOLIB_AX25_PID_FLEXNET 0xCE
-
72 #define RADIOLIB_AX25_PID_NET_ROM 0xCF
-
73 #define RADIOLIB_AX25_PID_NO_LAYER_3 0xF0
-
74 #define RADIOLIB_AX25_PID_ESCAPE_CHARACTER 0xFF
-
75 
-
76 // AFSK tones in Hz
-
77 #define RADIOLIB_AX25_AFSK_MARK 1200
-
78 #define RADIOLIB_AX25_AFSK_SPACE 2200
-
79 
-
80 // tone duration in us (for 1200 baud AFSK)
-
81 #define RADIOLIB_AX25_AFSK_TONE_DURATION 833
-
82 
-
87 class AX25Frame {
-
88  public:
-
92  char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
-
93 
-
97  uint8_t destSSID;
-
98 
-
102  char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
-
103 
-
107  uint8_t srcSSID;
-
108 
-
112  uint8_t numRepeaters;
-
113 
-
117  uint8_t control;
-
118 
-
122  uint8_t protocolID;
-
123 
-
127  uint16_t infoLen;
-
128 
-
132  uint8_t rcvSeqNumber;
-
133 
-
137  uint16_t sendSeqNumber;
+
10 #include "../BellModem/BellModem.h"
+
11 
+
12 // macros to access bits in byte array, from http://www.mathcs.emory.edu/~cheung/Courses/255/Syllabus/1-C-intro/bit-array.html
+
13 #define SET_BIT_IN_ARRAY(A, k) ( A[(k/8)] |= (1 << (k%8)) )
+
14 #define CLEAR_BIT_IN_ARRAY(A, k) ( A[(k/8)] &= ~(1 << (k%8)) )
+
15 #define TEST_BIT_IN_ARRAY(A, k) ( A[(k/8)] & (1 << (k%8)) )
+
16 #define GET_BIT_IN_ARRAY(A, k) ( (A[(k/8)] & (1 << (k%8))) ? 1 : 0 )
+
17 
+
18 // CRC-CCITT calculation macros
+
19 #define XOR(A, B) ( ((A) || (B)) && !((A) && (B)) )
+
20 #define CRC_CCITT_POLY 0x1021 // generator polynomial
+
21 #define CRC_CCITT_POLY_REVERSED 0x8408 // CRC_CCITT_POLY in reversed bit order
+
22 #define CRC_CCITT_INIT 0xFFFF // initial value
+
23 
+
24 // maximum callsign length in bytes
+
25 #define RADIOLIB_AX25_MAX_CALLSIGN_LEN 6
+
26 
+
27 // flag field MSB LSB DESCRIPTION
+
28 #define RADIOLIB_AX25_FLAG 0b01111110 // 7 0 AX.25 frame start/end flag
+
29 
+
30 // address field
+
31 #define RADIOLIB_AX25_SSID_COMMAND_DEST 0b10000000 // 7 7 frame type: command (set in destination SSID)
+
32 #define RADIOLIB_AX25_SSID_COMMAND_SOURCE 0b00000000 // 7 7 command (set in source SSID)
+
33 #define RADIOLIB_AX25_SSID_RESPONSE_DEST 0b00000000 // 7 7 response (set in destination SSID)
+
34 #define RADIOLIB_AX25_SSID_RESPONSE_SOURCE 0b10000000 // 7 7 response (set in source SSID)
+
35 #define RADIOLIB_AX25_SSID_HAS_NOT_BEEN_REPEATED 0b00000000 // 7 7 not repeated yet (set in repeater SSID)
+
36 #define RADIOLIB_AX25_SSID_HAS_BEEN_REPEATED 0b10000000 // 7 7 repeated (set in repeater SSID)
+
37 #define RADIOLIB_AX25_SSID_RESERVED_BITS 0b01100000 // 6 5 reserved bits in SSID
+
38 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_CONTINUE 0b00000000 // 0 0 HDLC extension bit: next octet contains more address information
+
39 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_END 0b00000001 // 0 0 address field end
+
40 
+
41 // control field
+
42 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE 0b01101100 // 7 2 U frame type: set asynchronous balanced mode (connect request)
+
43 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE_EXT 0b00101100 // 7 2 set asynchronous balanced mode extended (connect request with module 128)
+
44 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT 0b01000000 // 7 2 disconnect request
+
45 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT_MODE 0b00001100 // 7 2 disconnect mode (system busy or disconnected)
+
46 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_ACK 0b01100000 // 7 2 unnumbered acknowledge
+
47 #define RADIOLIB_AX25_CONTROL_U_FRAME_REJECT 0b10000100 // 7 2 frame reject
+
48 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_INFORMATION 0b00000000 // 7 2 unnumbered information
+
49 #define RADIOLIB_AX25_CONTROL_U_EXHANGE_IDENTIFICATION 0b10101100 // 7 2 exchange ID
+
50 #define RADIOLIB_AX25_CONTROL_U_TEST 0b11100000 // 7 2 test
+
51 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_ENABLED 0b00010000 // 4 4 control field poll/final bit: enabled
+
52 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_DISABLED 0b00000000 // 4 4 disabled
+
53 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_READY 0b00000000 // 3 2 S frame type: receive ready (system ready to receive)
+
54 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_NOT_READY 0b00000100 // 3 2 receive not ready (TNC buffer full)
+
55 #define RADIOLIB_AX25_CONTROL_S_REJECT 0b00001000 // 3 2 reject (out of sequence or duplicate)
+
56 #define RADIOLIB_AX25_CONTROL_S_SELECTIVE_REJECT 0b00001100 // 3 2 selective reject (single frame repeat request)
+
57 #define RADIOLIB_AX25_CONTROL_INFORMATION_FRAME 0b00000000 // 0 0 frame type: information (I frame)
+
58 #define RADIOLIB_AX25_CONTROL_SUPERVISORY_FRAME 0b00000001 // 1 0 supervisory (S frame)
+
59 #define RADIOLIB_AX25_CONTROL_UNNUMBERED_FRAME 0b00000011 // 1 0 unnumbered (U frame)
+
60 
+
61 // protocol identifier field
+
62 #define RADIOLIB_AX25_PID_ISO_8208 0x01
+
63 #define RADIOLIB_AX25_PID_TCP_IP_COMPRESSED 0x06
+
64 #define RADIOLIB_AX25_PID_TCP_IP_UNCOMPRESSED 0x07
+
65 #define RADIOLIB_AX25_PID_SEGMENTATION_FRAGMENT 0x08
+
66 #define RADIOLIB_AX25_PID_TEXNET_DATAGRAM_PROTOCOL 0xC3
+
67 #define RADIOLIB_AX25_PID_LINK_QUALITY_PROTOCOL 0xC4
+
68 #define RADIOLIB_AX25_PID_APPLETALK 0xCA
+
69 #define RADIOLIB_AX25_PID_APPLETALK_ARP 0xCB
+
70 #define RADIOLIB_AX25_PID_ARPA_INTERNET_PROTOCOL 0xCC
+
71 #define RADIOLIB_AX25_PID_ARPA_ADDRESS_RESOLUTION 0xCD
+
72 #define RADIOLIB_AX25_PID_FLEXNET 0xCE
+
73 #define RADIOLIB_AX25_PID_NET_ROM 0xCF
+
74 #define RADIOLIB_AX25_PID_NO_LAYER_3 0xF0
+
75 #define RADIOLIB_AX25_PID_ESCAPE_CHARACTER 0xFF
+
76 
+
81 class AX25Frame {
+
82  public:
+
86  char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
87 
+
91  uint8_t destSSID;
+
92 
+
96  char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
97 
+
101  uint8_t srcSSID;
+
102 
+
106  uint8_t numRepeaters;
+
107 
+
111  uint8_t control;
+
112 
+
116  uint8_t protocolID;
+
117 
+
121  uint16_t infoLen;
+
122 
+
126  uint8_t rcvSeqNumber;
+
127 
+
131  uint16_t sendSeqNumber;
+
132 
+
133  #if !defined(RADIOLIB_STATIC_ONLY)
+
137  uint8_t* info;
138 
-
139  #if !defined(RADIOLIB_STATIC_ONLY)
-
143  uint8_t* info;
-
144 
-
148  char** repeaterCallsigns;
-
149 
-
153  uint8_t* repeaterSSIDs;
-
154  #else
-
158  uint8_t info[RADIOLIB_STATIC_ARRAY_SIZE];
-
159 
-
163  char repeaterCallsigns[8][RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
142  char** repeaterCallsigns;
+
143 
+
147  uint8_t* repeaterSSIDs;
+
148  #else
+
152  uint8_t info[RADIOLIB_STATIC_ARRAY_SIZE];
+
153 
+
157  char repeaterCallsigns[8][RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
158 
+
162  uint8_t repeaterSSIDs[8];
+
163  #endif
164 
-
168  uint8_t repeaterSSIDs[8];
-
169  #endif
-
170 
-
179  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control);
-
180 
-
191  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control, uint8_t protocolID, const char* info);
-
192 
-
204  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control, uint8_t protocolID, uint8_t* info, uint16_t infoLen);
+
173  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control);
+
174 
+
185  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control, uint8_t protocolID, const char* info);
+
186 
+
198  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control, uint8_t protocolID, uint8_t* info, uint16_t infoLen);
+
199 
+
204  AX25Frame(const AX25Frame& frame);
205 
-
210  AX25Frame(const AX25Frame& frame);
-
211 
-
215  ~AX25Frame();
+
209  ~AX25Frame();
+
210 
+
215  AX25Frame& operator=(const AX25Frame& frame);
216 
-
221  AX25Frame& operator=(const AX25Frame& frame);
-
222 
-
230  int16_t setRepeaters(char** repeaterCallsigns, uint8_t* repeaterSSIDs, uint8_t numRepeaters);
+
224  int16_t setRepeaters(char** repeaterCallsigns, uint8_t* repeaterSSIDs, uint8_t numRepeaters);
+
225 
+
230  void setRecvSequence(uint8_t seqNumber);
231 
-
236  void setRecvSequence(uint8_t seqNumber);
-
237 
-
242  void setSendSequence(uint8_t seqNumber);
-
243 };
-
244 
-
249 class AX25Client {
-
250  public:
-
255  explicit AX25Client(PhysicalLayer* phy);
-
256 
-
257  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
262  explicit AX25Client(AFSKClient* audio);
-
263 
-
272  int16_t setCorrection(int16_t mark, int16_t space, float length = 1.0f);
-
273  #endif
-
274 
-
275  // basic methods
-
276 
-
286  int16_t begin(const char* srcCallsign, uint8_t srcSSID = 0x00, uint8_t preLen = 8);
-
287 
-
288  #if defined(RADIOLIB_BUILD_ARDUINO)
-
297  int16_t transmit(String& str, const char* destCallsign, uint8_t destSSID = 0x00);
-
298  #endif
-
299 
-
308  int16_t transmit(const char* str, const char* destCallsign, uint8_t destSSID = 0x00);
-
309 
-
315  int16_t sendFrame(AX25Frame* frame);
-
316 
-
317 #if !defined(RADIOLIB_GODMODE)
-
318  private:
-
319 #endif
-
320  friend class APRSClient;
-
321 
-
322  PhysicalLayer* phyLayer;
-
323  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
324  AFSKClient* audioClient;
-
325  uint32_t afskMark;
-
326  uint32_t afskSpace;
-
327  uint32_t afskLen;
-
328  #endif
-
329 
-
330  char sourceCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1] = {0, 0, 0, 0, 0, 0, 0};
-
331  uint8_t sourceSSID = 0;
-
332  uint16_t preambleLen = 0;
-
333 
-
334  static uint16_t getFrameCheckSequence(uint8_t* buff, size_t len);
-
335 
-
336  void getCallsign(char* buff);
-
337  uint8_t getSSID();
-
338 };
-
339 
-
340 #endif
-
341 
-
342 #endif
+
236  void setSendSequence(uint8_t seqNumber);
+
237 };
+
238 
+
243 class AX25Client {
+
244  public:
+
249  explicit AX25Client(PhysicalLayer* phy);
+
250 
+
251  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
256  explicit AX25Client(AFSKClient* audio);
+
257 
+
266  int16_t setCorrection(int16_t mark, int16_t space, float length = 1.0f);
+
267  #endif
+
268 
+
269  // basic methods
+
270 
+
280  int16_t begin(const char* srcCallsign, uint8_t srcSSID = 0x00, uint8_t preLen = 8);
+
281 
+
282  #if defined(RADIOLIB_BUILD_ARDUINO)
+
291  int16_t transmit(String& str, const char* destCallsign, uint8_t destSSID = 0x00);
+
292  #endif
+
293 
+
302  int16_t transmit(const char* str, const char* destCallsign, uint8_t destSSID = 0x00);
+
303 
+
309  int16_t sendFrame(AX25Frame* frame);
+
310 
+
311 #if !defined(RADIOLIB_GODMODE)
+
312  private:
+
313 #endif
+
314  friend class APRSClient;
+
315 
+
316  PhysicalLayer* phyLayer;
+
317  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
318  BellClient* bellModem;
+
319  #endif
+
320 
+
321  char sourceCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1] = {0, 0, 0, 0, 0, 0, 0};
+
322  uint8_t sourceSSID = 0;
+
323  uint16_t preambleLen = 0;
+
324 
+
325  static uint16_t getFrameCheckSequence(uint8_t* buff, size_t len);
+
326 
+
327  void getCallsign(char* buff);
+
328  uint8_t getSSID();
+
329 };
+
330 
+
331 #endif
+
332 
+
333 #endif
AFSKClient
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
APRSClient
Client for APRS communication.
Definition: APRS.h:65
-
AX25Client
Client for AX25 communication.
Definition: AX25.h:249
-
AX25Client::sendFrame
int16_t sendFrame(AX25Frame *frame)
Transmit arbitrary AX.25 frame.
Definition: AX25.cpp:215
-
AX25Client::setCorrection
int16_t setCorrection(int16_t mark, int16_t space, float length=1.0f)
Set AFSK tone correction offset. On some platforms, this is required to get the audio produced by the...
Definition: AX25.cpp:170
-
AX25Client::transmit
int16_t transmit(const char *str, const char *destCallsign, uint8_t destSSID=0x00)
Transmit unnumbered information (UI) frame.
Definition: AX25.cpp:204
-
AX25Client::begin
int16_t begin(const char *srcCallsign, uint8_t srcSSID=0x00, uint8_t preLen=8)
Initialization method.
Definition: AX25.cpp:178
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:243
+
AX25Client::sendFrame
int16_t sendFrame(AX25Frame *frame)
Transmit arbitrary AX.25 frame.
Definition: AX25.cpp:217
+
AX25Client::setCorrection
int16_t setCorrection(int16_t mark, int16_t space, float length=1.0f)
Set AFSK tone correction offset. On some platforms, this is required to get the audio produced by the...
Definition: AX25.cpp:168
+
AX25Client::transmit
int16_t transmit(const char *str, const char *destCallsign, uint8_t destSSID=0x00)
Transmit unnumbered information (UI) frame.
Definition: AX25.cpp:206
+
AX25Client::begin
int16_t begin(const char *srcCallsign, uint8_t srcSSID=0x00, uint8_t preLen=8)
Initialization method.
Definition: AX25.cpp:180
AX25Client::AX25Client
AX25Client(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: AX25.cpp:154
-
AX25Frame
Abstraction of AX.25 frame format.
Definition: AX25.h:87
+
AX25Frame
Abstraction of AX.25 frame format.
Definition: AX25.h:81
AX25Frame::setSendSequence
void setSendSequence(uint8_t seqNumber)
Method to set send sequence number.
Definition: AX25.cpp:150
AX25Frame::AX25Frame
AX25Frame(const char *destCallsign, uint8_t destSSID, const char *srcCallsign, uint8_t srcSSID, uint8_t control)
Overloaded constructor, for frames without info field.
Definition: AX25.cpp:5
-
AX25Frame::repeaterCallsigns
char ** repeaterCallsigns
Array of repeater callsigns.
Definition: AX25.h:148
-
AX25Frame::srcCallsign
char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the source station.
Definition: AX25.h:102
+
AX25Frame::repeaterCallsigns
char ** repeaterCallsigns
Array of repeater callsigns.
Definition: AX25.h:142
+
AX25Frame::srcCallsign
char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the source station.
Definition: AX25.h:96
AX25Frame::setRecvSequence
void setRecvSequence(uint8_t seqNumber)
Method to set receive sequence number.
Definition: AX25.cpp:146
-
AX25Frame::sendSeqNumber
uint16_t sendSeqNumber
Send sequence number.
Definition: AX25.h:137
-
AX25Frame::srcSSID
uint8_t srcSSID
SSID of the source station.
Definition: AX25.h:107
+
AX25Frame::sendSeqNumber
uint16_t sendSeqNumber
Send sequence number.
Definition: AX25.h:131
+
AX25Frame::srcSSID
uint8_t srcSSID
SSID of the source station.
Definition: AX25.h:101
AX25Frame::operator=
AX25Frame & operator=(const AX25Frame &frame)
Overload for assignment operator.
Definition: AX25.cpp:75
-
AX25Frame::control
uint8_t control
The control field.
Definition: AX25.h:117
-
AX25Frame::repeaterSSIDs
uint8_t * repeaterSSIDs
Array of repeater SSIDs.
Definition: AX25.h:153
-
AX25Frame::infoLen
uint16_t infoLen
Number of bytes in the information field.
Definition: AX25.h:127
+
AX25Frame::control
uint8_t control
The control field.
Definition: AX25.h:111
+
AX25Frame::repeaterSSIDs
uint8_t * repeaterSSIDs
Array of repeater SSIDs.
Definition: AX25.h:147
+
AX25Frame::infoLen
uint16_t infoLen
Number of bytes in the information field.
Definition: AX25.h:121
AX25Frame::setRepeaters
int16_t setRepeaters(char **repeaterCallsigns, uint8_t *repeaterSSIDs, uint8_t numRepeaters)
Method to set the repeater callsigns and SSIDs.
Definition: AX25.cpp:110
-
AX25Frame::destCallsign
char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the destination station.
Definition: AX25.h:92
-
AX25Frame::info
uint8_t * info
The info field.
Definition: AX25.h:143
-
AX25Frame::protocolID
uint8_t protocolID
The protocol identifier (PID) field.
Definition: AX25.h:122
+
AX25Frame::destCallsign
char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the destination station.
Definition: AX25.h:86
+
AX25Frame::info
uint8_t * info
The info field.
Definition: AX25.h:137
+
AX25Frame::protocolID
uint8_t protocolID
The protocol identifier (PID) field.
Definition: AX25.h:116
AX25Frame::~AX25Frame
~AX25Frame()
Default destructor.
Definition: AX25.cpp:57
-
AX25Frame::numRepeaters
uint8_t numRepeaters
Number of repeaters to be used.
Definition: AX25.h:112
-
AX25Frame::rcvSeqNumber
uint8_t rcvSeqNumber
Receive sequence number.
Definition: AX25.h:132
-
AX25Frame::destSSID
uint8_t destSSID
SSID of the destination station.
Definition: AX25.h:97
+
AX25Frame::numRepeaters
uint8_t numRepeaters
Number of repeaters to be used.
Definition: AX25.h:106
+
AX25Frame::rcvSeqNumber
uint8_t rcvSeqNumber
Receive sequence number.
Definition: AX25.h:126
+
AX25Frame::destSSID
uint8_t destSSID
SSID of the destination station.
Definition: AX25.h:91
+
BellClient
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:55
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
diff --git a/_bell_modem_8h_source.html b/_bell_modem_8h_source.html new file mode 100644 index 00000000..a99306c4 --- /dev/null +++ b/_bell_modem_8h_source.html @@ -0,0 +1,183 @@ + + + + + + + +RadioLib: src/protocols/BellModem/BellModem.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BellModem.h
+
+
+
1 #if !defined(_RADIOLIB_BELL_MODEM_H)
+
2 #define _RADIOLIB_BELL_MODEM_H
+
3 
+
4 #include "../../TypeDef.h"
+
5 #include "../../Module.h"
+
6 #if defined(RADIOLIB_BUILD_ARDUINO)
+
7 #include "../../ArduinoHal.h"
+
8 #endif
+
9 
+
10 #include "../PhysicalLayer/PhysicalLayer.h"
+
11 #include "../AFSK/AFSK.h"
+
12 #include "../Print/Print.h"
+
13 #include "../Print/ITA2String.h"
+
14 
+
19 struct BellModem_t {
+
23  int16_t freqMark;
+
24 
+
28  int16_t freqSpace;
+
29 
+
33  int16_t baudRate;
+
34 
+
38  int16_t freqMarkReply;
+
39 
+
43  int16_t freqSpaceReply;
+
44 };
+
45 
+
46 // currently implemented Bell modems
+
47 extern const struct BellModem_t Bell101;
+
48 extern const struct BellModem_t Bell103;
+
49 extern const struct BellModem_t Bell202;
+
50 
+
55 class BellClient: public AFSKClient, public RadioLibPrint {
+
56 
+
57  public:
+
58 
+
63  bool reply;
+
64 
+
70  explicit BellClient(PhysicalLayer* phy, uint32_t pin);
+
71 
+
76  BellClient(AFSKClient* aud);
+
77 
+
83  int16_t begin(const BellModem_t& modem);
+
84 
+
90  int16_t setModem(const BellModem_t& modem);
+
91 
+
98  int16_t setCorrection(float corr);
+
99 
+
105  size_t write(uint8_t b);
+
106 
+
110  int16_t idle();
+
111 
+
115  int16_t standby();
+
116 
+
117 #if !defined(RADIOLIB_GODMODE)
+
118  private:
+
119 #endif
+
120  BellModem_t modemType;
+
121  float correction = 1.0;
+
122  uint16_t toneLen = 0;
+
123  bool autoStart = true;
+
124 
+
125 };
+
126 
+
127 #endif
+
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
+
int16_t begin()
Initialization method.
Definition: AFSK.cpp:13
+
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:55
+
int16_t setModem(const BellModem_t &modem)
Set Bell modem.
Definition: BellModem.cpp:44
+
int16_t standby()
Set the modem to standby (transmitter off).
Definition: BellModem.cpp:92
+
int16_t setCorrection(float corr)
Set correction coefficient for tone length.
Definition: BellModem.cpp:50
+
bool reply
Whether the modem is replying. On some modems, the replying station has different tone frequencies.
Definition: BellModem.h:63
+
size_t write(uint8_t b)
Write one byte. Implementation of interface of the RadioLibPrint/Print class.
Definition: BellModem.cpp:54
+
int16_t idle()
Set the modem to idle (ready to transmit).
Definition: BellModem.cpp:87
+
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
+
Definition: Print.h:12
+
Definition: BellModem.cpp:4
+
Definition: BellModem.cpp:12
+
Definition: BellModem.cpp:20
+
Definition of the Bell-compatible modem.
Definition: BellModem.h:19
+
int16_t freqSpace
Frequency of the space tone.
Definition: BellModem.h:28
+
int16_t freqSpaceReply
Frequency of the space tone when replying.
Definition: BellModem.h:43
+
int16_t baudRate
Baud rate.
Definition: BellModem.h:33
+
int16_t freqMarkReply
Frequency of the mark tone when replying.
Definition: BellModem.h:38
+
int16_t freqMark
Frequency of the mark tone.
Definition: BellModem.h:23
+
+
+ + + + diff --git a/_build_opt_8h_source.html b/_build_opt_8h_source.html index 902ab3d3..661e2509 100644 --- a/_build_opt_8h_source.html +++ b/_build_opt_8h_source.html @@ -355,208 +355,212 @@ $(document).ready(function(){initNavTree('_build_opt_8h_source.html',''); initRe
267  #define RADIOLIB_NONVOLATILE PROGMEM
268  #endif
269 
-
270  #if !defined(RADIOLIB_NONVOLATILE_READ_BYTE)
-
271  #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
+
270  #if !defined(RADIOLIB_NONVOLATILE_PTR)
+
271  #define RADIOLIB_NONVOLATILE_PTR PGM_P
272  #endif
273 
-
274  #if !defined(RADIOLIB_NONVOLATILE_READ_DWORD)
-
275  #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
+
274  #if !defined(RADIOLIB_NONVOLATILE_READ_BYTE)
+
275  #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
276  #endif
277 
-
278  #if !defined(RADIOLIB_TYPE_ALIAS)
-
279  #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
278  #if !defined(RADIOLIB_NONVOLATILE_READ_DWORD)
+
279  #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
280  #endif
281 
-
282  #if !defined(RADIOLIB_ARDUINOHAL_PIN_MODE_CAST)
-
283  #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
+
282  #if !defined(RADIOLIB_TYPE_ALIAS)
+
283  #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
284  #endif
285 
-
286  #if !defined(RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST)
-
287  #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
+
286  #if !defined(RADIOLIB_ARDUINOHAL_PIN_MODE_CAST)
+
287  #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
288  #endif
289 
-
290  #if !defined(RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST)
-
291  #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
+
290  #if !defined(RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST)
+
291  #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
292  #endif
293 
-
294 #else
-
295  // generic non-Arduino platform
-
296  #define RADIOLIB_PLATFORM "Generic"
+
294  #if !defined(RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST)
+
295  #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
+
296  #endif
297 
-
298  #define RADIOLIB_NC (0xFF)
-
299  #define RADIOLIB_NONVOLATILE
-
300  #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) (*((uint8_t *)(void *)(addr)))
-
301  #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) (*((uint32_t *)(void *)(addr)))
-
302  #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
-
303 
-
304  #if !defined(RADIOLIB_DEBUG_PORT)
-
305  #define RADIOLIB_DEBUG_PORT stdout
-
306  #endif
+
298 #else
+
299  // generic non-Arduino platform
+
300  #define RADIOLIB_PLATFORM "Generic"
+
301 
+
302  #define RADIOLIB_NC (0xFF)
+
303  #define RADIOLIB_NONVOLATILE
+
304  #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) (*((uint8_t *)(void *)(addr)))
+
305  #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) (*((uint32_t *)(void *)(addr)))
+
306  #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
307 
-
308  #define DEC 10
-
309  #define HEX 16
-
310  #define OCT 8
-
311  #define BIN 2
-
312 
-
313  #include <algorithm>
-
314  #include <stdint.h>
-
315 
-
316  using std::max;
-
317  using std::min;
-
318 #endif
+
308  #if !defined(RADIOLIB_DEBUG_PORT)
+
309  #define RADIOLIB_DEBUG_PORT stdout
+
310  #endif
+
311 
+
312  #define DEC 10
+
313  #define HEX 16
+
314  #define OCT 8
+
315  #define BIN 2
+
316 
+
317  #include <algorithm>
+
318  #include <stdint.h>
319 
-
320 /*
-
321  * Uncomment to enable debug output.
-
322  * Warning: Debug output will slow down the whole system significantly.
-
323  * Also, it will result in larger compiled binary.
-
324  * Levels: debug - only main info
-
325  * verbose - full transcript of all SPI communication
-
326  */
-
327 #if !defined(RADIOLIB_DEBUG)
-
328  //#define RADIOLIB_DEBUG
-
329 #endif
-
330 #if !defined(RADIOLIB_VERBOSE)
-
331  //#define RADIOLIB_VERBOSE
-
332 #endif
-
333 
-
334 // set which output port should be used for debug output
-
335 // may be Serial port (on Arduino) or file like stdout or stderr (on generic platforms)
-
336 #if defined(RADIOLIB_BUILD_ARDUINO) && !defined(RADIOLIB_DEBUG_PORT)
-
337  #define RADIOLIB_DEBUG_PORT Serial
-
338 #endif
-
339 
-
340 /*
-
341  * Uncomment to enable "paranoid" SPI mode
-
342  * Every write to an SPI register using SPI set function will be verified by a subsequent read operation.
-
343  * This improves reliablility, but slightly slows down communication.
-
344  * Note: Enabled by default.
-
345  */
-
346 #if !defined(RADIOLIB_SPI_PARANOID)
-
347  #define RADIOLIB_SPI_PARANOID
-
348 #endif
-
349 
-
350 /*
-
351  * Uncomment to enable parameter range checking
-
352  * RadioLib will check provided parameters (such as frequency) against limits determined by the device manufacturer.
-
353  * It is highly advised to keep this macro defined, removing it will allow invalid values to be set,
-
354  * possibly leading to bricked module and/or program crashing.
-
355  * Note: Enabled by default.
-
356  */
-
357 #if !defined(RADIOLIB_CHECK_PARAMS)
-
358  #define RADIOLIB_CHECK_PARAMS
-
359 #endif
-
360 
-
361 /*
-
362  * Uncomment to enable SX127x errata fix
-
363  * Warning: SX127x errata fix has been reported to cause issues with LoRa bandwidths lower than 62.5 kHz.
-
364  * It should only be enabled if you really are observing some errata-related issue.
-
365  * Note: Disabled by default.
-
366  */
-
367 #if !defined(RADIOLIB_FIX_ERRATA_SX127X)
-
368  //#define RADIOLIB_FIX_ERRATA_SX127X
-
369 #endif
-
370 
-
371 /*
-
372  * Uncomment to enable god mode - all methods and member variables in all classes will be made public, thus making them accessible from Arduino code.
-
373  * Warning: Come on, it's called GOD mode - obviously only use this if you know what you're doing.
-
374  * Failure to heed the above warning may result in bricked module.
-
375  */
-
376 #if !defined(RADIOLIB_GODMODE)
-
377  //#define RADIOLIB_GODMODE
-
378 #endif
-
379 
-
380 /*
-
381  * Uncomment to enable low-level hardware access
-
382  * This will make some hardware methods like SPI get/set accessible from the user sketch - think of it as "god mode lite"
-
383  * Warning: RadioLib won't stop you from writing invalid stuff into your device, so it's quite easy to brick your module with this.
-
384  */
-
385 #if !defined(RADIOLIB_LOW_LEVEL)
-
386  //#define RADIOLIB_LOW_LEVEL
-
387 #endif
-
388 
-
389 /*
-
390  * Uncomment to enable pre-defined modules when using RadioShield.
-
391  */
-
392 #if !defined(RADIOLIB_RADIOSHIELD)
-
393  //#define RADIOLIB_RADIOSHIELD
-
394 #endif
-
395 
-
396 /*
-
397  * Uncomment to enable interrupt-based timing control
-
398  * For details, see https://github.com/jgromes/RadioLib/wiki/Interrupt-Based-Timing
-
399  */
-
400 #if !defined(RADIOLIB_INTERRUPT_TIMING)
-
401  //#define RADIOLIB_INTERRUPT_TIMING
-
402 #endif
-
403 
-
404 /*
-
405  * Uncomment to enable static-only memory management: no dynamic allocation will be performed.
-
406  * Warning: Large static arrays will be created in some methods. It is not advised to send large packets in this mode.
-
407  */
-
408 #if !defined(RADIOLIB_STATIC_ONLY)
-
409  //#define RADIOLIB_STATIC_ONLY
-
410 #endif
-
411 
-
412 // set the size of static arrays to use
-
413 #if !defined(RADIOLIB_STATIC_ARRAY_SIZE)
-
414  #define RADIOLIB_STATIC_ARRAY_SIZE (256)
-
415 #endif
-
416 
-
417 // This only compiles on STM32 boards with SUBGHZ module, but also
-
418 // include when generating docs
-
419 #if (!defined(ARDUINO_ARCH_STM32) || !defined(SUBGHZSPI_BASE)) && !defined(DOXYGEN)
-
420  #define RADIOLIB_EXCLUDE_STM32WLX
-
421 #endif
-
422 
-
423 #if defined(RADIOLIB_DEBUG)
-
424  #if defined(RADIOLIB_BUILD_ARDUINO)
-
425  #define RADIOLIB_DEBUG_PRINT(...) Module::serialPrintf(__VA_ARGS__)
-
426  #define RADIOLIB_DEBUG_PRINTLN(M, ...) Module::serialPrintf(M "\n", ##__VA_ARGS__)
-
427  #else
-
428  #if !defined(RADIOLIB_DEBUG_PRINT)
-
429  #define RADIOLIB_DEBUG_PRINT(...) fprintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__)
-
430  #endif
-
431  #if !defined(RADIOLIB_DEBUG_PRINTLN)
-
432  #define RADIOLIB_DEBUG_PRINTLN(M, ...) fprintf(RADIOLIB_DEBUG_PORT, M "\n", ##__VA_ARGS__)
-
433  #endif
-
434  #endif
-
435 #else
-
436  #define RADIOLIB_DEBUG_PRINT(...) {}
-
437  #define RADIOLIB_DEBUG_PRINTLN(...) {}
-
438 #endif
-
439 
-
440 #if defined(RADIOLIB_VERBOSE)
-
441  #define RADIOLIB_VERBOSE_PRINT(...) RADIOLIB_DEBUG_PRINT(__VA_ARGS__)
-
442  #define RADIOLIB_VERBOSE_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN(__VA_ARGS__)
-
443 #else
-
444  #define RADIOLIB_VERBOSE_PRINT(...) {}
-
445  #define RADIOLIB_VERBOSE_PRINTLN(...) {}
-
446 #endif
-
447 
-
451 #define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
-
452 
-
453 
-
457 #if defined(RADIOLIB_CHECK_PARAMS)
-
458  #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
-
459 #else
-
460  #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
-
461 #endif
-
462 
-
463 #if defined(RADIOLIB_FIX_ERRATA_SX127X)
-
464  #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
-
465 #else
-
466  #define RADIOLIB_ERRATA_SX127X(...) {}
-
467 #endif
-
468 
-
469 // version definitions
-
470 #define RADIOLIB_VERSION_MAJOR (0x06)
-
471 #define RADIOLIB_VERSION_MINOR (0x00)
-
472 #define RADIOLIB_VERSION_PATCH (0x00)
-
473 #define RADIOLIB_VERSION_EXTRA (0x00)
-
474 
-
475 #define RADIOLIB_VERSION ((RADIOLIB_VERSION_MAJOR << 24) | (RADIOLIB_VERSION_MINOR << 16) | (RADIOLIB_VERSION_PATCH << 8) | (RADIOLIB_VERSION_EXTRA))
-
476 
-
477 #endif
+
320  using std::max;
+
321  using std::min;
+
322 #endif
+
323 
+
324 /*
+
325  * Uncomment to enable debug output.
+
326  * Warning: Debug output will slow down the whole system significantly.
+
327  * Also, it will result in larger compiled binary.
+
328  * Levels: debug - only main info
+
329  * verbose - full transcript of all SPI communication
+
330  */
+
331 #if !defined(RADIOLIB_DEBUG)
+
332  //#define RADIOLIB_DEBUG
+
333 #endif
+
334 #if !defined(RADIOLIB_VERBOSE)
+
335  //#define RADIOLIB_VERBOSE
+
336 #endif
+
337 
+
338 // set which output port should be used for debug output
+
339 // may be Serial port (on Arduino) or file like stdout or stderr (on generic platforms)
+
340 #if defined(RADIOLIB_BUILD_ARDUINO) && !defined(RADIOLIB_DEBUG_PORT)
+
341  #define RADIOLIB_DEBUG_PORT Serial
+
342 #endif
+
343 
+
344 /*
+
345  * Uncomment to enable "paranoid" SPI mode
+
346  * Every write to an SPI register using SPI set function will be verified by a subsequent read operation.
+
347  * This improves reliablility, but slightly slows down communication.
+
348  * Note: Enabled by default.
+
349  */
+
350 #if !defined(RADIOLIB_SPI_PARANOID)
+
351  #define RADIOLIB_SPI_PARANOID
+
352 #endif
+
353 
+
354 /*
+
355  * Uncomment to enable parameter range checking
+
356  * RadioLib will check provided parameters (such as frequency) against limits determined by the device manufacturer.
+
357  * It is highly advised to keep this macro defined, removing it will allow invalid values to be set,
+
358  * possibly leading to bricked module and/or program crashing.
+
359  * Note: Enabled by default.
+
360  */
+
361 #if !defined(RADIOLIB_CHECK_PARAMS)
+
362  #define RADIOLIB_CHECK_PARAMS
+
363 #endif
+
364 
+
365 /*
+
366  * Uncomment to enable SX127x errata fix
+
367  * Warning: SX127x errata fix has been reported to cause issues with LoRa bandwidths lower than 62.5 kHz.
+
368  * It should only be enabled if you really are observing some errata-related issue.
+
369  * Note: Disabled by default.
+
370  */
+
371 #if !defined(RADIOLIB_FIX_ERRATA_SX127X)
+
372  //#define RADIOLIB_FIX_ERRATA_SX127X
+
373 #endif
+
374 
+
375 /*
+
376  * Uncomment to enable god mode - all methods and member variables in all classes will be made public, thus making them accessible from Arduino code.
+
377  * Warning: Come on, it's called GOD mode - obviously only use this if you know what you're doing.
+
378  * Failure to heed the above warning may result in bricked module.
+
379  */
+
380 #if !defined(RADIOLIB_GODMODE)
+
381  //#define RADIOLIB_GODMODE
+
382 #endif
+
383 
+
384 /*
+
385  * Uncomment to enable low-level hardware access
+
386  * This will make some hardware methods like SPI get/set accessible from the user sketch - think of it as "god mode lite"
+
387  * Warning: RadioLib won't stop you from writing invalid stuff into your device, so it's quite easy to brick your module with this.
+
388  */
+
389 #if !defined(RADIOLIB_LOW_LEVEL)
+
390  //#define RADIOLIB_LOW_LEVEL
+
391 #endif
+
392 
+
393 /*
+
394  * Uncomment to enable pre-defined modules when using RadioShield.
+
395  */
+
396 #if !defined(RADIOLIB_RADIOSHIELD)
+
397  //#define RADIOLIB_RADIOSHIELD
+
398 #endif
+
399 
+
400 /*
+
401  * Uncomment to enable interrupt-based timing control
+
402  * For details, see https://github.com/jgromes/RadioLib/wiki/Interrupt-Based-Timing
+
403  */
+
404 #if !defined(RADIOLIB_INTERRUPT_TIMING)
+
405  //#define RADIOLIB_INTERRUPT_TIMING
+
406 #endif
+
407 
+
408 /*
+
409  * Uncomment to enable static-only memory management: no dynamic allocation will be performed.
+
410  * Warning: Large static arrays will be created in some methods. It is not advised to send large packets in this mode.
+
411  */
+
412 #if !defined(RADIOLIB_STATIC_ONLY)
+
413  //#define RADIOLIB_STATIC_ONLY
+
414 #endif
+
415 
+
416 // set the size of static arrays to use
+
417 #if !defined(RADIOLIB_STATIC_ARRAY_SIZE)
+
418  #define RADIOLIB_STATIC_ARRAY_SIZE (256)
+
419 #endif
+
420 
+
421 // This only compiles on STM32 boards with SUBGHZ module, but also
+
422 // include when generating docs
+
423 #if (!defined(ARDUINO_ARCH_STM32) || !defined(SUBGHZSPI_BASE)) && !defined(DOXYGEN)
+
424  #define RADIOLIB_EXCLUDE_STM32WLX
+
425 #endif
+
426 
+
427 #if defined(RADIOLIB_DEBUG)
+
428  #if defined(RADIOLIB_BUILD_ARDUINO)
+
429  #define RADIOLIB_DEBUG_PRINT(...) Module::serialPrintf(__VA_ARGS__)
+
430  #define RADIOLIB_DEBUG_PRINTLN(M, ...) Module::serialPrintf(M "\n", ##__VA_ARGS__)
+
431  #else
+
432  #if !defined(RADIOLIB_DEBUG_PRINT)
+
433  #define RADIOLIB_DEBUG_PRINT(...) fprintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__)
+
434  #endif
+
435  #if !defined(RADIOLIB_DEBUG_PRINTLN)
+
436  #define RADIOLIB_DEBUG_PRINTLN(M, ...) fprintf(RADIOLIB_DEBUG_PORT, M "\n", ##__VA_ARGS__)
+
437  #endif
+
438  #endif
+
439 #else
+
440  #define RADIOLIB_DEBUG_PRINT(...) {}
+
441  #define RADIOLIB_DEBUG_PRINTLN(...) {}
+
442 #endif
+
443 
+
444 #if defined(RADIOLIB_VERBOSE)
+
445  #define RADIOLIB_VERBOSE_PRINT(...) RADIOLIB_DEBUG_PRINT(__VA_ARGS__)
+
446  #define RADIOLIB_VERBOSE_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN(__VA_ARGS__)
+
447 #else
+
448  #define RADIOLIB_VERBOSE_PRINT(...) {}
+
449  #define RADIOLIB_VERBOSE_PRINTLN(...) {}
+
450 #endif
+
451 
+
455 #define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
+
456 
+
457 
+
461 #if defined(RADIOLIB_CHECK_PARAMS)
+
462  #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
+
463 #else
+
464  #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
+
465 #endif
+
466 
+
467 #if defined(RADIOLIB_FIX_ERRATA_SX127X)
+
468  #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
+
469 #else
+
470  #define RADIOLIB_ERRATA_SX127X(...) {}
+
471 #endif
+
472 
+
473 // version definitions
+
474 #define RADIOLIB_VERSION_MAJOR (0x06)
+
475 #define RADIOLIB_VERSION_MINOR (0x00)
+
476 #define RADIOLIB_VERSION_PATCH (0x00)
+
477 #define RADIOLIB_VERSION_EXTRA (0x00)
+
478 
+
479 #define RADIOLIB_VERSION ((RADIOLIB_VERSION_MAJOR << 24) | (RADIOLIB_VERSION_MINOR << 16) | (RADIOLIB_VERSION_PATCH << 8) | (RADIOLIB_VERSION_EXTRA))
+
480 
+
481 #endif
diff --git a/_hellschreiber_8h_source.html b/_hellschreiber_8h_source.html index 595673db..78e260ef 100644 --- a/_hellschreiber_8h_source.html +++ b/_hellschreiber_8h_source.html @@ -95,157 +95,131 @@ $(document).ready(function(){initNavTree('_hellschreiber_8h_source.html',''); in
7 
8 #include "../PhysicalLayer/PhysicalLayer.h"
9 #include "../AFSK/AFSK.h"
-
10 
-
11 #define RADIOLIB_HELL_FONT_WIDTH 7
-
12 #define RADIOLIB_HELL_FONT_HEIGHT 7
-
13 
-
14 // font definition: characters are stored in rows,
-
15 // least significant byte of each character is the first row
-
16 // Hellschreiber use 7x7 characters, but this simplified font uses only 5x5
-
17 // the extra bytes aren't stored
-
18 static const uint8_t HellFont[64][RADIOLIB_HELL_FONT_WIDTH - 2] RADIOLIB_NONVOLATILE = {
-
19  { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0000000 }, // space
-
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 }, // 0
-
36  { 0b0011000, 0b0001000, 0b0001000, 0b0001000, 0b0001000 }, // 1
-
37  { 0b0011000, 0b0100100, 0b0001000, 0b0010000, 0b0111100 }, // 2
-
38  { 0b0111100, 0b0000100, 0b0011100, 0b0000100, 0b0111100 }, // 3
-
39  { 0b0100100, 0b0100100, 0b0111100, 0b0000100, 0b0000100 }, // 4
-
40  { 0b0011100, 0b0100000, 0b0111100, 0b0000100, 0b0111100 }, // 5
-
41  { 0b0111100, 0b0100000, 0b0111100, 0b0100100, 0b0111100 }, // 6
-
42  { 0b0111100, 0b0000100, 0b0001000, 0b0010000, 0b0100000 }, // 7
-
43  { 0b0111100, 0b0100100, 0b0011000, 0b0100100, 0b0111100 }, // 8
-
44  { 0b0111100, 0b0100100, 0b0111100, 0b0000100, 0b0111100 }, // 9
-
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 }, // A
-
53  { 0b0111100, 0b0010010, 0b0011110, 0b0010010, 0b0111100 }, // B
-
54  { 0b0011110, 0b0110000, 0b0100000, 0b0110000, 0b0011110 }, // C
-
55  { 0b0111100, 0b0100010, 0b0100010, 0b0100010, 0b0111100 }, // D
-
56  { 0b0111110, 0b0100000, 0b0111100, 0b0100000, 0b0111110 }, // E
-
57  { 0b0111110, 0b0100000, 0b0111100, 0b0100000, 0b0100000 }, // F
-
58  { 0b0111110, 0b0100000, 0b0101110, 0b0100010, 0b0111110 }, // G
-
59  { 0b0100010, 0b0100010, 0b0111110, 0b0100010, 0b0100010 }, // H
-
60  { 0b0011100, 0b0001000, 0b0001000, 0b0001000, 0b0011100 }, // I
-
61  { 0b0111100, 0b0001000, 0b0001000, 0b0101000, 0b0111000 }, // J
-
62  { 0b0100100, 0b0101000, 0b0110000, 0b0101000, 0b0100100 }, // K
-
63  { 0b0100000, 0b0100000, 0b0100000, 0b0100000, 0b0111100 }, // L
-
64  { 0b0100010, 0b0110110, 0b0101010, 0b0100010, 0b0100010 }, // M
-
65  { 0b0100010, 0b0110010, 0b0101010, 0b0100110, 0b0100010 }, // N
-
66  { 0b0011100, 0b0100010, 0b0100010, 0b0100010, 0b0011100 }, // O
-
67  { 0b0111110, 0b0100010, 0b0111110, 0b0100000, 0b0100000 }, // P
-
68  { 0b0111110, 0b0100010, 0b0100010, 0b0100110, 0b0111110 }, // Q
-
69  { 0b0111110, 0b0100010, 0b0111110, 0b0100100, 0b0100010 }, // R
-
70  { 0b0111110, 0b0100000, 0b0111110, 0b0000010, 0b0111110 }, // S
-
71  { 0b0111110, 0b0001000, 0b0001000, 0b0001000, 0b0001000 }, // T
-
72  { 0b0100010, 0b0100010, 0b0100010, 0b0100010, 0b0111110 }, // U
-
73  { 0b0100010, 0b0100010, 0b0010100, 0b0010100, 0b0001000 }, // V
-
74  { 0b0100010, 0b0100010, 0b0101010, 0b0110110, 0b0100010 }, // W
-
75  { 0b0100010, 0b0010100, 0b0001000, 0b0010100, 0b0100010 }, // X
-
76  { 0b0100010, 0b0010100, 0b0001000, 0b0001000, 0b0001000 }, // Y
-
77  { 0b0111110, 0b0000100, 0b0001000, 0b0010000, 0b0111110 }, // Z
-
78  { 0b0001100, 0b0001000, 0b0001000, 0b0001000, 0b0001100 }, // [
-
79  { 0b0100000, 0b0010000, 0b0001000, 0b0000100, 0b0000010 }, // backslash
-
80  { 0b0011000, 0b0001000, 0b0001000, 0b0001000, 0b0011000 }, // ]
-
81  { 0b0001000, 0b0010100, 0b0000000, 0b0000000, 0b0000000 }, // ^
-
82  { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0111110 } // _
-
83 };
-
84 
-
89 class HellClient {
-
90  public:
-
95  explicit HellClient(PhysicalLayer* phy);
-
96 
-
97  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
102  explicit HellClient(AFSKClient* audio);
-
103  #endif
-
104 
-
105  // basic methods
-
106 
-
112  int16_t begin(float base, float rate = 122.5);
-
113 
-
119  size_t printGlyph(uint8_t* buff);
-
120 
-
125  void setInversion(bool inv);
-
126 
-
127  size_t write(const char* str);
-
128  size_t write(uint8_t* buff, size_t len);
-
129  size_t write(uint8_t b);
-
130 
-
131  #if defined(RADIOLIB_BUILD_ARDUINO)
-
132  size_t print(__FlashStringHelper*);
-
133  size_t print(const String &);
-
134  #endif
-
135  size_t print(const char[]);
-
136  size_t print(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);
-
143 
-
144  size_t println(void);
-
145  #if defined(RADIOLIB_BUILD_ARDUINO)
-
146  size_t println(__FlashStringHelper*);
-
147  size_t println(const String &);
-
148  #endif
-
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);
-
157 
-
158 #if !defined(RADIOLIB_GODMODE)
-
159  private:
-
160 #endif
-
161  PhysicalLayer* phyLayer;
-
162  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
163  AFSKClient* audioClient;
-
164  #endif
-
165 
-
166  uint32_t baseFreq = 0, baseFreqHz = 0;
-
167  uint32_t pixelDuration = 0;
-
168  bool invert = false;
-
169 
-
170  size_t printNumber(unsigned long, uint8_t);
-
171  size_t printFloat(double, uint8_t);
-
172 
-
173  int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);
-
174  int16_t standby();
-
175 };
-
176 
-
177 #endif
-
178 
-
179 #endif
+
10 #include "../Print/Print.h"
+
11 
+
12 #define RADIOLIB_HELL_FONT_WIDTH 7
+
13 #define RADIOLIB_HELL_FONT_HEIGHT 7
+
14 
+
15 // font definition: characters are stored in rows,
+
16 // least significant byte of each character is the first row
+
17 // Hellschreiber use 7x7 characters, but this simplified font uses only 5x5
+
18 // the extra bytes aren't stored
+
19 static const uint8_t HellFont[64][RADIOLIB_HELL_FONT_WIDTH - 2] RADIOLIB_NONVOLATILE = {
+
20  { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0000000 }, // space
+
21  { 0b0001000, 0b0001000, 0b0001000, 0b0000000, 0b0001000 }, // !
+
22  { 0b0010100, 0b0010100, 0b0000000, 0b0000000, 0b0000000 }, // "
+
23  { 0b0010100, 0b0111110, 0b0010100, 0b0111110, 0b0010100 }, // #
+
24  { 0b0111110, 0b0101000, 0b0111110, 0b0001010, 0b0111110 }, // $
+
25  { 0b0110010, 0b0110100, 0b0001000, 0b0010110, 0b0100110 }, // %
+
26  { 0b0010000, 0b0101000, 0b0010000, 0b0101000, 0b0110100 }, // &
+
27  { 0b0001000, 0b0001000, 0b0000000, 0b0000000, 0b0000000 }, // '
+
28  { 0b0000100, 0b0001000, 0b0001000, 0b0001000, 0b0000100 }, // (
+
29  { 0b0010000, 0b0001000, 0b0001000, 0b0001000, 0b0010000 }, // )
+
30  { 0b0010100, 0b0001000, 0b0010100, 0b0000000, 0b0000000 }, // *
+
31  { 0b0001000, 0b0001000, 0b0111110, 0b0001000, 0b0001000 }, // +
+
32  { 0b0000000, 0b0000000, 0b0000000, 0b0001000, 0b0010000 }, // ,
+
33  { 0b0000000, 0b0000000, 0b0111110, 0b0000000, 0b0000000 }, // -
+
34  { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0001000 }, // .
+
35  { 0b0000010, 0b0000100, 0b0001000, 0b0010000, 0b0100000 }, // /
+
36  { 0b0011100, 0b0100110, 0b0101010, 0b0110010, 0b0011100 }, // 0
+
37  { 0b0011000, 0b0001000, 0b0001000, 0b0001000, 0b0001000 }, // 1
+
38  { 0b0011000, 0b0100100, 0b0001000, 0b0010000, 0b0111100 }, // 2
+
39  { 0b0111100, 0b0000100, 0b0011100, 0b0000100, 0b0111100 }, // 3
+
40  { 0b0100100, 0b0100100, 0b0111100, 0b0000100, 0b0000100 }, // 4
+
41  { 0b0011100, 0b0100000, 0b0111100, 0b0000100, 0b0111100 }, // 5
+
42  { 0b0111100, 0b0100000, 0b0111100, 0b0100100, 0b0111100 }, // 6
+
43  { 0b0111100, 0b0000100, 0b0001000, 0b0010000, 0b0100000 }, // 7
+
44  { 0b0111100, 0b0100100, 0b0011000, 0b0100100, 0b0111100 }, // 8
+
45  { 0b0111100, 0b0100100, 0b0111100, 0b0000100, 0b0111100 }, // 9
+
46  { 0b0000000, 0b0001000, 0b0000000, 0b0000000, 0b0001000 }, // :
+
47  { 0b0000000, 0b0001000, 0b0000000, 0b0001000, 0b0001000 }, // ;
+
48  { 0b0000100, 0b0001000, 0b0010000, 0b0001000, 0b0000100 }, // <
+
49  { 0b0000000, 0b0111110, 0b0000000, 0b0111110, 0b0000000 }, // =
+
50  { 0b0010000, 0b0001000, 0b0000100, 0b0001000, 0b0010000 }, // >
+
51  { 0b0011100, 0b0000100, 0b0001000, 0b0000000, 0b0001000 }, // ?
+
52  { 0b0011100, 0b0100010, 0b0101110, 0b0101010, 0b0001100 }, // @
+
53  { 0b0111110, 0b0100010, 0b0111110, 0b0100010, 0b0100010 }, // A
+
54  { 0b0111100, 0b0010010, 0b0011110, 0b0010010, 0b0111100 }, // B
+
55  { 0b0011110, 0b0110000, 0b0100000, 0b0110000, 0b0011110 }, // C
+
56  { 0b0111100, 0b0100010, 0b0100010, 0b0100010, 0b0111100 }, // D
+
57  { 0b0111110, 0b0100000, 0b0111100, 0b0100000, 0b0111110 }, // E
+
58  { 0b0111110, 0b0100000, 0b0111100, 0b0100000, 0b0100000 }, // F
+
59  { 0b0111110, 0b0100000, 0b0101110, 0b0100010, 0b0111110 }, // G
+
60  { 0b0100010, 0b0100010, 0b0111110, 0b0100010, 0b0100010 }, // H
+
61  { 0b0011100, 0b0001000, 0b0001000, 0b0001000, 0b0011100 }, // I
+
62  { 0b0111100, 0b0001000, 0b0001000, 0b0101000, 0b0111000 }, // J
+
63  { 0b0100100, 0b0101000, 0b0110000, 0b0101000, 0b0100100 }, // K
+
64  { 0b0100000, 0b0100000, 0b0100000, 0b0100000, 0b0111100 }, // L
+
65  { 0b0100010, 0b0110110, 0b0101010, 0b0100010, 0b0100010 }, // M
+
66  { 0b0100010, 0b0110010, 0b0101010, 0b0100110, 0b0100010 }, // N
+
67  { 0b0011100, 0b0100010, 0b0100010, 0b0100010, 0b0011100 }, // O
+
68  { 0b0111110, 0b0100010, 0b0111110, 0b0100000, 0b0100000 }, // P
+
69  { 0b0111110, 0b0100010, 0b0100010, 0b0100110, 0b0111110 }, // Q
+
70  { 0b0111110, 0b0100010, 0b0111110, 0b0100100, 0b0100010 }, // R
+
71  { 0b0111110, 0b0100000, 0b0111110, 0b0000010, 0b0111110 }, // S
+
72  { 0b0111110, 0b0001000, 0b0001000, 0b0001000, 0b0001000 }, // T
+
73  { 0b0100010, 0b0100010, 0b0100010, 0b0100010, 0b0111110 }, // U
+
74  { 0b0100010, 0b0100010, 0b0010100, 0b0010100, 0b0001000 }, // V
+
75  { 0b0100010, 0b0100010, 0b0101010, 0b0110110, 0b0100010 }, // W
+
76  { 0b0100010, 0b0010100, 0b0001000, 0b0010100, 0b0100010 }, // X
+
77  { 0b0100010, 0b0010100, 0b0001000, 0b0001000, 0b0001000 }, // Y
+
78  { 0b0111110, 0b0000100, 0b0001000, 0b0010000, 0b0111110 }, // Z
+
79  { 0b0001100, 0b0001000, 0b0001000, 0b0001000, 0b0001100 }, // [
+
80  { 0b0100000, 0b0010000, 0b0001000, 0b0000100, 0b0000010 }, // backslash
+
81  { 0b0011000, 0b0001000, 0b0001000, 0b0001000, 0b0011000 }, // ]
+
82  { 0b0001000, 0b0010100, 0b0000000, 0b0000000, 0b0000000 }, // ^
+
83  { 0b0000000, 0b0000000, 0b0000000, 0b0000000, 0b0111110 } // _
+
84 };
+
85 
+
90 class HellClient: public RadioLibPrint {
+
91  public:
+
96  explicit HellClient(PhysicalLayer* phy);
+
97 
+
98  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
103  explicit HellClient(AFSKClient* audio);
+
104  #endif
+
105 
+
106  // basic methods
+
107 
+
113  int16_t begin(float base, float rate = 122.5);
+
114 
+
120  size_t printGlyph(uint8_t* buff);
+
121 
+
126  void setInversion(bool inv);
+
127 
+
133  size_t write(uint8_t b);
+
134 
+
135 #if !defined(RADIOLIB_GODMODE)
+
136  private:
+
137 #endif
+
138  PhysicalLayer* phyLayer;
+
139  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
140  AFSKClient* audioClient;
+
141  #endif
+
142 
+
143  uint32_t baseFreq = 0, baseFreqHz = 0;
+
144  uint32_t pixelDuration = 0;
+
145  bool invert = false;
+
146 
+
147  size_t printNumber(unsigned long, uint8_t);
+
148  size_t printFloat(double, uint8_t);
+
149 
+
150  int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);
+
151  int16_t standby();
+
152 };
+
153 
+
154 #endif
+
155 
+
156 #endif
AFSKClient
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
-
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:89
-
HellClient::begin
int16_t begin(float base, float rate=122.5)
Initialization method.
Definition: Hellschreiber.cpp:21
+
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
+
HellClient::begin
int16_t begin(float base, float rate=122.5)
Initialization method.
Definition: Hellschreiber.cpp:22
+
HellClient::write
size_t write(uint8_t b)
Write one byte. Implementation of interface of the RadioLibPrint/Print class.
Definition: Hellschreiber.cpp:62
HellClient::HellClient
HellClient(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: Hellschreiber.cpp:6
-
HellClient::printGlyph
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
-
HellClient::setInversion
void setInversion(bool inv)
Invert text color.
Definition: Hellschreiber.cpp:57
+
HellClient::printGlyph
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:34
+
HellClient::setInversion
void setInversion(bool inv)
Invert text color.
Definition: Hellschreiber.cpp:58
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
+
RadioLibPrint
Definition: Print.h:12
diff --git a/_i_t_a2_string_8h_source.html b/_i_t_a2_string_8h_source.html new file mode 100644 index 00000000..d8be366e --- /dev/null +++ b/_i_t_a2_string_8h_source.html @@ -0,0 +1,150 @@ + + + + + + + +RadioLib: src/protocols/Print/ITA2String.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ITA2String.h
+
+
+
1 #if !defined(_RADIOLIB_ITA2_STRING_H)
+
2 #define _RADIOLIB_ITA2_STRING_H
+
3 
+
4 #include "../../TypeDef.h"
+
5 
+
6 #define RADIOLIB_ITA2_FIGS 0x1B
+
7 #define RADIOLIB_ITA2_LTRS 0x1F
+
8 #define RADIOLIB_ITA2_LENGTH 32
+
9 
+
10 // ITA2 character table: - position in array corresponds to 5-bit ITA2 code
+
11 // - characters to the left are in letters shift, characters to the right in figures shift
+
12 // - characters marked 0x7F do not have ASCII equivalent
+
13 static const char ITA2Table[RADIOLIB_ITA2_LENGTH][2] RADIOLIB_NONVOLATILE = {
+
14  {'\0', '\0'}, {'E', '3'}, {'\n', '\n'}, {'A', '-'}, {' ', ' '}, {'S', '\''}, {'I', '8'}, {'U', '7'},
+
15  {'\r', '\r'}, {'D', 0x05}, {'R', '4'}, {'J', '\a'}, {'N', ','}, {'F', '!'}, {'C', ':'}, {'K', '('},
+
16  {'T', '5'}, {'Z', '+'}, {'L', ')'}, {'W', '2'}, {'H', 0x7F}, {'Y', '6'}, {'P', '0'}, {'Q', '1'},
+
17  {'O', '9'}, {'B', '?'}, {'G', '&'}, {0x7F, 0x7F}, {'M', '.'}, {'X', '/'}, {'V', ';'}, {0x7F, 0x7F}
+
18 };
+
19 
+
24 class ITA2String {
+
25  public:
+
30  ITA2String(char c);
+
31 
+
36  ITA2String(const char* str);
+
37 
+
41  ~ITA2String();
+
42 
+
47  size_t length();
+
48 
+
54  uint8_t* byteArr();
+
55 
+
56 #if !defined(RADIOLIB_GODMODE)
+
57  private:
+
58 #endif
+
59  #if defined(RADIOLIB_STATIC_ONLY)
+
60  char strAscii[RADIOLIB_STATIC_ARRAY_SIZE];
+
61  #else
+
62  char* strAscii;
+
63  #endif
+
64  size_t asciiLen;
+
65  size_t ita2Len;
+
66 
+
67  static uint16_t getBits(char c);
+
68 };
+
69 
+
70 #endif
+
ITA2-encoded string.
Definition: ITA2String.h:24
+
uint8_t * byteArr()
Gets the ITA2 representation of the ASCII string set in constructor.
Definition: ITA2String.cpp:39
+
size_t length()
Gets the length of the ITA2 string. This number is not the same as the length of ASCII-encoded string...
Definition: ITA2String.cpp:27
+
ITA2String(char c)
Default single-character constructor.
Definition: ITA2String.cpp:3
+
~ITA2String()
Default destructor.
Definition: ITA2String.cpp:21
+
+
+ + + + diff --git a/_morse_8h_source.html b/_morse_8h_source.html index 967c9ed8..5f3bbef5 100644 --- a/_morse_8h_source.html +++ b/_morse_8h_source.html @@ -92,175 +92,149 @@ $(document).ready(function(){initNavTree('_morse_8h_source.html',''); initResiza
4 #include "../../TypeDef.h"
5 #include "../PhysicalLayer/PhysicalLayer.h"
6 #include "../AFSK/AFSK.h"
-
7 
-
8 #define RADIOLIB_MORSE_DOT 0b0
-
9 #define RADIOLIB_MORSE_DASH 0b1
-
10 #define RADIOLIB_MORSE_GUARDBIT 0b1
-
11 #define RADIOLIB_MORSE_UNSUPORTED 0xFF
-
12 #define RADIOLIB_MORSE_ASCII_OFFSET 32
-
13 #define RADIOLIB_MORSE_INTER_SYMBOL 0x00
-
14 #define RADIOLIB_MORSE_CHAR_COMPLETE 0x01
-
15 #define RADIOLIB_MORSE_WORD_COMPLETE 0x02
-
16 
-
17 // Morse character table: - using codes defined in ITU-R M.1677-1
-
18 // - Morse code representation is saved LSb first, using additional bit as guard
-
19 // - position in array corresponds ASCII code minus RADIOLIB_MORSE_ASCII_OFFSET
-
20 // - ASCII characters marked RADIOLIB_MORSE_UNSUPORTED do not have ITU-R M.1677-1 equivalent
-
21 static const uint8_t MorseTable[] RADIOLIB_NONVOLATILE = {
-
22  0b00, // space
-
23  0b110101, // ! (unsupported)
-
24  0b1010010, // "
-
25  RADIOLIB_MORSE_UNSUPORTED, // # (unsupported)
-
26  RADIOLIB_MORSE_UNSUPORTED, // $ (unsupported)
-
27  RADIOLIB_MORSE_UNSUPORTED, // % (unsupported)
-
28  RADIOLIB_MORSE_UNSUPORTED, // & (unsupported)
-
29  0b1011110, // '
-
30  0b101101, // (
-
31  0b1101101, // )
-
32  RADIOLIB_MORSE_UNSUPORTED, // * (unsupported)
-
33  0b101010, // +
-
34  0b1110011, // ,
-
35  0b1100001, // -
-
36  0b1101010, // .
-
37  0b101001, // /
-
38  0b111111, // 0
-
39  0b111110, // 1
-
40  0b111100, // 2
-
41  0b111000, // 3
-
42  0b110000, // 4
-
43  0b100000, // 5
-
44  0b100001, // 6
-
45  0b100011, // 7
-
46  0b100111, // 8
-
47  0b101111, // 9
-
48  0b1000111, // :
-
49  RADIOLIB_MORSE_UNSUPORTED, // ; (unsupported)
-
50  RADIOLIB_MORSE_UNSUPORTED, // < (unsupported)
-
51  0b110001, // =
-
52  RADIOLIB_MORSE_UNSUPORTED, // > (unsupported)
-
53  0b1001100, // ?
-
54  0b1010110, // @
-
55  0b110, // A
-
56  0b10001, // B
-
57  0b10101, // C
-
58  0b1001, // D
-
59  0b10, // E
-
60  0b10100, // F
-
61  0b1011, // G
-
62  0b10000, // H
-
63  0b100, // I
-
64  0b11110, // J
-
65  0b1101, // K
-
66  0b10010, // L
-
67  0b111, // M
-
68  0b101, // N
-
69  0b1111, // O
-
70  0b10110, // P
-
71  0b11011, // Q
-
72  0b1010, // R
-
73  0b1000, // S
-
74  0b11, // T
-
75  0b1100, // U
-
76  0b11000, // V
-
77  0b1110, // W
-
78  0b11001, // X
-
79  0b11101, // Y
-
80  0b10011, // Z
-
81  RADIOLIB_MORSE_UNSUPORTED, // [ (unsupported)
-
82  RADIOLIB_MORSE_UNSUPORTED, // \ (unsupported)
-
83  RADIOLIB_MORSE_UNSUPORTED, // ] (unsupported)
-
84  0b1101000, // ^ (unsupported, used as alias for end of work)
-
85  0b110101 // _ (unsupported, used as alias for starting signal)
-
86 };
-
87 
-
92 class MorseClient {
-
93  public:
-
98  explicit MorseClient(PhysicalLayer* phy);
-
99 
-
100  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
105  explicit MorseClient(AFSKClient* audio);
-
106  #endif
-
107 
-
108  // basic methods
-
109 
-
116  int16_t begin(float base, uint8_t speed = 20);
-
117 
-
122  size_t startSignal();
-
123 
-
130  static char decode(uint8_t symbol, uint8_t len);
-
131 
-
141  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
142  int read(uint8_t* symbol, uint8_t* len, float low = 0.75f, float high = 1.25f);
-
143  #endif
-
144 
-
145  size_t write(const char* str);
-
146  size_t write(uint8_t* buff, size_t len);
-
147  size_t write(uint8_t b);
-
148 
-
149  #if defined(RADIOLIB_BUILD_ARDUINO)
-
150  size_t print(__FlashStringHelper*);
-
151  size_t print(const String &);
-
152  #endif
-
153  size_t print(const char[]);
-
154  size_t print(char);
-
155  size_t print(unsigned char, int = DEC);
-
156  size_t print(int, int = DEC);
-
157  size_t print(unsigned int, int = DEC);
-
158  size_t print(long, int = DEC);
-
159  size_t print(unsigned long, int = DEC);
-
160  size_t print(double, int = 2);
-
161 
-
162  size_t println(void);
-
163  #if defined(RADIOLIB_BUILD_ARDUINO)
-
164  size_t println(__FlashStringHelper*);
-
165  size_t println(const String &);
-
166  #endif
-
167  size_t println(const char[]);
-
168  size_t println(char);
-
169  size_t println(unsigned char, int = DEC);
-
170  size_t println(int, int = DEC);
-
171  size_t println(unsigned int, int = DEC);
-
172  size_t println(long, int = DEC);
-
173  size_t println(unsigned long, int = DEC);
-
174  size_t println(double, int = 2);
-
175 
-
176 #if !defined(RADIOLIB_GODMODE)
-
177  private:
-
178 #endif
-
179  PhysicalLayer* phyLayer;
-
180  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
181  AFSKClient* audioClient;
-
182  #endif
-
183 
-
184  uint32_t baseFreq = 0, baseFreqHz = 0;
-
185  float basePeriod = 0.0f;
-
186  uint32_t dotLength = 0;
-
187  uint32_t dashLength = 0;
-
188  uint32_t letterSpace = 0;
-
189  uint16_t wordSpace = 0;
-
190 
-
191  // variables to keep decoding state
-
192  uint32_t signalCounter = 0;
-
193  uint32_t signalStart = 0;
-
194  uint32_t pauseCounter = 0;
-
195  uint32_t pauseStart = 0;
-
196 
-
197  size_t printNumber(unsigned long, uint8_t);
-
198  size_t printFloat(double, uint8_t);
-
199 
-
200  int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);
-
201  int16_t standby();
-
202 };
-
203 
-
204 #endif
+
7 #include "../Print/Print.h"
+
8 
+
9 #define RADIOLIB_MORSE_DOT 0b0
+
10 #define RADIOLIB_MORSE_DASH 0b1
+
11 #define RADIOLIB_MORSE_GUARDBIT 0b1
+
12 #define RADIOLIB_MORSE_UNSUPORTED 0xFF
+
13 #define RADIOLIB_MORSE_ASCII_OFFSET 32
+
14 #define RADIOLIB_MORSE_INTER_SYMBOL 0x00
+
15 #define RADIOLIB_MORSE_CHAR_COMPLETE 0x01
+
16 #define RADIOLIB_MORSE_WORD_COMPLETE 0x02
+
17 
+
18 // Morse character table: - using codes defined in ITU-R M.1677-1
+
19 // - Morse code representation is saved LSb first, using additional bit as guard
+
20 // - position in array corresponds ASCII code minus RADIOLIB_MORSE_ASCII_OFFSET
+
21 // - ASCII characters marked RADIOLIB_MORSE_UNSUPORTED do not have ITU-R M.1677-1 equivalent
+
22 static const uint8_t MorseTable[] RADIOLIB_NONVOLATILE = {
+
23  0b00, // space
+
24  0b110101, // ! (unsupported)
+
25  0b1010010, // "
+
26  RADIOLIB_MORSE_UNSUPORTED, // # (unsupported)
+
27  RADIOLIB_MORSE_UNSUPORTED, // $ (unsupported)
+
28  RADIOLIB_MORSE_UNSUPORTED, // % (unsupported)
+
29  RADIOLIB_MORSE_UNSUPORTED, // & (unsupported)
+
30  0b1011110, // '
+
31  0b101101, // (
+
32  0b1101101, // )
+
33  RADIOLIB_MORSE_UNSUPORTED, // * (unsupported)
+
34  0b101010, // +
+
35  0b1110011, // ,
+
36  0b1100001, // -
+
37  0b1101010, // .
+
38  0b101001, // /
+
39  0b111111, // 0
+
40  0b111110, // 1
+
41  0b111100, // 2
+
42  0b111000, // 3
+
43  0b110000, // 4
+
44  0b100000, // 5
+
45  0b100001, // 6
+
46  0b100011, // 7
+
47  0b100111, // 8
+
48  0b101111, // 9
+
49  0b1000111, // :
+
50  RADIOLIB_MORSE_UNSUPORTED, // ; (unsupported)
+
51  RADIOLIB_MORSE_UNSUPORTED, // < (unsupported)
+
52  0b110001, // =
+
53  RADIOLIB_MORSE_UNSUPORTED, // > (unsupported)
+
54  0b1001100, // ?
+
55  0b1010110, // @
+
56  0b110, // A
+
57  0b10001, // B
+
58  0b10101, // C
+
59  0b1001, // D
+
60  0b10, // E
+
61  0b10100, // F
+
62  0b1011, // G
+
63  0b10000, // H
+
64  0b100, // I
+
65  0b11110, // J
+
66  0b1101, // K
+
67  0b10010, // L
+
68  0b111, // M
+
69  0b101, // N
+
70  0b1111, // O
+
71  0b10110, // P
+
72  0b11011, // Q
+
73  0b1010, // R
+
74  0b1000, // S
+
75  0b11, // T
+
76  0b1100, // U
+
77  0b11000, // V
+
78  0b1110, // W
+
79  0b11001, // X
+
80  0b11101, // Y
+
81  0b10011, // Z
+
82  RADIOLIB_MORSE_UNSUPORTED, // [ (unsupported)
+
83  RADIOLIB_MORSE_UNSUPORTED, // \ (unsupported)
+
84  RADIOLIB_MORSE_UNSUPORTED, // ] (unsupported)
+
85  0b1101000, // ^ (unsupported, used as alias for end of work)
+
86  0b110101 // _ (unsupported, used as alias for starting signal)
+
87 };
+
88 
+
93 class MorseClient: public RadioLibPrint {
+
94  public:
+
99  explicit MorseClient(PhysicalLayer* phy);
+
100 
+
101  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
106  explicit MorseClient(AFSKClient* audio);
+
107  #endif
+
108 
+
109  // basic methods
+
110 
+
117  int16_t begin(float base, uint8_t speed = 20);
+
118 
+
123  size_t startSignal();
+
124 
+
131  static char decode(uint8_t symbol, uint8_t len);
+
132 
+
142  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
143  int read(uint8_t* symbol, uint8_t* len, float low = 0.75f, float high = 1.25f);
+
144  #endif
+
145 
+
151  size_t write(uint8_t b);
+
152 
+
153 #if !defined(RADIOLIB_GODMODE)
+
154  private:
+
155 #endif
+
156  PhysicalLayer* phyLayer;
+
157  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
158  AFSKClient* audioClient;
+
159  #endif
+
160 
+
161  uint32_t baseFreq = 0, baseFreqHz = 0;
+
162  float basePeriod = 0.0f;
+
163  uint32_t dotLength = 0;
+
164  uint32_t dashLength = 0;
+
165  uint32_t letterSpace = 0;
+
166  uint16_t wordSpace = 0;
+
167 
+
168  // variables to keep decoding state
+
169  uint32_t signalCounter = 0;
+
170  uint32_t signalStart = 0;
+
171  uint32_t pauseCounter = 0;
+
172  uint32_t pauseStart = 0;
+
173 
+
174  size_t printNumber(unsigned long, uint8_t);
+
175  size_t printFloat(double, uint8_t);
+
176 
+
177  int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);
+
178  int16_t standby();
+
179 };
+
180 
+
181 #endif
AFSKClient
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
-
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:92
-
MorseClient::startSignal
size_t startSignal()
Send start signal.
Definition: Morse.cpp:39
-
MorseClient::begin
int16_t begin(float base, uint8_t speed=20)
Initialization method.
Definition: Morse.cpp:21
-
MorseClient::read
int read(uint8_t *symbol, uint8_t *len, float low=0.75f, float high=1.25f)
Read Morse tone on input pin.
Definition: Morse.cpp:61
-
MorseClient::decode
static char decode(uint8_t symbol, uint8_t len)
Decode Morse symbol to ASCII.
Definition: Morse.cpp:43
+
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
+
MorseClient::startSignal
size_t startSignal()
Send start signal.
Definition: Morse.cpp:41
+
MorseClient::begin
int16_t begin(float base, uint8_t speed=20)
Initialization method.
Definition: Morse.cpp:23
+
MorseClient::read
int read(uint8_t *symbol, uint8_t *len, float low=0.75f, float high=1.25f)
Read Morse tone on input pin.
Definition: Morse.cpp:63
+
MorseClient::decode
static char decode(uint8_t symbol, uint8_t len)
Decode Morse symbol to ASCII.
Definition: Morse.cpp:45
+
MorseClient::write
size_t write(uint8_t b)
Write one byte. Implementation of interface of the RadioLibPrint/Print class.
Definition: Morse.cpp:115
MorseClient::MorseClient
MorseClient(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: Morse.cpp:7
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
+
RadioLibPrint
Definition: Print.h:12
diff --git a/_physical_layer_8h_source.html b/_physical_layer_8h_source.html index d1f13a2a..308338b2 100644 --- a/_physical_layer_8h_source.html +++ b/_physical_layer_8h_source.html @@ -235,15 +235,17 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
382  friend class AX25Client;
383  friend class FSK4Client;
384  friend class PagerClient;
-
385 };
-
386 
-
387 #endif
+
385  friend class BellClient;
+
386 };
+
387 
+
388 #endif
AFSKClient
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
-
AX25Client
Client for AX25 communication.
Definition: AX25.h:249
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:243
+
BellClient
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:55
FSK4Client
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition: FSK4.h:15
-
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:89
+
HellClient
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
Module
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:31
-
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:92
+
MorseClient
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
PagerClient
Client for Pager communication.
Definition: Pager.h:68
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
PhysicalLayer::startReceive
virtual int16_t startReceive(uint32_t timeout, uint16_t irqFlags, uint16_t irqMask, size_t len)
Interrupt-driven receive method. A DIO pin will be activated when full packet is received....
Definition: PhysicalLayer.cpp:131
@@ -278,7 +280,7 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
PhysicalLayer::setBitRate
virtual int16_t setBitRate(float br)
Sets FSK bit rate. Only available in FSK mode. Must be implemented in module class.
Definition: PhysicalLayer.cpp:225
PhysicalLayer::getSNR
virtual float getSNR()
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition: PhysicalLayer.cpp:258
PhysicalLayer::sleep
virtual int16_t sleep()
Sets module to sleep.
Definition: PhysicalLayer.cpp:118
-
RTTYClient
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:84
+
RTTYClient
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:17
SSTVClient
Client for SSTV transmissions.
Definition: SSTV.h:117
diff --git a/_print_8h_source.html b/_print_8h_source.html new file mode 100644 index 00000000..8ffaa28f --- /dev/null +++ b/_print_8h_source.html @@ -0,0 +1,166 @@ + + + + + + + +RadioLib: src/protocols/Print/Print.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Print.h
+
+
+
1 #if !defined(_RADIOLIB_PRINT_H)
+
2 #define _RADIOLIB_PRINT_H
+
3 
+
4 #include "ITA2String.h"
+
5 
+
6 // supported encoding schemes
+
7 #define RADIOLIB_ASCII 0
+
8 #define RADIOLIB_ASCII_EXTENDED 1
+
9 #define RADIOLIB_ITA2 2
+
10 
+
11 // based on Arduino Print class
+ +
13  public:
+
14  virtual size_t write(uint8_t) = 0;
+
15  size_t write(const char *str) {
+
16  if (str == NULL) return 0;
+
17  return write((const uint8_t *)str, strlen(str));
+
18  }
+
19  virtual size_t write(const uint8_t *buffer, size_t size);
+
20  size_t write(const char *buffer, size_t size) {
+
21  return write((const uint8_t *)buffer, size);
+
22  }
+
23 
+
24  size_t print(ITA2String& ita2);
+
25  size_t println(ITA2String& ita2);
+
26 
+
27  #if defined(RADIOLIB_BUILD_ARDUINO)
+
28  size_t print(const __FlashStringHelper *);
+
29  size_t print(const String &);
+
30 
+
31  size_t println(const __FlashStringHelper *);
+
32  size_t println(const String &);
+
33  #endif
+
34 
+
35  size_t print(const char[]);
+
36  size_t print(char);
+
37  size_t print(unsigned char, int = DEC);
+
38  size_t print(int, int = DEC);
+
39  size_t print(unsigned int, int = DEC);
+
40  size_t print(long, int = DEC);
+
41  size_t print(unsigned long, int = DEC);
+
42  size_t print(double, int = 2);
+
43 
+
44  size_t println(const char[]);
+
45  size_t println(char);
+
46  size_t println(unsigned char, int = DEC);
+
47  size_t println(int, int = DEC);
+
48  size_t println(unsigned int, int = DEC);
+
49  size_t println(long, int = DEC);
+
50  size_t println(unsigned long, int = DEC);
+
51  size_t println(double, int = 2);
+
52  size_t println(void);
+
53 
+
54 #if !defined(RADIOLIB_GODMODE)
+
55  protected:
+
56 #endif
+
57  uint8_t encoding = RADIOLIB_ASCII_EXTENDED;
+
58  const char* lineFeed;
+
59 
+
60  size_t printNumber(unsigned long, uint8_t);
+
61  size_t printFloat(double, uint8_t);
+
62 
+
63 };
+
64 
+
65 #endif
+
ITA2-encoded string.
Definition: ITA2String.h:24
+
Definition: Print.h:12
+
+
+ + + + diff --git a/_r_t_t_y_8h_source.html b/_r_t_t_y_8h_source.html index f0778fdc..c98eb0c2 100644 --- a/_r_t_t_y_8h_source.html +++ b/_r_t_t_y_8h_source.html @@ -95,140 +95,58 @@ $(document).ready(function(){initNavTree('_r_t_t_y_8h_source.html',''); initResi
7 
8 #include "../PhysicalLayer/PhysicalLayer.h"
9 #include "../AFSK/AFSK.h"
-
10 
-
11 #define RADIOLIB_ITA2_FIGS 0x1B
-
12 #define RADIOLIB_ITA2_LTRS 0x1F
-
13 #define RADIOLIB_ITA2_LENGTH 32
-
14 
-
15 // ITA2 character table: - position in array corresponds to 5-bit ITA2 code
-
16 // - characters to the left are in letters shift, characters to the right in figures shift
-
17 // - characters marked 0x7F do not have ASCII equivalent
-
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}
-
23 };
+
10 #include "../Print/Print.h"
+
11 #include "../Print/ITA2String.h"
+
12 
+
17 class RTTYClient: public RadioLibPrint {
+
18  public:
+
23  explicit RTTYClient(PhysicalLayer* phy);
24 
-
29 class ITA2String {
-
30  public:
-
35  explicit ITA2String(char c);
-
36 
-
41  explicit ITA2String(const char* str);
-
42 
-
46  ~ITA2String();
-
47 
-
52  size_t length();
-
53 
-
59  uint8_t* byteArr();
-
60 
-
61 #if !defined(RADIOLIB_GODMODE)
-
62  private:
-
63 #endif
-
64  #if defined(RADIOLIB_STATIC_ONLY)
-
65  char strAscii[RADIOLIB_STATIC_ARRAY_SIZE];
-
66  #else
-
67  char* strAscii;
-
68  #endif
-
69  size_t asciiLen;
-
70  size_t ita2Len;
+
25  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
30  explicit RTTYClient(AFSKClient* audio);
+
31  #endif
+
32 
+
33  // basic methods
+
34 
+
44  int16_t begin(float base, uint32_t shift, uint16_t rate, uint8_t enc = RADIOLIB_ASCII, uint8_t stopBits = 1);
+
45 
+
49  void idle();
+
50 
+
55  int16_t standby();
+
56 
+
62  size_t write(uint8_t b);
+
63 
+
64 #if !defined(RADIOLIB_GODMODE)
+
65  private:
+
66 #endif
+
67  PhysicalLayer* phyLayer;
+
68  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
69  AFSKClient* audioClient;
+
70  #endif
71 
-
72  static uint16_t getBits(char c);
-
73 };
-
74 
-
75 // supported encoding schemes
-
76 #define RADIOLIB_ASCII 0
-
77 #define RADIOLIB_ASCII_EXTENDED 1
-
78 #define RADIOLIB_ITA2 2
+
72  uint32_t baseFreq = 0, baseFreqHz = 0;
+
73  uint32_t shiftFreq = 0, shiftFreqHz = 0;
+
74  uint32_t bitDuration = 0;
+
75  uint8_t stopBitsNum = 0;
+
76 
+
77  void mark();
+
78  void space();
79 
-
84 class RTTYClient {
-
85  public:
-
90  explicit RTTYClient(PhysicalLayer* phy);
-
91 
-
92  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
97  explicit RTTYClient(AFSKClient* audio);
-
98  #endif
-
99 
-
100  // basic methods
-
101 
-
111  int16_t begin(float base, uint32_t shift, uint16_t rate, uint8_t enc = RADIOLIB_ASCII, uint8_t stopBits = 1);
-
112 
-
116  void idle();
-
117 
-
122  int16_t standby();
-
123 
-
124  size_t write(const char* str);
-
125  size_t write(uint8_t* buff, size_t len);
-
126  size_t write(uint8_t b);
-
127 
-
128  #if defined(RADIOLIB_BUILD_ARDUINO)
-
129  size_t print(__FlashStringHelper*);
-
130  size_t print(const String &);
-
131  #endif
-
132  size_t print(ITA2String &);
-
133  size_t print(const char[]);
-
134  size_t print(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);
-
141 
-
142  size_t println(void);
-
143  #if defined(RADIOLIB_BUILD_ARDUINO)
-
144  size_t println(__FlashStringHelper*);
-
145  size_t println(const String &);
-
146  #endif
-
147  size_t println(ITA2String &);
-
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);
-
156 
-
157 #if !defined(RADIOLIB_GODMODE)
-
158  private:
-
159 #endif
-
160  PhysicalLayer* phyLayer;
-
161  #if !defined(RADIOLIB_EXCLUDE_AFSK)
-
162  AFSKClient* audioClient;
-
163  #endif
-
164 
-
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;
-
171 
-
172  void mark();
-
173  void space();
-
174 
-
175  size_t printNumber(unsigned long, uint8_t);
-
176  size_t printFloat(double, uint8_t);
-
177 
-
178  int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);
-
179 };
-
180 
-
181 #endif
-
182 
-
183 #endif
+
80  int16_t transmitDirect(uint32_t freq = 0, uint32_t freqHz = 0);
+
81 };
+
82 
+
83 #endif
+
84 
+
85 #endif
AFSKClient
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
-
ITA2String
ITA2-encoded string.
Definition: RTTY.h:29
-
ITA2String::byteArr
uint8_t * byteArr()
Gets the ITA2 representation of the ASCII string set in constructor.
Definition: RTTY.cpp:42
-
ITA2String::length
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::ITA2String
ITA2String(char c)
Default single-character constructor.
Definition: RTTY.cpp:6
-
ITA2String::~ITA2String
~ITA2String()
Default destructor.
Definition: RTTY.cpp:24
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
-
RTTYClient
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:84
-
RTTYClient::standby
int16_t standby()
Stops transmitting.
Definition: RTTY.cpp:535
-
RTTYClient::idle
void idle()
Send out idle condition (RF tone at mark frequency).
Definition: RTTY.cpp:176
-
RTTYClient::begin
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::RTTYClient
RTTYClient(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: RTTY.cpp:116
+
RTTYClient
Client for RTTY communication. The public interface is the same as Arduino Serial.
Definition: RTTY.h:17
+
RTTYClient::write
size_t write(uint8_t b)
Write one byte. Implementation of interface of the RadioLibPrint/Print class.
Definition: RTTY.cpp:58
+
RTTYClient::standby
int16_t standby()
Stops transmitting.
Definition: RTTY.cpp:114
+
RTTYClient::idle
void idle()
Send out idle condition (RF tone at mark frequency).
Definition: RTTY.cpp:54
+
RTTYClient::begin
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:22
+
RTTYClient::RTTYClient
RTTYClient(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: RTTY.cpp:6
+
RadioLibPrint
Definition: Print.h:12
diff --git a/_radio_lib_8h_source.html b/_radio_lib_8h_source.html index c04c4f6b..3ee7b1ca 100644 --- a/_radio_lib_8h_source.html +++ b/_radio_lib_8h_source.html @@ -161,41 +161,43 @@ $(document).ready(function(){initNavTree('_radio_lib_8h_source.html',''); initRe
107 #include "protocols/FSK4/FSK4.h"
108 #include "protocols/APRS/APRS.h"
109 #include "protocols/ExternalRadio/ExternalRadio.h"
-
110 
-
111 // only create Radio class when using RadioShield
-
112 #if defined(RADIOLIB_RADIOSHIELD)
-
113 
-
114 // RadioShield pin definitions
-
115 #define RADIOSHIELD_CS_A 10
-
116 #define RADIOSHIELD_IRQ_A 2
-
117 #define RADIOSHIELD_RST_A 9
-
118 #define RADIOSHIELD_GPIO_A 8
-
119 #define RADIOSHIELD_CS_B 5
-
120 #define RADIOSHIELD_IRQ_B 3
-
121 #define RADIOSHIELD_RST_B 7
-
122 #define RADIOSHIELD_GPIO_B 6
-
123 
-
130 class Radio {
-
131  public:
-
132 
-
133  Module* ModuleA;
-
134  Module* ModuleB;
-
135 
-
139  Radio() {
-
140  ModuleA = new Module(RADIOSHIELD_CS_A, RADIOSHIELD_IRQ_A, RADIOSHIELD_RST_A, RADIOSHIELD_GPIO_A);
-
141  ModuleB = new Module(RADIOSHIELD_CS_B, RADIOSHIELD_IRQ_B, RADIOSHIELD_RST_B, RADIOSHIELD_GPIO_B);
-
142  }
-
143 
-
144 #if defined(RADIOLIB_GODMODE)
-
145  private:
-
146 #endif
-
147 
-
148 };
+
110 #include "protocols/Print/Print.h"
+
111 #include "protocols/BellModem/BellModem.h"
+
112 
+
113 // only create Radio class when using RadioShield
+
114 #if defined(RADIOLIB_RADIOSHIELD)
+
115 
+
116 // RadioShield pin definitions
+
117 #define RADIOSHIELD_CS_A 10
+
118 #define RADIOSHIELD_IRQ_A 2
+
119 #define RADIOSHIELD_RST_A 9
+
120 #define RADIOSHIELD_GPIO_A 8
+
121 #define RADIOSHIELD_CS_B 5
+
122 #define RADIOSHIELD_IRQ_B 3
+
123 #define RADIOSHIELD_RST_B 7
+
124 #define RADIOSHIELD_GPIO_B 6
+
125 
+
132 class Radio {
+
133  public:
+
134 
+
135  Module* ModuleA;
+
136  Module* ModuleB;
+
137 
+
141  Radio() {
+
142  ModuleA = new Module(RADIOSHIELD_CS_A, RADIOSHIELD_IRQ_A, RADIOSHIELD_RST_A, RADIOSHIELD_GPIO_A);
+
143  ModuleB = new Module(RADIOSHIELD_CS_B, RADIOSHIELD_IRQ_B, RADIOSHIELD_RST_B, RADIOSHIELD_GPIO_B);
+
144  }
+
145 
+
146 #if defined(RADIOLIB_GODMODE)
+
147  private:
+
148 #endif
149 
-
150 Radio RadioShield;
-
151 #endif
-
152 
+
150 };
+
151 
+
152 Radio RadioShield;
153 #endif
+
154 
+
155 #endif
Module
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:31
diff --git a/annotated.html b/annotated.html index d2a8000b..d4497cb4 100644 --- a/annotated.html +++ b/annotated.html @@ -92,54 +92,60 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();  CAPRSClientClient for APRS communication  CAX25ClientClient for AX25 communication  CAX25FrameAbstraction of AX.25 frame format - CCC1101Control class for CC1101 module - CExternalRadio - CFSK4ClientClient for FSK-4 communication. The public interface is the same as Arduino Serial - CHalHardware abstraction library base interface - CHellClientClient for Hellschreiber transmissions - CITA2StringITA2-encoded string - CLLCC68Derived class for LLCC68 modules - CModuleImplements all common low-level methods to control the wireless module. Every module class contains one private instance of this class - CRfSwitchMode_t - CMorseClientClient for Morse Code communication. The public interface is the same as Arduino Serial - CnRF24Control class for nRF24 module - CPagerClientClient for Pager communication - CPhysicalLayerProvides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN. Also extracts some common module-independent methods. Using this interface class allows to use the protocols on various modules without much code duplicity. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class - CRadioLibHal - CRF69Control class for RF69 module. Also serves as base class for SX1231 - CRFM22Only exists as alias for Si4432, since there seems to be no difference between RFM22 and Si4432 modules - CRFM23Only exists as alias for Si4431, since there seems to be no difference between RFM23 and Si4431 modules - CRFM95Derived class for RFM95 modules. Overrides some methods from SX1278 due to different parameter ranges - CRFM96Derived class for RFM96 modules. Overrides some methods from SX1278 due to different parameter ranges - CRFM97Derived class for RFM97 modules. Overrides some methods from RFM95 due to different parameter ranges - CRFM98Only exists as alias for RFM96, since there seems to be no difference between RFM96 and RFM98 modules - CRTTYClientClient for RTTY communication. The public interface is the same as Arduino Serial - CSi4430Derived class for Si4430 modules - CSi4431Derived class for Si4431 modules - CSi4432Derived class for Si4432 modules - CSi443xBase class for Si443x series. All derived classes for Si443x (e.g. Si4431 or Si4432) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - CSSTVClientClient for SSTV transmissions - CSSTVMode_tStructure to save data about supported SSTV modes - CSTM32WLxDerived class for STM32WL modules - CSTM32WLx_Module - CStm32wlxHal - CSX1231Control class for SX1231 module. Overrides some methods from RF69 due to different register values - CSX1261Derived class for SX1261 modules - CSX1262Derived class for SX1262 modules - CSX1268Derived class for SX1268 modules - CSX126xBase class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - CSX1272Derived class for SX1272 modules. Also used as base class for SX1273. Both modules use the same basic hardware and only differ in parameter ranges - CSX1273Derived class for SX1273 modules. Overrides some methods from SX1272 due to different parameter ranges - CSX1276Derived class for SX1276 modules. Overrides some methods from SX1278 due to different parameter ranges - CSX1277Derived class for SX1277 modules. Overrides some methods from SX1278 due to different parameter ranges - CSX1278Derived class for SX1278 modules. Also used as base class for SX1276, SX1277, SX1279, RFM95 and RFM96. All of these modules use the same basic hardware and only differ in parameter ranges (and names) - CSX1279Derived class for SX1279 modules. Overrides some methods from SX1278 due to different parameter ranges - CSX127xBase class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - CSX1280Derived class for SX1280 modules - CSX1281Derived class for SX1281 modules - CSX1282Derived class for SX1282 modules - CSX128xBase class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes - Ctone_tStructure to save data about tone + CBell101 + CBell103 + CBell202 + CBellClientClient for Bell modem communication. The public interface is the same as Arduino Serial + CBellModem_tDefinition of the Bell-compatible modem + CCC1101Control class for CC1101 module + CExternalRadio + CFSK4ClientClient for FSK-4 communication. The public interface is the same as Arduino Serial + CHalHardware abstraction library base interface + CHellClientClient for Hellschreiber transmissions + CITA2StringITA2-encoded string + CLLCC68Derived class for LLCC68 modules + CModuleImplements all common low-level methods to control the wireless module. Every module class contains one private instance of this class + CRfSwitchMode_t + CMorseClientClient for Morse Code communication. The public interface is the same as Arduino Serial + CnRF24Control class for nRF24 module + CPagerClientClient for Pager communication + CPhysicalLayerProvides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN. Also extracts some common module-independent methods. Using this interface class allows to use the protocols on various modules without much code duplicity. Because this class is used mainly as interface, all of its virtual members must be implemented in the module class + CRadioLibHal + CRadioLibPrint + CRF69Control class for RF69 module. Also serves as base class for SX1231 + CRFM22Only exists as alias for Si4432, since there seems to be no difference between RFM22 and Si4432 modules + CRFM23Only exists as alias for Si4431, since there seems to be no difference between RFM23 and Si4431 modules + CRFM95Derived class for RFM95 modules. Overrides some methods from SX1278 due to different parameter ranges + CRFM96Derived class for RFM96 modules. Overrides some methods from SX1278 due to different parameter ranges + CRFM97Derived class for RFM97 modules. Overrides some methods from RFM95 due to different parameter ranges + CRFM98Only exists as alias for RFM96, since there seems to be no difference between RFM96 and RFM98 modules + CRTTYClientClient for RTTY communication. The public interface is the same as Arduino Serial + CSi4430Derived class for Si4430 modules + CSi4431Derived class for Si4431 modules + CSi4432Derived class for Si4432 modules + CSi443xBase class for Si443x series. All derived classes for Si443x (e.g. Si4431 or Si4432) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + CSSTVClientClient for SSTV transmissions + CSSTVMode_tStructure to save data about supported SSTV modes + CSTM32WLxDerived class for STM32WL modules + CSTM32WLx_Module + CStm32wlxHal + CSX1231Control class for SX1231 module. Overrides some methods from RF69 due to different register values + CSX1261Derived class for SX1261 modules + CSX1262Derived class for SX1262 modules + CSX1268Derived class for SX1268 modules + CSX126xBase class for SX126x series. All derived classes for SX126x (e.g. SX1262 or SX1268) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + CSX1272Derived class for SX1272 modules. Also used as base class for SX1273. Both modules use the same basic hardware and only differ in parameter ranges + CSX1273Derived class for SX1273 modules. Overrides some methods from SX1272 due to different parameter ranges + CSX1276Derived class for SX1276 modules. Overrides some methods from SX1278 due to different parameter ranges + CSX1277Derived class for SX1277 modules. Overrides some methods from SX1278 due to different parameter ranges + CSX1278Derived class for SX1278 modules. Also used as base class for SX1276, SX1277, SX1279, RFM95 and RFM96. All of these modules use the same basic hardware and only differ in parameter ranges (and names) + CSX1279Derived class for SX1279 modules. Overrides some methods from SX1278 due to different parameter ranges + CSX127xBase class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + CSX1280Derived class for SX1280 modules + CSX1281Derived class for SX1281 modules + CSX1282Derived class for SX1282 modules + CSX128xBase class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from this base class. This class should not be instantiated directly from Arduino sketch, only from its derived classes + Ctone_tStructure to save data about tone diff --git a/annotated_dup.js b/annotated_dup.js index 15f8e55c..23122858 100644 --- a/annotated_dup.js +++ b/annotated_dup.js @@ -4,6 +4,11 @@ var annotated_dup = [ "APRSClient", "class_a_p_r_s_client.html", "class_a_p_r_s_client" ], [ "AX25Client", "class_a_x25_client.html", "class_a_x25_client" ], [ "AX25Frame", "class_a_x25_frame.html", "class_a_x25_frame" ], + [ "Bell101", "struct_bell101.html", "struct_bell101" ], + [ "Bell103", "struct_bell103.html", "struct_bell103" ], + [ "Bell202", "struct_bell202.html", "struct_bell202" ], + [ "BellClient", "class_bell_client.html", "class_bell_client" ], + [ "BellModem_t", "struct_bell_modem__t.html", "struct_bell_modem__t" ], [ "CC1101", "class_c_c1101.html", "class_c_c1101" ], [ "ExternalRadio", "class_external_radio.html", "class_external_radio" ], [ "FSK4Client", "class_f_s_k4_client.html", "class_f_s_k4_client" ], @@ -17,6 +22,7 @@ var annotated_dup = [ "PagerClient", "class_pager_client.html", "class_pager_client" ], [ "PhysicalLayer", "class_physical_layer.html", "class_physical_layer" ], [ "RadioLibHal", "class_radio_lib_hal.html", "class_radio_lib_hal" ], + [ "RadioLibPrint", "class_radio_lib_print.html", "class_radio_lib_print" ], [ "RF69", "class_r_f69.html", "class_r_f69" ], [ "RFM22", "class_r_f_m22.html", null ], [ "RFM23", "class_r_f_m23.html", null ], diff --git a/class_a_f_s_k_client-members.html b/class_a_f_s_k_client-members.html index 9f9283f2..3e8e83e7 100644 --- a/class_a_f_s_k_client-members.html +++ b/class_a_f_s_k_client-members.html @@ -90,8 +90,10 @@ $(document).ready(function(){initNavTree('class_a_f_s_k_client.html',''); initRe

This is the complete list of members for AFSKClient, including all inherited members.

- - + + + + diff --git a/class_a_f_s_k_client.html b/class_a_f_s_k_client.html index 31bc5958..5d737d30 100644 --- a/class_a_f_s_k_client.html +++ b/class_a_f_s_k_client.html @@ -95,12 +95,24 @@ $(document).ready(function(){initNavTree('class_a_f_s_k_client.html',''); initRe More...

#include <AFSK.h>

+
+Inheritance diagram for AFSKClient:
+
+
+ + +BellClient + +
AFSKClient(PhysicalLayer *phy, uint32_t pin)AFSKClient
AX25Client (defined in AFSKClient)AFSKClientfriend
begin()AFSKClient
AFSKClient(AFSKClient *aud)AFSKClient
AX25Client (defined in AFSKClient)AFSKClientfriend
begin()AFSKClient
BellClient (defined in AFSKClient)AFSKClientfriend
FSK4Client (defined in AFSKClient)AFSKClientfriend
HellClient (defined in AFSKClient)AFSKClientfriend
MorseClient (defined in AFSKClient)AFSKClientfriend
+ + + @@ -131,12 +143,15 @@ class < + +

Public Member Functions

 AFSKClient (PhysicalLayer *phy, uint32_t pin)
 Default contructor. More...
 
 AFSKClient (AFSKClient *aud)
 Copy contructor. More...
 
int16_t begin ()
 Initialization method. More...
 
AX25Client
class FSK4Client
 
+class BellClient
 

Detailed Description

Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direct mode transmission using DIO pins.

Constructor & Destructor Documentation

-

◆ AFSKClient()

+

◆ AFSKClient() [1/2]

@@ -170,6 +185,32 @@ class FSK4Client< +
+
+ +

◆ AFSKClient() [2/2]

+ +
+
+ + + + + + + + +
AFSKClient::AFSKClient (AFSKClientaud)
+
+ +

Copy contructor.

+
Parameters
+ + +
audPointer to the AFSKClient instance to copy.
+
+
+

Member Function Documentation

diff --git a/class_a_f_s_k_client.js b/class_a_f_s_k_client.js index 1ae313e9..7b74ea8d 100644 --- a/class_a_f_s_k_client.js +++ b/class_a_f_s_k_client.js @@ -1,10 +1,12 @@ var class_a_f_s_k_client = [ [ "AFSKClient", "class_a_f_s_k_client.html#a89c7ab4759d37c9a032ac29fa9782eea", null ], + [ "AFSKClient", "class_a_f_s_k_client.html#ac54633fe75157ce126e44e4e494266f2", null ], [ "begin", "class_a_f_s_k_client.html#a30b86bb7cd087b3bc3c45a011ba266c3", null ], [ "noTone", "class_a_f_s_k_client.html#a664c1de9b5cd792826a5a77ac5457bae", null ], [ "tone", "class_a_f_s_k_client.html#a6d2341901c83e45f853c077e60f1fa33", null ], [ "AX25Client", "class_a_f_s_k_client.html#a0012621c1414f4c7573e961b57884a5b", null ], + [ "BellClient", "class_a_f_s_k_client.html#af9f435b28f04a142bdf136fc6fdc49b3", null ], [ "FSK4Client", "class_a_f_s_k_client.html#ac0313fe86041eb37d290019203e095d3", null ], [ "HellClient", "class_a_f_s_k_client.html#afeb005bab389f137def61f1acc3714d3", null ], [ "MorseClient", "class_a_f_s_k_client.html#ae5c5757c553100373984a416b6c3690a", null ], diff --git a/class_a_f_s_k_client.png b/class_a_f_s_k_client.png new file mode 100644 index 00000000..259a601a Binary files /dev/null and b/class_a_f_s_k_client.png differ diff --git a/class_bell_client-members.html b/class_bell_client-members.html new file mode 100644 index 00000000..0e2c4003 --- /dev/null +++ b/class_bell_client-members.html @@ -0,0 +1,137 @@ + + + + + + + +RadioLib: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
BellClient Member List
+
+
+ +

This is the complete list of members for BellClient, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AFSKClient(PhysicalLayer *phy, uint32_t pin)AFSKClient
AFSKClient(AFSKClient *aud)AFSKClient
begin(const BellModem_t &modem)BellClient
AFSKClient::begin()AFSKClient
BellClient(PhysicalLayer *phy, uint32_t pin)BellClientexplicit
BellClient(AFSKClient *aud)BellClient
idle()BellClient
noTone(bool keepOn=false)AFSKClient
print(ITA2String &ita2) (defined in RadioLibPrint)RadioLibPrint
print(const char[]) (defined in RadioLibPrint)RadioLibPrint
print(char) (defined in RadioLibPrint)RadioLibPrint
print(unsigned char, int=DEC) (defined in RadioLibPrint)RadioLibPrint
print(int, int=DEC) (defined in RadioLibPrint)RadioLibPrint
print(unsigned int, int=DEC) (defined in RadioLibPrint)RadioLibPrint
print(long, int=DEC) (defined in RadioLibPrint)RadioLibPrint
print(unsigned long, int=DEC) (defined in RadioLibPrint)RadioLibPrint
print(double, int=2) (defined in RadioLibPrint)RadioLibPrint
println(ITA2String &ita2) (defined in RadioLibPrint)RadioLibPrint
println(const char[]) (defined in RadioLibPrint)RadioLibPrint
println(char) (defined in RadioLibPrint)RadioLibPrint
println(unsigned char, int=DEC) (defined in RadioLibPrint)RadioLibPrint
println(int, int=DEC) (defined in RadioLibPrint)RadioLibPrint
println(unsigned int, int=DEC) (defined in RadioLibPrint)RadioLibPrint
println(long, int=DEC) (defined in RadioLibPrint)RadioLibPrint
println(unsigned long, int=DEC) (defined in RadioLibPrint)RadioLibPrint
println(double, int=2) (defined in RadioLibPrint)RadioLibPrint
println(void) (defined in RadioLibPrint)RadioLibPrint
replyBellClient
setCorrection(float corr)BellClient
setModem(const BellModem_t &modem)BellClient
standby()BellClient
tone(uint16_t freq, bool autoStart=true)AFSKClient
write(uint8_t b)BellClientvirtual
write(const char *str) (defined in RadioLibPrint)RadioLibPrintinline
write(const uint8_t *buffer, size_t size) (defined in RadioLibPrint)RadioLibPrintvirtual
write(const char *buffer, size_t size) (defined in RadioLibPrint)RadioLibPrintinline
+
+ + + + diff --git a/class_bell_client.html b/class_bell_client.html new file mode 100644 index 00000000..3d6cf03b --- /dev/null +++ b/class_bell_client.html @@ -0,0 +1,435 @@ + + + + + + + +RadioLib: BellClient Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
BellClient Class Reference
+
+
+ +

Client for Bell modem communication. The public interface is the same as Arduino Serial. + More...

+ +

#include <BellModem.h>

+
+Inheritance diagram for BellClient:
+
+
+ + +AFSKClient +RadioLibPrint + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 BellClient (PhysicalLayer *phy, uint32_t pin)
 Default constructor. More...
 
 BellClient (AFSKClient *aud)
 Audio-client constructor. Can be used when AFSKClient instance already exists. More...
 
int16_t begin (const BellModem_t &modem)
 Initialization method. More...
 
int16_t setModem (const BellModem_t &modem)
 Set Bell modem. More...
 
int16_t setCorrection (float corr)
 Set correction coefficient for tone length. More...
 
size_t write (uint8_t b)
 Write one byte. Implementation of interface of the RadioLibPrint/Print class. More...
 
+int16_t idle ()
 Set the modem to idle (ready to transmit).
 
+int16_t standby ()
 Set the modem to standby (transmitter off).
 
- Public Member Functions inherited from AFSKClient
 AFSKClient (PhysicalLayer *phy, uint32_t pin)
 Default contructor. More...
 
 AFSKClient (AFSKClient *aud)
 Copy contructor. More...
 
int16_t begin ()
 Initialization method. More...
 
int16_t tone (uint16_t freq, bool autoStart=true)
 Start transmitting audio tone. More...
 
int16_t noTone (bool keepOn=false)
 Stops transmitting audio tone. More...
 
- Public Member Functions inherited from RadioLibPrint
+size_t write (const char *str)
 
+virtual size_t write (const uint8_t *buffer, size_t size)
 
+size_t write (const char *buffer, size_t size)
 
+size_t print (ITA2String &ita2)
 
+size_t println (ITA2String &ita2)
 
+size_t print (const char[])
 
+size_t print (char)
 
+size_t print (unsigned char, int=DEC)
 
+size_t print (int, int=DEC)
 
+size_t print (unsigned int, int=DEC)
 
+size_t print (long, int=DEC)
 
+size_t print (unsigned long, int=DEC)
 
+size_t print (double, int=2)
 
+size_t println (const char[])
 
+size_t println (char)
 
+size_t println (unsigned char, int=DEC)
 
+size_t println (int, int=DEC)
 
+size_t println (unsigned int, int=DEC)
 
+size_t println (long, int=DEC)
 
+size_t println (unsigned long, int=DEC)
 
+size_t println (double, int=2)
 
+size_t println (void)
 
+ + + + +

+Public Attributes

+bool reply
 Whether the modem is replying. On some modems, the replying station has different tone frequencies.
 
+

Detailed Description

+

Client for Bell modem communication. The public interface is the same as Arduino Serial.

+

Constructor & Destructor Documentation

+ +

◆ BellClient() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
BellClient::BellClient (PhysicalLayerphy,
uint32_t pin 
)
+
+explicit
+
+ +

Default constructor.

+
Parameters
+ + + +
phyPointer to the wireless module providing PhysicalLayer communication.
pinThe GPIO pin at which the tones will be generated.
+
+
+ +
+
+ +

◆ BellClient() [2/2]

+ +
+
+ + + + + + + + +
BellClient::BellClient (AFSKClientaud)
+
+ +

Audio-client constructor. Can be used when AFSKClient instance already exists.

+
Parameters
+ + +
audAudio client to use.
+
+
+ +
+
+

Member Function Documentation

+ +

◆ begin()

+ +
+
+ + + + + + + + +
int16_t BellClient::begin (const BellModem_tmodem)
+
+ +

Initialization method.

+
Parameters
+ + +
modemDefinition of the Bell modem to use for communication.
+
+
+
Returns
Status Codes
+ +
+
+ +

◆ setCorrection()

+ +
+
+ + + + + + + + +
int16_t BellClient::setCorrection (float corr)
+
+ +

Set correction coefficient for tone length.

+
Parameters
+ + +
correctionTiming correction factor, used to adjust the length of tones. Less than 1.0 leads to shorter tones, defaults to 1.0 (no correction).
+
+
+
Returns
Status Codes
+ +
+
+ +

◆ setModem()

+ +
+
+ + + + + + + + +
int16_t BellClient::setModem (const BellModem_tmodem)
+
+ +

Set Bell modem.

+
Parameters
+ + +
modemDefinition of the Bell modem to use for communication.
+
+
+
Returns
Status Codes
+ +
+
+ +

◆ write()

+ +
+
+ + + + + +
+ + + + + + + + +
size_t BellClient::write (uint8_t b)
+
+virtual
+
+ +

Write one byte. Implementation of interface of the RadioLibPrint/Print class.

+
Parameters
+ + +
bByte to write.
+
+
+
Returns
1 if the byte was written, 0 otherwise.
+ +

Implements RadioLibPrint.

+ +
+
+
The documentation for this class was generated from the following files: +
+
+ + + + diff --git a/class_bell_client.js b/class_bell_client.js new file mode 100644 index 00000000..cd7090ef --- /dev/null +++ b/class_bell_client.js @@ -0,0 +1,12 @@ +var class_bell_client = +[ + [ "BellClient", "class_bell_client.html#a20fcf0322ef40c31b3bc329f7d89a177", null ], + [ "BellClient", "class_bell_client.html#ab9d0d76bb88fc8bdc995ab800063c149", null ], + [ "begin", "class_bell_client.html#add9edc89cd6ff5c527ddbdabe79cb60f", null ], + [ "idle", "class_bell_client.html#aabd170def79cdbfd56a1d243e6227a75", null ], + [ "setCorrection", "class_bell_client.html#a90f3f33a09a4cf8d544ca1e9a23beae2", null ], + [ "setModem", "class_bell_client.html#a163f65f3fcce87d9bea558b34c19bd47", null ], + [ "standby", "class_bell_client.html#a57c19c733b0dfe80bd321f23b18c1e80", null ], + [ "write", "class_bell_client.html#aa2874910006a927d07d865e69cfe5c65", null ], + [ "reply", "class_bell_client.html#a9233e10bc794af85e3e86b4ec2a8746d", null ] +]; \ No newline at end of file diff --git a/class_bell_client.png b/class_bell_client.png new file mode 100644 index 00000000..d48b293e Binary files /dev/null and b/class_bell_client.png differ diff --git a/class_hell_client-members.html b/class_hell_client-members.html index e5572903..5c122ffd 100644 --- a/class_hell_client-members.html +++ b/class_hell_client-members.html @@ -92,28 +92,31 @@ $(document).ready(function(){initNavTree('class_hell_client.html',''); initResiz begin(float base, float rate=122.5)HellClient HellClient(PhysicalLayer *phy)HellClientexplicit HellClient(AFSKClient *audio)HellClientexplicit - print(const char[]) (defined in HellClient)HellClient - print(char) (defined in HellClient)HellClient - print(unsigned char, int=DEC) (defined in HellClient)HellClient - print(int, int=DEC) (defined in HellClient)HellClient - print(unsigned int, int=DEC) (defined in HellClient)HellClient - print(long, int=DEC) (defined in HellClient)HellClient - print(unsigned long, int=DEC) (defined in HellClient)HellClient - print(double, int=2) (defined in HellClient)HellClient - printGlyph(uint8_t *buff)HellClient - println(void) (defined in HellClient)HellClient - println(const char[]) (defined in HellClient)HellClient - println(char) (defined in HellClient)HellClient - println(unsigned char, int=DEC) (defined in HellClient)HellClient - println(int, int=DEC) (defined in HellClient)HellClient - println(unsigned int, int=DEC) (defined in HellClient)HellClient - println(long, int=DEC) (defined in HellClient)HellClient - println(unsigned long, int=DEC) (defined in HellClient)HellClient - println(double, int=2) (defined in HellClient)HellClient + print(ITA2String &ita2) (defined in RadioLibPrint)RadioLibPrint + print(const char[]) (defined in RadioLibPrint)RadioLibPrint + print(char) (defined in RadioLibPrint)RadioLibPrint + print(unsigned char, int=DEC) (defined in RadioLibPrint)RadioLibPrint + print(int, int=DEC) (defined in RadioLibPrint)RadioLibPrint + print(unsigned int, int=DEC) (defined in RadioLibPrint)RadioLibPrint + print(long, int=DEC) (defined in RadioLibPrint)RadioLibPrint + print(unsigned long, int=DEC) (defined in RadioLibPrint)RadioLibPrint + print(double, int=2) (defined in RadioLibPrint)RadioLibPrint + printGlyph(uint8_t *buff)HellClient + println(ITA2String &ita2) (defined in RadioLibPrint)RadioLibPrint + println(const char[]) (defined in RadioLibPrint)RadioLibPrint + println(char) (defined in RadioLibPrint)RadioLibPrint + println(unsigned char, int=DEC) (defined in RadioLibPrint)RadioLibPrint + println(int, int=DEC) (defined in RadioLibPrint)RadioLibPrint + println(unsigned int, int=DEC) (defined in RadioLibPrint)RadioLibPrint + println(long, int=DEC) (defined in RadioLibPrint)RadioLibPrint + println(unsigned long, int=DEC) (defined in RadioLibPrint)RadioLibPrint + println(double, int=2) (defined in RadioLibPrint)RadioLibPrint + println(void) (defined in RadioLibPrint)RadioLibPrint setInversion(bool inv)HellClient - write(const char *str) (defined in HellClient)HellClient - write(uint8_t *buff, size_t len) (defined in HellClient)HellClient - write(uint8_t b) (defined in HellClient)HellClient + write(uint8_t b)HellClientvirtual + write(const char *str) (defined in RadioLibPrint)RadioLibPrintinline + write(const uint8_t *buffer, size_t size) (defined in RadioLibPrint)RadioLibPrintvirtual + write(const char *buffer, size_t size) (defined in RadioLibPrint)RadioLibPrintinline diff --git a/class_hell_client.html b/class_hell_client.html index 4a611b6e..63d89984 100644 --- a/class_hell_client.html +++ b/class_hell_client.html @@ -94,6 +94,15 @@ $(document).ready(function(){initNavTree('class_hell_client.html',''); initResiz More...

#include <Hellschreiber.h>

+
+Inheritance diagram for HellClient:
+
+
+ + +RadioLibPrint + +
@@ -112,66 +121,76 @@ Public Member Functions - - - - - + + - + + + + + + + + + + + - - + - - + - - + - - + - - + - - + - - + - - - - + - - + - - + - - + - - + - - + - - + - - + - + + +

Public Member Functions

void setInversion (bool inv)
 Invert text color. More...
 
-size_t write (const char *str)
 
-size_t write (uint8_t *buff, size_t len)
 
-size_t write (uint8_t b)
size_t write (uint8_t b)
 Write one byte. Implementation of interface of the RadioLibPrint/Print class. More...
 
+
- Public Member Functions inherited from RadioLibPrint
+size_t write (const char *str)
 
+virtual size_t write (const uint8_t *buffer, size_t size)
 
+size_t write (const char *buffer, size_t size)
 
+size_t print (ITA2String &ita2)
 
+size_t println (ITA2String &ita2)
 
size_t print (const char[])
 
+
 
size_t print (char)
 
+
 
size_t print (unsigned char, int=DEC)
 
+
 
size_t print (int, int=DEC)
 
+
 
size_t print (unsigned int, int=DEC)
 
+
 
size_t print (long, int=DEC)
 
+
 
size_t print (unsigned long, int=DEC)
 
+
 
size_t print (double, int=2)
 
-size_t println (void)
 
+
 
size_t println (const char[])
 
+
 
size_t println (char)
 
+
 
size_t println (unsigned char, int=DEC)
 
+
 
size_t println (int, int=DEC)
 
+
 
size_t println (unsigned int, int=DEC)
 
+
 
size_t println (long, int=DEC)
 
+
 
size_t println (unsigned long, int=DEC)
 
+
 
size_t println (double, int=2)
 
 
+size_t println (void)
 

Detailed Description

Client for Hellschreiber transmissions.

@@ -333,6 +352,43 @@ size_t println (double +
+ + +

◆ write()

+ +
+
+ + + + + +
+ + + + + + + + +
size_t HellClient::write (uint8_t b)
+
+virtual
+
+ +

Write one byte. Implementation of interface of the RadioLibPrint/Print class.

+
Parameters
+ + +
bByte to write.
+
+
+
Returns
1 if the byte was written, 0 otherwise.
+ +

Implements RadioLibPrint.

+

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