diff --git a/_a_f_s_k_8h_source.html b/_a_f_s_k_8h_source.html index 4579c0ce..eafe8cf0 100644 --- a/_a_f_s_k_8h_source.html +++ b/_a_f_s_k_8h_source.html @@ -133,7 +133,7 @@ $(document).ready(function(){initNavTree('_a_f_s_k_8h_source.html',''); initResi
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:238
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:233
BellClient
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
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:90
diff --git a/_a_p_r_s_8h_source.html b/_a_p_r_s_8h_source.html index ba76b01b..a374060b 100644 --- a/_a_p_r_s_8h_source.html +++ b/_a_p_r_s_8h_source.html @@ -189,7 +189,7 @@ $(document).ready(function(){initNavTree('_a_p_r_s_8h_source.html',''); initResi
APRSClient::begin
int16_t begin(char sym, char *callsign=NULL, uint8_t ssid=0, bool alt=false)
Initialization method.
Definition: APRS.cpp:17
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:37
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:81
-
AX25Client
Client for AX25 communication.
Definition: AX25.h:238
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:233
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:54
diff --git a/_a_x25_8h_source.html b/_a_x25_8h_source.html index 68049a14..e715a116 100644 --- a/_a_x25_8h_source.html +++ b/_a_x25_8h_source.html @@ -97,198 +97,193 @@ $(document).ready(function(){initNavTree('_a_x25_8h_source.html',''); initResiza
9 #include "../AFSK/AFSK.h"
10 #include "../BellModem/BellModem.h"
11 #include "../../utils/CRC.h"
-
12 
-
13 // macros to access bits in byte array, from http://www.mathcs.emory.edu/~cheung/Courses/255/Syllabus/1-C-intro/bit-array.html
-
14 #define SET_BIT_IN_ARRAY(A, k) ( A[(k/8)] |= (1 << (k%8)) )
-
15 #define CLEAR_BIT_IN_ARRAY(A, k) ( A[(k/8)] &= ~(1 << (k%8)) )
-
16 #define TEST_BIT_IN_ARRAY(A, k) ( A[(k/8)] & (1 << (k%8)) )
-
17 #define GET_BIT_IN_ARRAY(A, k) ( (A[(k/8)] & (1 << (k%8))) ? 1 : 0 )
-
18 
-
19 // maximum callsign length in bytes
-
20 #define RADIOLIB_AX25_MAX_CALLSIGN_LEN 6
-
21 
-
22 // flag field MSB LSB DESCRIPTION
-
23 #define RADIOLIB_AX25_FLAG 0b01111110 // 7 0 AX.25 frame start/end flag
-
24 
-
25 // address field
-
26 #define RADIOLIB_AX25_SSID_COMMAND_DEST 0b10000000 // 7 7 frame type: command (set in destination SSID)
-
27 #define RADIOLIB_AX25_SSID_COMMAND_SOURCE 0b00000000 // 7 7 command (set in source SSID)
-
28 #define RADIOLIB_AX25_SSID_RESPONSE_DEST 0b00000000 // 7 7 response (set in destination SSID)
-
29 #define RADIOLIB_AX25_SSID_RESPONSE_SOURCE 0b10000000 // 7 7 response (set in source SSID)
-
30 #define RADIOLIB_AX25_SSID_HAS_NOT_BEEN_REPEATED 0b00000000 // 7 7 not repeated yet (set in repeater SSID)
-
31 #define RADIOLIB_AX25_SSID_HAS_BEEN_REPEATED 0b10000000 // 7 7 repeated (set in repeater SSID)
-
32 #define RADIOLIB_AX25_SSID_RESERVED_BITS 0b01100000 // 6 5 reserved bits in SSID
-
33 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_CONTINUE 0b00000000 // 0 0 HDLC extension bit: next octet contains more address information
-
34 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_END 0b00000001 // 0 0 address field end
-
35 
-
36 // control field
-
37 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE 0b01101100 // 7 2 U frame type: set asynchronous balanced mode (connect request)
-
38 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE_EXT 0b00101100 // 7 2 set asynchronous balanced mode extended (connect request with module 128)
-
39 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT 0b01000000 // 7 2 disconnect request
-
40 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT_MODE 0b00001100 // 7 2 disconnect mode (system busy or disconnected)
-
41 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_ACK 0b01100000 // 7 2 unnumbered acknowledge
-
42 #define RADIOLIB_AX25_CONTROL_U_FRAME_REJECT 0b10000100 // 7 2 frame reject
-
43 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_INFORMATION 0b00000000 // 7 2 unnumbered information
-
44 #define RADIOLIB_AX25_CONTROL_U_EXHANGE_IDENTIFICATION 0b10101100 // 7 2 exchange ID
-
45 #define RADIOLIB_AX25_CONTROL_U_TEST 0b11100000 // 7 2 test
-
46 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_ENABLED 0b00010000 // 4 4 control field poll/final bit: enabled
-
47 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_DISABLED 0b00000000 // 4 4 disabled
-
48 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_READY 0b00000000 // 3 2 S frame type: receive ready (system ready to receive)
-
49 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_NOT_READY 0b00000100 // 3 2 receive not ready (TNC buffer full)
-
50 #define RADIOLIB_AX25_CONTROL_S_REJECT 0b00001000 // 3 2 reject (out of sequence or duplicate)
-
51 #define RADIOLIB_AX25_CONTROL_S_SELECTIVE_REJECT 0b00001100 // 3 2 selective reject (single frame repeat request)
-
52 #define RADIOLIB_AX25_CONTROL_INFORMATION_FRAME 0b00000000 // 0 0 frame type: information (I frame)
-
53 #define RADIOLIB_AX25_CONTROL_SUPERVISORY_FRAME 0b00000001 // 1 0 supervisory (S frame)
-
54 #define RADIOLIB_AX25_CONTROL_UNNUMBERED_FRAME 0b00000011 // 1 0 unnumbered (U frame)
-
55 
-
56 // protocol identifier field
-
57 #define RADIOLIB_AX25_PID_ISO_8208 0x01
-
58 #define RADIOLIB_AX25_PID_TCP_IP_COMPRESSED 0x06
-
59 #define RADIOLIB_AX25_PID_TCP_IP_UNCOMPRESSED 0x07
-
60 #define RADIOLIB_AX25_PID_SEGMENTATION_FRAGMENT 0x08
-
61 #define RADIOLIB_AX25_PID_TEXNET_DATAGRAM_PROTOCOL 0xC3
-
62 #define RADIOLIB_AX25_PID_LINK_QUALITY_PROTOCOL 0xC4
-
63 #define RADIOLIB_AX25_PID_APPLETALK 0xCA
-
64 #define RADIOLIB_AX25_PID_APPLETALK_ARP 0xCB
-
65 #define RADIOLIB_AX25_PID_ARPA_INTERNET_PROTOCOL 0xCC
-
66 #define RADIOLIB_AX25_PID_ARPA_ADDRESS_RESOLUTION 0xCD
-
67 #define RADIOLIB_AX25_PID_FLEXNET 0xCE
-
68 #define RADIOLIB_AX25_PID_NET_ROM 0xCF
-
69 #define RADIOLIB_AX25_PID_NO_LAYER_3 0xF0
-
70 #define RADIOLIB_AX25_PID_ESCAPE_CHARACTER 0xFF
-
71 
-
76 class AX25Frame {
-
77  public:
-
81  char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
12 #include "../../utils/FEC.h"
+
13 
+
14 // maximum callsign length in bytes
+
15 #define RADIOLIB_AX25_MAX_CALLSIGN_LEN 6
+
16 
+
17 // flag field MSB LSB DESCRIPTION
+
18 #define RADIOLIB_AX25_FLAG 0b01111110 // 7 0 AX.25 frame start/end flag
+
19 
+
20 // address field
+
21 #define RADIOLIB_AX25_SSID_COMMAND_DEST 0b10000000 // 7 7 frame type: command (set in destination SSID)
+
22 #define RADIOLIB_AX25_SSID_COMMAND_SOURCE 0b00000000 // 7 7 command (set in source SSID)
+
23 #define RADIOLIB_AX25_SSID_RESPONSE_DEST 0b00000000 // 7 7 response (set in destination SSID)
+
24 #define RADIOLIB_AX25_SSID_RESPONSE_SOURCE 0b10000000 // 7 7 response (set in source SSID)
+
25 #define RADIOLIB_AX25_SSID_HAS_NOT_BEEN_REPEATED 0b00000000 // 7 7 not repeated yet (set in repeater SSID)
+
26 #define RADIOLIB_AX25_SSID_HAS_BEEN_REPEATED 0b10000000 // 7 7 repeated (set in repeater SSID)
+
27 #define RADIOLIB_AX25_SSID_RESERVED_BITS 0b01100000 // 6 5 reserved bits in SSID
+
28 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_CONTINUE 0b00000000 // 0 0 HDLC extension bit: next octet contains more address information
+
29 #define RADIOLIB_AX25_SSID_HDLC_EXTENSION_END 0b00000001 // 0 0 address field end
+
30 
+
31 // control field
+
32 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE 0b01101100 // 7 2 U frame type: set asynchronous balanced mode (connect request)
+
33 #define RADIOLIB_AX25_CONTROL_U_SET_ASYNC_BAL_MODE_EXT 0b00101100 // 7 2 set asynchronous balanced mode extended (connect request with module 128)
+
34 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT 0b01000000 // 7 2 disconnect request
+
35 #define RADIOLIB_AX25_CONTROL_U_DISCONNECT_MODE 0b00001100 // 7 2 disconnect mode (system busy or disconnected)
+
36 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_ACK 0b01100000 // 7 2 unnumbered acknowledge
+
37 #define RADIOLIB_AX25_CONTROL_U_FRAME_REJECT 0b10000100 // 7 2 frame reject
+
38 #define RADIOLIB_AX25_CONTROL_U_UNNUMBERED_INFORMATION 0b00000000 // 7 2 unnumbered information
+
39 #define RADIOLIB_AX25_CONTROL_U_EXHANGE_IDENTIFICATION 0b10101100 // 7 2 exchange ID
+
40 #define RADIOLIB_AX25_CONTROL_U_TEST 0b11100000 // 7 2 test
+
41 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_ENABLED 0b00010000 // 4 4 control field poll/final bit: enabled
+
42 #define RADIOLIB_AX25_CONTROL_POLL_FINAL_DISABLED 0b00000000 // 4 4 disabled
+
43 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_READY 0b00000000 // 3 2 S frame type: receive ready (system ready to receive)
+
44 #define RADIOLIB_AX25_CONTROL_S_RECEIVE_NOT_READY 0b00000100 // 3 2 receive not ready (TNC buffer full)
+
45 #define RADIOLIB_AX25_CONTROL_S_REJECT 0b00001000 // 3 2 reject (out of sequence or duplicate)
+
46 #define RADIOLIB_AX25_CONTROL_S_SELECTIVE_REJECT 0b00001100 // 3 2 selective reject (single frame repeat request)
+
47 #define RADIOLIB_AX25_CONTROL_INFORMATION_FRAME 0b00000000 // 0 0 frame type: information (I frame)
+
48 #define RADIOLIB_AX25_CONTROL_SUPERVISORY_FRAME 0b00000001 // 1 0 supervisory (S frame)
+
49 #define RADIOLIB_AX25_CONTROL_UNNUMBERED_FRAME 0b00000011 // 1 0 unnumbered (U frame)
+
50 
+
51 // protocol identifier field
+
52 #define RADIOLIB_AX25_PID_ISO_8208 0x01
+
53 #define RADIOLIB_AX25_PID_TCP_IP_COMPRESSED 0x06
+
54 #define RADIOLIB_AX25_PID_TCP_IP_UNCOMPRESSED 0x07
+
55 #define RADIOLIB_AX25_PID_SEGMENTATION_FRAGMENT 0x08
+
56 #define RADIOLIB_AX25_PID_TEXNET_DATAGRAM_PROTOCOL 0xC3
+
57 #define RADIOLIB_AX25_PID_LINK_QUALITY_PROTOCOL 0xC4
+
58 #define RADIOLIB_AX25_PID_APPLETALK 0xCA
+
59 #define RADIOLIB_AX25_PID_APPLETALK_ARP 0xCB
+
60 #define RADIOLIB_AX25_PID_ARPA_INTERNET_PROTOCOL 0xCC
+
61 #define RADIOLIB_AX25_PID_ARPA_ADDRESS_RESOLUTION 0xCD
+
62 #define RADIOLIB_AX25_PID_FLEXNET 0xCE
+
63 #define RADIOLIB_AX25_PID_NET_ROM 0xCF
+
64 #define RADIOLIB_AX25_PID_NO_LAYER_3 0xF0
+
65 #define RADIOLIB_AX25_PID_ESCAPE_CHARACTER 0xFF
+
66 
+
71 class AX25Frame {
+
72  public:
+
76  char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
77 
+
81  uint8_t destSSID;
82 
-
86  uint8_t destSSID;
+
86  char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
87 
-
91  char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
91  uint8_t srcSSID;
92 
-
96  uint8_t srcSSID;
+
96  uint8_t numRepeaters;
97 
-
101  uint8_t numRepeaters;
+
101  uint8_t control;
102 
-
106  uint8_t control;
+
106  uint8_t protocolID;
107 
-
111  uint8_t protocolID;
+
111  uint16_t infoLen;
112 
-
116  uint16_t infoLen;
+
116  uint8_t rcvSeqNumber;
117 
-
121  uint8_t rcvSeqNumber;
+
121  uint16_t sendSeqNumber;
122 
-
126  uint16_t sendSeqNumber;
-
127 
-
128  #if !RADIOLIB_STATIC_ONLY
-
132  uint8_t* info;
+
123  #if !RADIOLIB_STATIC_ONLY
+
127  uint8_t* info;
+
128 
+
132  char** repeaterCallsigns;
133 
-
137  char** repeaterCallsigns;
-
138 
-
142  uint8_t* repeaterSSIDs;
-
143  #else
-
147  uint8_t info[RADIOLIB_STATIC_ARRAY_SIZE];
+
137  uint8_t* repeaterSSIDs;
+
138  #else
+
142  uint8_t info[RADIOLIB_STATIC_ARRAY_SIZE];
+
143 
+
147  char repeaterCallsigns[8][RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
148 
-
152  char repeaterCallsigns[8][RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
-
153 
-
157  uint8_t repeaterSSIDs[8];
-
158  #endif
-
159 
-
168  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control);
-
169 
-
180  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control, uint8_t protocolID, const char* info);
-
181 
-
193  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);
-
194 
-
199  AX25Frame(const AX25Frame& frame);
+
152  uint8_t repeaterSSIDs[8];
+
153  #endif
+
154 
+
163  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control);
+
164 
+
175  AX25Frame(const char* destCallsign, uint8_t destSSID, const char* srcCallsign, uint8_t srcSSID, uint8_t control, uint8_t protocolID, const char* info);
+
176 
+
188  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);
+
189 
+
194  AX25Frame(const AX25Frame& frame);
+
195 
+
199  ~AX25Frame();
200 
-
204  ~AX25Frame();
-
205 
-
210  AX25Frame& operator=(const AX25Frame& frame);
-
211 
-
219  int16_t setRepeaters(char** repeaterCallsigns, uint8_t* repeaterSSIDs, uint8_t numRepeaters);
-
220 
-
225  void setRecvSequence(uint8_t seqNumber);
-
226 
-
231  void setSendSequence(uint8_t seqNumber);
-
232 };
-
233 
-
238 class AX25Client {
-
239  public:
-
244  explicit AX25Client(PhysicalLayer* phy);
-
245 
-
246  #if !RADIOLIB_EXCLUDE_AFSK
-
251  explicit AX25Client(AFSKClient* aud);
-
252 
-
257  AX25Client(const AX25Client& ax25);
-
258 
-
263  AX25Client& operator=(const AX25Client& ax25);
-
264 
-
273  int16_t setCorrection(int16_t mark, int16_t space, float length = 1.0f);
-
274  #endif
-
275 
-
276  // basic methods
-
277 
-
287  int16_t begin(const char* srcCallsign, uint8_t srcSSID = 0x00, uint8_t preLen = 8);
-
288 
-
289  #if defined(RADIOLIB_BUILD_ARDUINO)
-
298  int16_t transmit(String& str, const char* destCallsign, uint8_t destSSID = 0x00);
-
299  #endif
-
300 
-
309  int16_t transmit(const char* str, const char* destCallsign, uint8_t destSSID = 0x00);
-
310 
-
316  int16_t sendFrame(AX25Frame* frame);
+
205  AX25Frame& operator=(const AX25Frame& frame);
+
206 
+
214  int16_t setRepeaters(char** repeaterCallsigns, uint8_t* repeaterSSIDs, uint8_t numRepeaters);
+
215 
+
220  void setRecvSequence(uint8_t seqNumber);
+
221 
+
226  void setSendSequence(uint8_t seqNumber);
+
227 };
+
228 
+
233 class AX25Client {
+
234  public:
+
239  explicit AX25Client(PhysicalLayer* phy);
+
240 
+
241  #if !RADIOLIB_EXCLUDE_AFSK
+
246  explicit AX25Client(AFSKClient* aud);
+
247 
+
252  AX25Client(const AX25Client& ax25);
+
253 
+
258  AX25Client& operator=(const AX25Client& ax25);
+
259 
+
268  int16_t setCorrection(int16_t mark, int16_t space, float length = 1.0f);
+
269  #endif
+
270 
+
271  // basic methods
+
272 
+
282  int16_t begin(const char* srcCallsign, uint8_t srcSSID = 0x00, uint8_t preLen = 8);
+
283 
+
284  #if defined(RADIOLIB_BUILD_ARDUINO)
+
293  int16_t transmit(String& str, const char* destCallsign, uint8_t destSSID = 0x00);
+
294  #endif
+
295 
+
304  int16_t transmit(const char* str, const char* destCallsign, uint8_t destSSID = 0x00);
+
305 
+
311  int16_t sendFrame(AX25Frame* frame);
+
312 
+
313 #if !RADIOLIB_GODMODE
+
314  private:
+
315 #endif
+
316  friend class APRSClient;
317 
-
318 #if !RADIOLIB_GODMODE
-
319  private:
-
320 #endif
-
321  friend class APRSClient;
-
322 
-
323  PhysicalLayer* phyLayer;
-
324  #if !RADIOLIB_EXCLUDE_AFSK
-
325  AFSKClient* audio;
-
326  BellClient* bellModem;
-
327  #endif
-
328 
-
329  char sourceCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1] = { 0 };
-
330  uint8_t sourceSSID = 0;
-
331  uint16_t preambleLen = 0;
-
332 
-
333  void getCallsign(char* buff);
-
334  uint8_t getSSID();
-
335 };
-
336 
-
337 #endif
-
338 
-
339 #endif
+
318  PhysicalLayer* phyLayer;
+
319  #if !RADIOLIB_EXCLUDE_AFSK
+
320  AFSKClient* audio;
+
321  BellClient* bellModem;
+
322  #endif
+
323 
+
324  char sourceCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1] = { 0 };
+
325  uint8_t sourceSSID = 0;
+
326  uint16_t preambleLen = 0;
+
327 
+
328  void getCallsign(char* buff);
+
329  uint8_t getSSID();
+
330 };
+
331 
+
332 #endif
+
333 
+
334 #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:85
-
AX25Client
Client for AX25 communication.
Definition: AX25.h:238
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:233
AX25Client::sendFrame
int16_t sendFrame(AX25Frame *frame)
Transmit arbitrary AX.25 frame.
Definition: AX25.cpp:283
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:232
AX25Client::transmit
int16_t transmit(const char *str, const char *destCallsign, uint8_t destSSID=0x00)
Transmit unnumbered information (UI) frame.
Definition: AX25.cpp:270
AX25Client::operator=
AX25Client & operator=(const AX25Client &ax25)
Overload for assignment operator.
Definition: AX25.cpp:216
AX25Client::begin
int16_t begin(const char *srcCallsign, uint8_t srcSSID=0x00, uint8_t preLen=8)
Initialization method.
Definition: AX25.cpp:244
AX25Client::AX25Client
AX25Client(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: AX25.cpp:187
-
AX25Frame
Abstraction of AX.25 frame format.
Definition: AX25.h:76
+
AX25Frame
Abstraction of AX.25 frame format.
Definition: AX25.h:71
AX25Frame::setSendSequence
void setSendSequence(uint8_t seqNumber)
Method to set send sequence number.
Definition: AX25.cpp:183
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:137
-
AX25Frame::srcCallsign
char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the source station.
Definition: AX25.h:91
+
AX25Frame::repeaterCallsigns
char ** repeaterCallsigns
Array of repeater callsigns.
Definition: AX25.h:132
+
AX25Frame::srcCallsign
char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the source station.
Definition: AX25.h:86
AX25Frame::setRecvSequence
void setRecvSequence(uint8_t seqNumber)
Method to set receive sequence number.
Definition: AX25.cpp:179
-
AX25Frame::sendSeqNumber
uint16_t sendSeqNumber
Send sequence number.
Definition: AX25.h:126
-
AX25Frame::srcSSID
uint8_t srcSSID
SSID of the source station.
Definition: AX25.h:96
+
AX25Frame::sendSeqNumber
uint16_t sendSeqNumber
Send sequence number.
Definition: AX25.h:121
+
AX25Frame::srcSSID
uint8_t srcSSID
SSID of the source station.
Definition: AX25.h:91
AX25Frame::operator=
AX25Frame & operator=(const AX25Frame &frame)
Overload for assignment operator.
Definition: AX25.cpp:108
-
AX25Frame::control
uint8_t control
The control field.
Definition: AX25.h:106
-
AX25Frame::repeaterSSIDs
uint8_t * repeaterSSIDs
Array of repeater SSIDs.
Definition: AX25.h:142
-
AX25Frame::infoLen
uint16_t infoLen
Number of bytes in the information field.
Definition: AX25.h:116
+
AX25Frame::control
uint8_t control
The control field.
Definition: AX25.h:101
+
AX25Frame::repeaterSSIDs
uint8_t * repeaterSSIDs
Array of repeater SSIDs.
Definition: AX25.h:137
+
AX25Frame::infoLen
uint16_t infoLen
Number of bytes in the information field.
Definition: AX25.h:111
AX25Frame::setRepeaters
int16_t setRepeaters(char **repeaterCallsigns, uint8_t *repeaterSSIDs, uint8_t numRepeaters)
Method to set the repeater callsigns and SSIDs.
Definition: AX25.cpp:143
-
AX25Frame::destCallsign
char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the destination station.
Definition: AX25.h:81
-
AX25Frame::info
uint8_t * info
The info field.
Definition: AX25.h:132
-
AX25Frame::protocolID
uint8_t protocolID
The protocol identifier (PID) field.
Definition: AX25.h:111
+
AX25Frame::destCallsign
char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the destination station.
Definition: AX25.h:76
+
AX25Frame::info
uint8_t * info
The info field.
Definition: AX25.h:127
+
AX25Frame::protocolID
uint8_t protocolID
The protocol identifier (PID) field.
Definition: AX25.h:106
AX25Frame::~AX25Frame
~AX25Frame()
Default destructor.
Definition: AX25.cpp:90
-
AX25Frame::numRepeaters
uint8_t numRepeaters
Number of repeaters to be used.
Definition: AX25.h:101
-
AX25Frame::rcvSeqNumber
uint8_t rcvSeqNumber
Receive sequence number.
Definition: AX25.h:121
-
AX25Frame::destSSID
uint8_t destSSID
SSID of the destination station.
Definition: AX25.h:86
+
AX25Frame::numRepeaters
uint8_t numRepeaters
Number of repeaters to be used.
Definition: AX25.h:96
+
AX25Frame::rcvSeqNumber
uint8_t rcvSeqNumber
Receive sequence number.
Definition: AX25.h:116
+
AX25Frame::destSSID
uint8_t destSSID
SSID of the destination station.
Definition: AX25.h:81
BellClient
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
PhysicalLayer
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:54
diff --git a/_f_e_c_8h_source.html b/_f_e_c_8h_source.html index 4dd41fed..b4d7ac74 100644 --- a/_f_e_c_8h_source.html +++ b/_f_e_c_8h_source.html @@ -135,7 +135,14 @@ $(document).ready(function(){initNavTree('_f_e_c_8h_source.html',''); initResiza
71 // the global singleton
72 extern RadioLibBCH RadioLibBCHInstance;
73 
-
74 #endif
+
74 // macros to access bits in byte array, from http://www.mathcs.emory.edu/~cheung/Courses/255/Syllabus/1-C-intro/bit-array.html
+
75 #define SET_BIT_IN_ARRAY(A, k) ( A[(k/8)] |= (1 << (k%8)) )
+
76 #define CLEAR_BIT_IN_ARRAY(A, k) ( A[(k/8)] &= ~(1 << (k%8)) )
+
77 #define TEST_BIT_IN_ARRAY(A, k) ( A[(k/8)] & (1 << (k%8)) )
+
78 #define GET_BIT_IN_ARRAY(A, k) ( (A[(k/8)] & (1 << (k%8))) ? 1 : 0 )
+
79 
+
80 
+
81 #endif
RadioLibBCH
Class to calculate Bose–Chaudhuri–Hocquenghem (BCH) class of forward error correction codes....
Definition: FEC.h:26
RadioLibBCH::RadioLibBCH
RadioLibBCH()
Default constructor.
Definition: FEC.cpp:4
RadioLibBCH::begin
void begin(uint8_t n, uint8_t k, uint32_t poly)
Initialization method.
Definition: FEC.cpp:21
diff --git a/_physical_layer_8h_source.html b/_physical_layer_8h_source.html index 5d352a28..ad91f44f 100644 --- a/_physical_layer_8h_source.html +++ b/_physical_layer_8h_source.html @@ -302,7 +302,7 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
558 
559 #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:238
+
AX25Client
Client for AX25 communication.
Definition: AX25.h:233
BellClient
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
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:90