From c1b731a7dde4baa2a81de4c35944ee2a3212b3f1 Mon Sep 17 00:00:00 2001 From: jgromes Date: Fri, 12 May 2023 19:10:20 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20=20@=208062a?= =?UTF-8?q?322c604c4caabfac3560c225bb06f0da78c=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _a_f_s_k_8h_source.html | 4 +- _a_p_r_s_8h_source.html | 2 +- _a_x25_8h_source.html | 329 +++++++------- _bell_modem_8h_source.html | 128 +++--- _c_r_c_8h_source.html | 145 +++++++ _module_8h_source.html | 73 ++-- _physical_layer_8h_source.html | 4 +- _radio_lib_8h_source.html | 65 +-- annotated.html | 73 ++-- annotated_dup.js | 1 + class_module-members.html | 61 ++- class_module.html | 57 ++- class_radio_lib_c_r_c-members.html | 109 +++++ class_radio_lib_c_r_c.html | 184 ++++++++ class_radio_lib_c_r_c.js | 11 + class_s_t_m32_w_lx___module-members.html | 63 ++- class_s_t_m32_w_lx___module.html | 11 +- classes.html | 2 +- dir_313caf1132e152dd9b58bea13a4052ca.html | 99 +++++ dir_313caf1132e152dd9b58bea13a4052ca.js | 4 + dir_68267d1309a1af8e8297ef4c3efbcdba.html | 8 + dir_68267d1309a1af8e8297ef4c3efbcdba.js | 1 + files.html | 16 +- functions_c.html | 3 + functions_f.html | 6 - functions_func_c.html | 3 + functions_func_f.html | 6 - functions_func_r.html | 10 +- functions_i.html | 1 + functions_o.html | 3 + functions_p.html | 3 + functions_r.html | 16 +- functions_s.html | 5 +- functions_vars.html | 22 + hierarchy.html | 27 +- hierarchy.js | 1 + menudata.js | 1 + navtreedata.js | 8 +- navtreeindex0.js | 18 +- navtreeindex1.js | 380 ++++++++-------- navtreeindex2.js | 500 +++++++++++----------- navtreeindex3.js | 250 +++++------ navtreeindex4.js | 35 +- search/all_10.js | 18 +- search/all_11.js | 2 +- search/all_12.js | 4 +- search/all_13.js | 6 +- search/all_14.js | 2 +- search/all_15.js | 2 +- search/all_16.js | 4 +- search/all_2.js | 19 +- search/all_3.js | 32 +- search/all_4.js | 14 +- search/all_5.js | 26 +- search/all_6.js | 70 +-- search/all_7.js | 10 +- search/all_8.js | 16 +- search/all_9.js | 6 +- search/all_a.js | 22 +- search/all_b.js | 8 +- search/all_c.js | 5 +- search/all_d.js | 7 +- search/all_e.js | 216 +++++----- search/all_f.js | 293 ++++++------- search/classes_0.js | 8 +- search/classes_1.js | 10 +- search/classes_2.js | 2 +- search/classes_3.js | 2 +- search/classes_4.js | 2 +- search/classes_5.js | 4 +- search/classes_6.js | 2 +- search/classes_7.js | 2 +- search/classes_8.js | 4 +- search/classes_9.js | 2 +- search/classes_a.js | 4 +- search/classes_b.js | 23 +- search/classes_c.js | 50 +-- search/classes_d.js | 2 +- search/enums_0.js | 2 +- search/enumvalues_0.js | 12 +- search/functions_0.js | 14 +- search/functions_1.js | 14 +- search/functions_10.js | 10 +- search/functions_11.js | 2 +- search/functions_12.js | 2 +- search/functions_13.js | 4 +- search/functions_14.js | 2 +- search/functions_15.js | 4 +- search/functions_2.js | 19 +- search/functions_3.js | 26 +- search/functions_4.js | 10 +- search/functions_5.js | 16 +- search/functions_6.js | 58 +-- search/functions_7.js | 4 +- search/functions_8.js | 12 +- search/functions_9.js | 4 +- search/functions_a.js | 8 +- search/functions_b.js | 4 +- search/functions_c.js | 2 +- search/functions_d.js | 14 +- search/functions_e.js | 36 +- search/functions_f.js | 256 +++++------ search/groups_0.js | 2 +- search/groups_1.js | 2 +- search/groups_2.js | 2 +- search/groups_3.js | 4 +- search/pages_0.js | 2 +- search/pages_1.js | 2 +- search/searchdata.js | 2 +- search/typedefs_0.js | 2 +- search/variables_0.js | 2 +- search/variables_1.js | 2 +- search/variables_10.html | 37 ++ search/variables_10.js | 4 + search/variables_2.js | 4 +- search/variables_3.js | 10 +- search/variables_4.js | 12 +- search/variables_5.js | 4 +- search/variables_6.js | 5 +- search/variables_7.js | 2 +- search/variables_8.js | 4 +- search/variables_9.js | 2 +- search/variables_a.js | 7 +- search/variables_b.js | 19 +- search/variables_c.js | 15 +- search/variables_d.js | 3 +- search/variables_e.js | 2 +- search/variables_f.js | 2 +- 128 files changed, 2522 insertions(+), 1814 deletions(-) create mode 100644 _c_r_c_8h_source.html create mode 100644 class_radio_lib_c_r_c-members.html create mode 100644 class_radio_lib_c_r_c.html create mode 100644 class_radio_lib_c_r_c.js create mode 100644 dir_313caf1132e152dd9b58bea13a4052ca.html create mode 100644 dir_313caf1132e152dd9b58bea13a4052ca.js create mode 100644 search/variables_10.html create mode 100644 search/variables_10.js diff --git a/_a_f_s_k_8h_source.html b/_a_f_s_k_8h_source.html index bc099cfd..e14b2b7c 100644 --- a/_a_f_s_k_8h_source.html +++ b/_a_f_s_k_8h_source.html @@ -133,8 +133,8 @@ $(document).ready(function(){initNavTree('_a_f_s_k_8h_source.html',''); initResi
int16_t noTone(bool keepOn=false)
Stops transmitting audio tone.
Definition: AFSK.cpp:32
int16_t tone(uint16_t freq, bool autoStart=true)
Start transmitting audio tone.
Definition: AFSK.cpp:17
AFSKClient(PhysicalLayer *phy, uint32_t pin)
Default contructor.
Definition: AFSK.cpp:4
-
Client for AX25 communication.
Definition: AX25.h:243
-
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:55
+
Client for AX25 communication.
Definition: AX25.h:238
+
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition: FSK4.h:15
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
Client for Morse Code communication. The public interface is the same as Arduino Serial.
Definition: Morse.h:93
diff --git a/_a_p_r_s_8h_source.html b/_a_p_r_s_8h_source.html index 030859f5..d2d1bcb4 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
int16_t begin(char sym, bool alt=false)
Initialization method.
Definition: APRS.cpp:11
int16_t sendPosition(char *destCallsign, uint8_t destSSID, char *lat, char *lon, char *msg=NULL, char *time=NULL)
Transmit position.
Definition: APRS.cpp:24
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
-
Client for AX25 communication.
Definition: AX25.h:243
+
Client for AX25 communication.
Definition: AX25.h:238
diff --git a/_a_x25_8h_source.html b/_a_x25_8h_source.html index b4b8d551..153f6ff3 100644 --- a/_a_x25_8h_source.html +++ b/_a_x25_8h_source.html @@ -96,201 +96,194 @@ $(document).ready(function(){initNavTree('_a_x25_8h_source.html',''); initResiza
8 #include "../PhysicalLayer/PhysicalLayer.h"
9 #include "../AFSK/AFSK.h"
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];
+
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];
+
82 
+
86  uint8_t destSSID;
87 
-
91  uint8_t destSSID;
+
91  char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
92 
-
96  char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
+
96  uint8_t srcSSID;
97 
-
101  uint8_t srcSSID;
+
101  uint8_t numRepeaters;
102 
-
106  uint8_t numRepeaters;
+
106  uint8_t control;
107 
-
111  uint8_t control;
+
111  uint8_t protocolID;
112 
-
116  uint8_t protocolID;
+
116  uint16_t infoLen;
117 
-
121  uint16_t infoLen;
+
121  uint8_t rcvSeqNumber;
122 
-
126  uint8_t rcvSeqNumber;
+
126  uint16_t sendSeqNumber;
127 
-
131  uint16_t sendSeqNumber;
-
132 
-
133  #if !defined(RADIOLIB_STATIC_ONLY)
-
137  uint8_t* info;
+
128  #if !defined(RADIOLIB_STATIC_ONLY)
+
132  uint8_t* info;
+
133 
+
137  char** repeaterCallsigns;
138 
-
142  char** repeaterCallsigns;
-
143 
-
147  uint8_t* repeaterSSIDs;
-
148  #else
-
152  uint8_t info[RADIOLIB_STATIC_ARRAY_SIZE];
+
142  uint8_t* repeaterSSIDs;
+
143  #else
+
147  uint8_t info[RADIOLIB_STATIC_ARRAY_SIZE];
+
148 
+
152  char repeaterCallsigns[8][RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
153 
-
157  char repeaterCallsigns[8][RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1];
-
158 
-
162  uint8_t repeaterSSIDs[8];
-
163  #endif
-
164 
-
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);
+
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);
+
200 
+
204  ~AX25Frame();
205 
-
209  ~AX25Frame();
-
210 
-
215  AX25Frame& operator=(const AX25Frame& frame);
-
216 
-
224  int16_t setRepeaters(char** repeaterCallsigns, uint8_t* repeaterSSIDs, uint8_t numRepeaters);
-
225 
-
230  void setRecvSequence(uint8_t seqNumber);
-
231 
-
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);
+
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 !defined(RADIOLIB_EXCLUDE_AFSK)
+
251  explicit AX25Client(AFSKClient* audio);
+
252 
+
261  int16_t setCorrection(int16_t mark, int16_t space, float length = 1.0f);
+
262  #endif
+
263 
+
264  // basic methods
+
265 
+
275  int16_t begin(const char* srcCallsign, uint8_t srcSSID = 0x00, uint8_t preLen = 8);
+
276 
+
277  #if defined(RADIOLIB_BUILD_ARDUINO)
+
286  int16_t transmit(String& str, const char* destCallsign, uint8_t destSSID = 0x00);
+
287  #endif
+
288 
+
297  int16_t transmit(const char* str, const char* destCallsign, uint8_t destSSID = 0x00);
+
298 
+
304  int16_t sendFrame(AX25Frame* frame);
+
305 
+
306 #if !defined(RADIOLIB_GODMODE)
+
307  private:
+
308 #endif
+
309  friend class APRSClient;
310 
-
311 #if !defined(RADIOLIB_GODMODE)
-
312  private:
-
313 #endif
-
314  friend class APRSClient;
+
311  PhysicalLayer* phyLayer;
+
312  #if !defined(RADIOLIB_EXCLUDE_AFSK)
+
313  BellClient* bellModem;
+
314  #endif
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
+
316  char sourceCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN + 1] = {0, 0, 0, 0, 0, 0, 0};
+
317  uint8_t sourceSSID = 0;
+
318  uint16_t preambleLen = 0;
+
319 
+
320  void getCallsign(char* buff);
+
321  uint8_t getSSID();
+
322 };
+
323 
+
324 #endif
+
325 
+
326 #endif
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
Client for APRS communication.
Definition: APRS.h:65
-
Client for AX25 communication.
Definition: AX25.h:243
+
Client for AX25 communication.
Definition: AX25.h:238
int16_t sendFrame(AX25Frame *frame)
Transmit arbitrary AX.25 frame.
Definition: AX25.cpp:217
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
int16_t transmit(const char *str, const char *destCallsign, uint8_t destSSID=0x00)
Transmit unnumbered information (UI) frame.
Definition: AX25.cpp:206
int16_t begin(const char *srcCallsign, uint8_t srcSSID=0x00, uint8_t preLen=8)
Initialization method.
Definition: AX25.cpp:180
AX25Client(PhysicalLayer *phy)
Constructor for 2-FSK mode.
Definition: AX25.cpp:154
-
Abstraction of AX.25 frame format.
Definition: AX25.h:81
+
Abstraction of AX.25 frame format.
Definition: AX25.h:76
void setSendSequence(uint8_t seqNumber)
Method to set send sequence number.
Definition: AX25.cpp:150
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
-
char ** repeaterCallsigns
Array of repeater callsigns.
Definition: AX25.h:142
-
char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the source station.
Definition: AX25.h:96
+
char ** repeaterCallsigns
Array of repeater callsigns.
Definition: AX25.h:137
+
char srcCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the source station.
Definition: AX25.h:91
void setRecvSequence(uint8_t seqNumber)
Method to set receive sequence number.
Definition: AX25.cpp:146
-
uint16_t sendSeqNumber
Send sequence number.
Definition: AX25.h:131
-
uint8_t srcSSID
SSID of the source station.
Definition: AX25.h:101
+
uint16_t sendSeqNumber
Send sequence number.
Definition: AX25.h:126
+
uint8_t srcSSID
SSID of the source station.
Definition: AX25.h:96
AX25Frame & operator=(const AX25Frame &frame)
Overload for assignment operator.
Definition: AX25.cpp:75
-
uint8_t control
The control field.
Definition: AX25.h:111
-
uint8_t * repeaterSSIDs
Array of repeater SSIDs.
Definition: AX25.h:147
-
uint16_t infoLen
Number of bytes in the information field.
Definition: AX25.h:121
+
uint8_t control
The control field.
Definition: AX25.h:106
+
uint8_t * repeaterSSIDs
Array of repeater SSIDs.
Definition: AX25.h:142
+
uint16_t infoLen
Number of bytes in the information field.
Definition: AX25.h:116
int16_t setRepeaters(char **repeaterCallsigns, uint8_t *repeaterSSIDs, uint8_t numRepeaters)
Method to set the repeater callsigns and SSIDs.
Definition: AX25.cpp:110
-
char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the destination station.
Definition: AX25.h:86
-
uint8_t * info
The info field.
Definition: AX25.h:137
-
uint8_t protocolID
The protocol identifier (PID) field.
Definition: AX25.h:116
+
char destCallsign[RADIOLIB_AX25_MAX_CALLSIGN_LEN+1]
Callsign of the destination station.
Definition: AX25.h:81
+
uint8_t * info
The info field.
Definition: AX25.h:132
+
uint8_t protocolID
The protocol identifier (PID) field.
Definition: AX25.h:111
~AX25Frame()
Default destructor.
Definition: AX25.cpp:57
-
uint8_t numRepeaters
Number of repeaters to be used.
Definition: AX25.h:106
-
uint8_t rcvSeqNumber
Receive sequence number.
Definition: AX25.h:126
-
uint8_t destSSID
SSID of the destination station.
Definition: AX25.h:91
-
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:55
+
uint8_t numRepeaters
Number of repeaters to be used.
Definition: AX25.h:101
+
uint8_t rcvSeqNumber
Receive sequence number.
Definition: AX25.h:121
+
uint8_t destSSID
SSID of the destination station.
Definition: AX25.h:86
+
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
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 index 35f83f44..53255208 100644 --- a/_bell_modem_8h_source.html +++ b/_bell_modem_8h_source.html @@ -95,68 +95,72 @@ $(document).ready(function(){initNavTree('_bell_modem_8h_source.html',''); initR
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 };
+
10 #if !defined(RADIOLIB_EXCLUDE_BELL)
+
11 
+
12 #include "../PhysicalLayer/PhysicalLayer.h"
+
13 #include "../AFSK/AFSK.h"
+
14 #include "../Print/Print.h"
+
15 #include "../Print/ITA2String.h"
+
16 
+
21 struct BellModem_t {
+
25  int16_t freqMark;
+
26 
+
30  int16_t freqSpace;
+
31 
+
35  int16_t baudRate;
+
36 
+
40  int16_t freqMarkReply;
+
41 
+
45  int16_t freqSpaceReply;
+
46 };
+
47 
+
48 // currently implemented Bell modems
+
49 extern const struct BellModem_t Bell101;
+
50 extern const struct BellModem_t Bell103;
+
51 extern const struct BellModem_t Bell202;
+
52 
+
57 class BellClient: public AFSKClient, public RadioLibPrint {
+
58 
+
59  public:
+
60 
+
65  bool reply;
+
66 
+
72  explicit BellClient(PhysicalLayer* phy, uint32_t pin);
+
73 
+
78  BellClient(AFSKClient* aud);
+
79 
+
85  int16_t begin(const BellModem_t& modem);
+
86 
+
92  int16_t setModem(const BellModem_t& modem);
+
93 
+
100  int16_t setCorrection(float corr);
+
101 
+
107  size_t write(uint8_t b);
+
108 
+
112  int16_t idle();
+
113 
+
117  int16_t standby();
+
118 
+
119 #if !defined(RADIOLIB_GODMODE)
+
120  private:
+
121 #endif
+
122  BellModem_t modemType;
+
123  float correction = 1.0;
+
124  uint16_t toneLen = 0;
+
125  bool autoStart = true;
126 
-
127 #endif
+
127 };
+
128 
+
129 #endif
+
130 
+
131 #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
+
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
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:93
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
+
bool reply
Whether the modem is replying. On some modems, the replying station has different tone frequencies.
Definition: BellModem.h:65
size_t write(uint8_t b)
Write one byte. Implementation of interface of the RadioLibPrint/Print class.
Definition: BellModem.cpp:55
int16_t idle()
Set the modem to idle (ready to transmit).
Definition: BellModem.cpp:88
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:15
@@ -164,12 +168,12 @@ $(document).ready(function(){initNavTree('_bell_modem_8h_source.html',''); initR
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
+
Definition of the Bell-compatible modem.
Definition: BellModem.h:21
+
int16_t freqSpace
Frequency of the space tone.
Definition: BellModem.h:30
+
int16_t freqSpaceReply
Frequency of the space tone when replying.
Definition: BellModem.h:45
+
int16_t baudRate
Baud rate.
Definition: BellModem.h:35
+
int16_t freqMarkReply
Frequency of the mark tone when replying.
Definition: BellModem.h:40
+
int16_t freqMark
Frequency of the mark tone.
Definition: BellModem.h:25
diff --git a/_c_r_c_8h_source.html b/_c_r_c_8h_source.html new file mode 100644 index 00000000..069b3f7a --- /dev/null +++ b/_c_r_c_8h_source.html @@ -0,0 +1,145 @@ + + + + + + + +RadioLib: src/utils/CRC.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CRC.h
+
+
+
1 #if !defined(_RADIOLIB_CRC_H)
+
2 #define _RADIOLIB_CRC_H
+
3 
+
4 #include "../TypeDef.h"
+
5 #include "../Module.h"
+
6 #if defined(RADIOLIB_BUILD_ARDUINO)
+
7 #include "../ArduinoHal.h"
+
8 #endif
+
9 
+
10 // CCITT CRC properties (used by AX.25)
+
11 #define RADIOLIB_CRC_CCITT_POLY (0x1021)
+
12 #define RADIOLIB_CRC_CCITT_INIT (0xFFFF)
+
13 #define RADIOLIB_CRC_CCITT_OUT (0xFFFF)
+
14 
+
19 class RadioLibCRC {
+
20  public:
+
24  uint8_t size;
+
25 
+
29  uint32_t poly;
+
30 
+
34  uint32_t init;
+
35 
+
39  uint32_t out;
+
40 
+
44  bool refIn;
+
45 
+
49  bool refOut;
+
50 
+
54  RadioLibCRC();
+
55 
+
62  uint32_t checksum(uint8_t* buff, size_t len);
+
63 };
+
64 
+
65 // the global singleton
+
66 extern RadioLibCRC RadioLibCRCInstance;
+
67 
+
68 #endif
+
Definition: CRC.h:19
+
uint32_t checksum(uint8_t *buff, size_t len)
Calcualte checksum of a buffer.
Definition: CRC.cpp:7
+
uint32_t out
Final XOR value.
Definition: CRC.h:39
+
RadioLibCRC()
Default constructor.
Definition: CRC.cpp:3
+
uint32_t init
Initial value.
Definition: CRC.h:34
+
bool refOut
Whether to reflect the result.
Definition: CRC.h:49
+
bool refIn
Whether to reflect input bytes.
Definition: CRC.h:44
+
uint8_t size
CRC size in bits.
Definition: CRC.h:24
+
uint32_t poly
CRC polynomial.
Definition: CRC.h:29
+
+
+ + + + diff --git a/_module_8h_source.html b/_module_8h_source.html index e319298c..84836ac6 100644 --- a/_module_8h_source.html +++ b/_module_8h_source.html @@ -218,51 +218,49 @@ $(document).ready(function(){initNavTree('_module_8h_source.html',''); initResiz
453 
461  void waitForMicroseconds(uint32_t start, uint32_t len);
462 
-
466  static uint8_t flipBits(uint8_t b);
-
467 
-
471  static uint16_t flipBits16(uint16_t i);
-
472 
-
480  static void hexdump(uint8_t* data, size_t len, uint32_t offset = 0, uint8_t width = 1, bool be = false);
-
481 
-
487  void regdump(uint16_t start, size_t len);
-
488 
-
489  #if defined(RADIOLIB_DEBUG) and defined(RADIOLIB_BUILD_ARDUINO)
-
490  static size_t serialPrintf(const char* format, ...);
-
491  #endif
-
492 
-
493 #if !defined(RADIOLIB_GODMODE)
-
494  private:
-
495 #endif
-
496  uint32_t csPin = RADIOLIB_NC;
-
497  uint32_t irqPin = RADIOLIB_NC;
-
498  uint32_t rstPin = RADIOLIB_NC;
-
499  uint32_t gpioPin = RADIOLIB_NC;
-
500 
-
501  // RF switch pins and table
-
502  uint32_t rfSwitchPins[RFSWITCH_MAX_PINS] = { RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC };
-
503  const RfSwitchMode_t *rfSwitchTable = nullptr;
-
504 
-
505  #if defined(RADIOLIB_INTERRUPT_TIMING)
-
506  uint32_t prevTimingLen = 0;
-
507  #endif
-
508 };
-
509 
-
510 #endif
+
469  static uint32_t reflect(uint32_t in, uint8_t bits);
+
470 
+
478  static void hexdump(uint8_t* data, size_t len, uint32_t offset = 0, uint8_t width = 1, bool be = false);
+
479 
+
485  void regdump(uint16_t start, size_t len);
+
486 
+
487  #if defined(RADIOLIB_DEBUG) and defined(RADIOLIB_BUILD_ARDUINO)
+
488  static size_t serialPrintf(const char* format, ...);
+
489  #endif
+
490 
+
491 #if !defined(RADIOLIB_GODMODE)
+
492  private:
+
493 #endif
+
494  uint32_t csPin = RADIOLIB_NC;
+
495  uint32_t irqPin = RADIOLIB_NC;
+
496  uint32_t rstPin = RADIOLIB_NC;
+
497  uint32_t gpioPin = RADIOLIB_NC;
+
498 
+
499  // RF switch pins and table
+
500  uint32_t rfSwitchPins[RFSWITCH_MAX_PINS] = { RADIOLIB_NC, RADIOLIB_NC, RADIOLIB_NC };
+
501  const RfSwitchMode_t *rfSwitchTable = nullptr;
+
502 
+
503  #if defined(RADIOLIB_INTERRUPT_TIMING)
+
504  uint32_t prevTimingLen = 0;
+
505  #endif
+
506 };
+
507 
+
508 #endif
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:31
int16_t SPIgetRegValue(uint16_t reg, uint8_t msb=7, uint8_t lsb=0)
SPI read method that automatically masks unused bits. This method is the preferred SPI read mechanism...
Definition: Module.cpp:54
uint8_t SPIstatusCommand
Basic SPI status read command. Defaults to 0x00.
Definition: Module.h:142
int16_t SPIsetRegValue(uint16_t reg, uint8_t value, uint8_t msb=7, uint8_t lsb=0, uint8_t checkInterval=2, uint8_t checkMask=0xFF)
Overwrite-safe SPI write method with verification. This method is the preferred SPI write mechanism.
Definition: Module.cpp:64
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code.
Definition: Module.h:42
-
static uint16_t flipBits16(uint16_t i)
Function to reflect bits within an integer.
Definition: Module.cpp:382
bool SPIstreamType
Whether the SPI interface is stream-type (e.g. SX126x) or register-type (e.g. SX127x)....
Definition: Module.h:153
void SPIwriteRegister(uint16_t reg, uint8_t data)
SPI basic write method. Use of this method is reserved for special cases, SPIsetRegValue should be us...
Definition: Module.cpp:132
RadioLibHal * hal
Hardware abstraction layer to be used.
Definition: Module.h:122
void term()
Terminate low-level module control.
Definition: Module.cpp:49
uint8_t SPInopCommand
Basic SPI no-operation command. Defaults to 0x00.
Definition: Module.h:137
void waitForMicroseconds(uint32_t start, uint32_t len)
Wait for time to elapse, either using the microsecond timer, or the TimerFlag. Note that in interrupt...
Definition: Module.cpp:357
+
static uint32_t reflect(uint32_t in, uint8_t bits)
Function to reflect bits within a byte.
Definition: Module.cpp:375
Module & operator=(const Module &mod)
Overload for assignment operator.
Definition: Module.cpp:33
uint32_t getGpio() const
Access method to get the pin number of second interrupt/GPIO.
Definition: Module.h:355
-
const RfSwitchMode_t * findRfSwitchMode(uint8_t mode) const
Find a mode in the RfSwitchTable.
Definition: Module.cpp:497
+
const RfSwitchMode_t * findRfSwitchMode(uint8_t mode) const
Find a mode in the RfSwitchTable.
Definition: Module.cpp:490
OpMode_t
Definition: Module.h:61
@ MODE_TX
Definition: Module.h:71
@ MODE_IDLE
Definition: Module.h:67
@@ -272,8 +270,7 @@ $(document).ready(function(){initNavTree('_module_8h_source.html',''); initResiz
int16_t SPIstreamError
The last recorded SPI stream error.
Definition: Module.h:158
int16_t SPIwriteStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)
Method to perform a write transaction with SPI stream.
Definition: Module.cpp:207
void SPItransfer(uint8_t cmd, uint16_t reg, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)
SPI single transfer method.
Definition: Module.cpp:141
-
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: Module.cpp:474
-
static uint8_t flipBits(uint8_t b)
Function to reflect bits within a byte.
Definition: Module.cpp:375
+
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: Module.cpp:467
Module(RadioLibHal *hal, uint32_t cs, uint32_t irq, uint32_t rst, uint32_t gpio=RADIOLIB_NC)
Module constructor.
Definition: Module.cpp:25
uint8_t SPIreadCommand
Basic SPI read command. Defaults to 0x00.
Definition: Module.h:127
void SPIreadRegisterBurst(uint16_t reg, size_t numBytes, uint8_t *inBytes)
SPI burst read method.
Definition: Module.cpp:103
@@ -282,17 +279,17 @@ $(document).ready(function(){initNavTree('_module_8h_source.html',''); initResiz
uint32_t getCs() const
Access method to get the pin number of SPI chip select.
Definition: Module.h:337
uint32_t getIrq() const
Access method to get the pin number of interrupt/GPIO.
Definition: Module.h:343
int16_t SPIreadStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)
Method to perform a read transaction with SPI stream.
Definition: Module.cpp:190
-
void regdump(uint16_t start, size_t len)
Function to dump device registers as hex into the debug port.
Definition: Module.cpp:435
+
void regdump(uint16_t start, size_t len)
Function to dump device registers as hex into the debug port.
Definition: Module.cpp:428
uint8_t SPIaddrWidth
SPI address width. Defaults to 8, currently only supports 8 and 16-bit addresses.
Definition: Module.h:147
-
void setRfSwitchTable(const uint32_t(&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: Module.cpp:490
+
void setRfSwitchTable(const uint32_t(&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: Module.cpp:483
int16_t SPItransferStream(uint8_t *cmd, uint8_t cmdLen, bool write, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes, bool waitForGpio, uint32_t timeout)
SPI single transfer method for modules with stream-type SPI interface (SX126x, SX128x etc....
Definition: Module.cpp:243
-
static void hexdump(uint8_t *data, size_t len, uint32_t offset=0, uint8_t width=1, bool be=false)
Function to dump data as hex into the debug port.
Definition: Module.cpp:390
+
static void hexdump(uint8_t *data, size_t len, uint32_t offset=0, uint8_t width=1, bool be=false)
Function to dump data as hex into the debug port.
Definition: Module.cpp:383
void init()
Initialize low-level module control.
Definition: Module.cpp:43
uint32_t getRst() const
Access method to get the pin number of hardware reset pin.
Definition: Module.h:349
uint8_t SPIwriteCommand
Basic SPI write command. Defaults to 0x80.
Definition: Module.h:132
void SPIwriteRegisterBurst(uint16_t reg, uint8_t *data, size_t numBytes)
SPI burst write method.
Definition: Module.cpp:123
SPIparseStatusCb_t SPIparseStatusCb
Callback to function that will parse the module-specific status codes to RadioLib status codes....
Definition: Module.h:169
-
void setRfSwitchState(uint8_t mode)
Set RF switch state.
Definition: Module.cpp:507
+
void setRfSwitchState(uint8_t mode)
Set RF switch state.
Definition: Module.cpp:500
Definition: Hal.h:11
#define RADIOLIB_ERR_UNKNOWN
There was an unexpected, unknown error. If you see this, something went incredibly wrong....
Definition: TypeDef.h:110
Definition: Module.h:49
diff --git a/_physical_layer_8h_source.html b/_physical_layer_8h_source.html index 308338b2..fc5b05e4 100644 --- a/_physical_layer_8h_source.html +++ b/_physical_layer_8h_source.html @@ -240,8 +240,8 @@ $(document).ready(function(){initNavTree('_physical_layer_8h_source.html',''); i
387 
388 #endif
Client for audio-based transmissions. Requires Arduino tone() function, and a module capable of direc...
Definition: AFSK.h:16
-
Client for AX25 communication.
Definition: AX25.h:243
-
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:55
+
Client for AX25 communication.
Definition: AX25.h:238
+
Client for Bell modem communication. The public interface is the same as Arduino Serial.
Definition: BellModem.h:57
Client for FSK-4 communication. The public interface is the same as Arduino Serial.
Definition: FSK4.h:15
Client for Hellschreiber transmissions.
Definition: Hellschreiber.h:90
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:31
diff --git a/_radio_lib_8h_source.html b/_radio_lib_8h_source.html index 3ee7b1ca..2c7e6554 100644 --- a/_radio_lib_8h_source.html +++ b/_radio_lib_8h_source.html @@ -164,40 +164,43 @@ $(document).ready(function(){initNavTree('_radio_lib_8h_source.html',''); initRe
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)
+
113 // utilities
+
114 #include "utils/CRC.h"
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;
+
116 // only create Radio class when using RadioShield
+
117 #if defined(RADIOLIB_RADIOSHIELD)
+
118 
+
119 // RadioShield pin definitions
+
120 #define RADIOSHIELD_CS_A 10
+
121 #define RADIOSHIELD_IRQ_A 2
+
122 #define RADIOSHIELD_RST_A 9
+
123 #define RADIOSHIELD_GPIO_A 8
+
124 #define RADIOSHIELD_CS_B 5
+
125 #define RADIOSHIELD_IRQ_B 3
+
126 #define RADIOSHIELD_RST_B 7
+
127 #define RADIOSHIELD_GPIO_B 6
+
128 
+
135 class Radio {
+
136  public:
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 };
-
151 
-
152 Radio RadioShield;
-
153 #endif
+
138  Module* ModuleA;
+
139  Module* ModuleB;
+
140 
+
144  Radio() {
+
145  ModuleA = new Module(RADIOSHIELD_CS_A, RADIOSHIELD_IRQ_A, RADIOSHIELD_RST_A, RADIOSHIELD_GPIO_A);
+
146  ModuleB = new Module(RADIOSHIELD_CS_B, RADIOSHIELD_IRQ_B, RADIOSHIELD_RST_B, RADIOSHIELD_GPIO_B);
+
147  }
+
148 
+
149 #if defined(RADIOLIB_GODMODE)
+
150  private:
+
151 #endif
+
152 
+
153 };
154 
-
155 #endif
+
155 Radio RadioShield;
+
156 #endif
+
157 
+
158 #endif
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 d4497cb4..658cabe9 100644 --- a/annotated.html +++ b/annotated.html @@ -110,42 +110,43 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();  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 + CRadioLibCRC + 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 23122858..b8732a25 100644 --- a/annotated_dup.js +++ b/annotated_dup.js @@ -21,6 +21,7 @@ var annotated_dup = [ "nRF24", "classn_r_f24.html", "classn_r_f24" ], [ "PagerClient", "class_pager_client.html", "class_pager_client" ], [ "PhysicalLayer", "class_physical_layer.html", "class_physical_layer" ], + [ "RadioLibCRC", "class_radio_lib_c_r_c.html", "class_radio_lib_c_r_c" ], [ "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" ], diff --git a/class_module-members.html b/class_module-members.html index 6b85e722..297bdac8 100644 --- a/class_module-members.html +++ b/class_module-members.html @@ -90,8 +90,6 @@ $(document).ready(function(){initNavTree('class_module.html',''); initResizable(

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

- - @@ -107,35 +105,36 @@ $(document).ready(function(){initNavTree('class_module.html',''); initResizable( - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
findRfSwitchMode(uint8_t mode) constModule
flipBits(uint8_t b)Modulestatic
flipBits16(uint16_t i)Modulestatic
getCs() constModuleinline
getGpio() constModuleinline
getIrq() constModuleinline
Module(const Module &mod)Module
operator=(const Module &mod)Module
OpMode_t enum nameModule
regdump(uint16_t start, size_t len)Module
RFSWITCH_MAX_PINSModulestatic
setRfSwitchPins(uint32_t rxEn, uint32_t txEn)Module
setRfSwitchState(uint8_t mode)Module
setRfSwitchTable(const uint32_t(&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[])Module
SPIaddrWidthModule
SPIcheckStream()Module
SPIgetRegValue(uint16_t reg, uint8_t msb=7, uint8_t lsb=0)Module
SPInopCommandModule
SPIparseStatusCbModule
SPIparseStatusCb_t typedefModule
SPIreadCommandModule
SPIreadRegister(uint16_t reg)Module
SPIreadRegisterBurst(uint16_t reg, size_t numBytes, uint8_t *inBytes)Module
SPIreadStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIreadStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIsetRegValue(uint16_t reg, uint8_t value, uint8_t msb=7, uint8_t lsb=0, uint8_t checkInterval=2, uint8_t checkMask=0xFF)Module
SPIstatusCommandModule
SPIstreamErrorModule
SPIstreamTypeModule
SPItransfer(uint8_t cmd, uint16_t reg, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)Module
SPItransferStream(uint8_t *cmd, uint8_t cmdLen, bool write, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes, bool waitForGpio, uint32_t timeout)Module
SPIwriteCommandModule
SPIwriteRegister(uint16_t reg, uint8_t data)Module
SPIwriteRegisterBurst(uint16_t reg, uint8_t *data, size_t numBytes)Module
SPIwriteStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIwriteStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
term()Module
waitForMicroseconds(uint32_t start, uint32_t len)Module
reflect(uint32_t in, uint8_t bits)Modulestatic
regdump(uint16_t start, size_t len)Module
RFSWITCH_MAX_PINSModulestatic
setRfSwitchPins(uint32_t rxEn, uint32_t txEn)Module
setRfSwitchState(uint8_t mode)Module
setRfSwitchTable(const uint32_t(&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[])Module
SPIaddrWidthModule
SPIcheckStream()Module
SPIgetRegValue(uint16_t reg, uint8_t msb=7, uint8_t lsb=0)Module
SPInopCommandModule
SPIparseStatusCbModule
SPIparseStatusCb_t typedefModule
SPIreadCommandModule
SPIreadRegister(uint16_t reg)Module
SPIreadRegisterBurst(uint16_t reg, size_t numBytes, uint8_t *inBytes)Module
SPIreadStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIreadStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIsetRegValue(uint16_t reg, uint8_t value, uint8_t msb=7, uint8_t lsb=0, uint8_t checkInterval=2, uint8_t checkMask=0xFF)Module
SPIstatusCommandModule
SPIstreamErrorModule
SPIstreamTypeModule
SPItransfer(uint8_t cmd, uint16_t reg, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)Module
SPItransferStream(uint8_t *cmd, uint8_t cmdLen, bool write, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes, bool waitForGpio, uint32_t timeout)Module
SPIwriteCommandModule
SPIwriteRegister(uint16_t reg, uint8_t data)Module
SPIwriteRegisterBurst(uint16_t reg, uint8_t *data, size_t numBytes)Module
SPIwriteStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIwriteStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
term()Module
waitForMicroseconds(uint32_t start, uint32_t len)Module
diff --git a/class_module.html b/class_module.html index 19e909d1..3504288c 100644 --- a/class_module.html +++ b/class_module.html @@ -218,14 +218,9 @@ void 

Static Public Member Functions

- -static uint8_t flipBits (uint8_t b) - Function to reflect bits within a byte.
-  - -static uint16_t flipBits16 (uint16_t i) - Function to reflect bits within an integer.
-  +static uint32_t reflect (uint32_t in, uint8_t bits) + Function to reflect bits within a byte. More...
+  static void hexdump (uint8_t *data, size_t len, uint32_t offset=0, uint8_t width=1, bool be=false)  Function to dump data as hex into the debug port. More...
  @@ -618,6 +613,52 @@ Static Public Attributes + + + +

◆ reflect()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
uint32_t Module::reflect (uint32_t in,
uint8_t bits 
)
+
+static
+
+ +

Function to reflect bits within a byte.

+
Parameters
+ + + +
inThe input to reflect.
bitsNumber of bits to reflect.
+
+
+
Returns
The reflected input.
+
diff --git a/class_radio_lib_c_r_c-members.html b/class_radio_lib_c_r_c-members.html new file mode 100644 index 00000000..a2ac2c4f --- /dev/null +++ b/class_radio_lib_c_r_c-members.html @@ -0,0 +1,109 @@ + + + + + + + +RadioLib: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
RadioLibCRC Member List
+
+
+ +

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

+ + + + + + + + + +
checksum(uint8_t *buff, size_t len)RadioLibCRC
initRadioLibCRC
outRadioLibCRC
polyRadioLibCRC
RadioLibCRC()RadioLibCRC
refInRadioLibCRC
refOutRadioLibCRC
sizeRadioLibCRC
+
+ + + + diff --git a/class_radio_lib_c_r_c.html b/class_radio_lib_c_r_c.html new file mode 100644 index 00000000..2c45f2a5 --- /dev/null +++ b/class_radio_lib_c_r_c.html @@ -0,0 +1,184 @@ + + + + + + + +RadioLib: RadioLibCRC Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
RadioLibCRC Class Reference
+
+
+ + + + + + + + +

+Public Member Functions

RadioLibCRC ()
 Default constructor.
 
uint32_t checksum (uint8_t *buff, size_t len)
 Calcualte checksum of a buffer. More...
 
+ + + + + + + + + + + + + + + + + + + +

+Public Attributes

+uint8_t size
 CRC size in bits.
 
+uint32_t poly
 CRC polynomial.
 
+uint32_t init
 Initial value.
 
+uint32_t out
 Final XOR value.
 
+bool refIn
 Whether to reflect input bytes.
 
+bool refOut
 Whether to reflect the result.
 
+

Member Function Documentation

+ +

◆ checksum()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint32_t RadioLibCRC::checksum (uint8_t * buff,
size_t len 
)
+
+ +

Calcualte checksum of a buffer.

+
Parameters
+ + + +
buffBuffer to calculate the checksum over.
lenSize of the buffer in bytes.
+
+
+
Returns
The resulting checksum.
+ +
+
+
The documentation for this class was generated from the following files:
    +
  • src/utils/CRC.h
  • +
  • src/utils/CRC.cpp
  • +
+
+
+ + + + diff --git a/class_radio_lib_c_r_c.js b/class_radio_lib_c_r_c.js new file mode 100644 index 00000000..d3bc34ce --- /dev/null +++ b/class_radio_lib_c_r_c.js @@ -0,0 +1,11 @@ +var class_radio_lib_c_r_c = +[ + [ "RadioLibCRC", "class_radio_lib_c_r_c.html#a4f4042a369d55e234f4fc28f189139d5", null ], + [ "checksum", "class_radio_lib_c_r_c.html#a3700c124b0edb1882c9ea131c5b43d1d", null ], + [ "init", "class_radio_lib_c_r_c.html#a579acc51fe7a01b0b9b3f2e0e57b7d5f", null ], + [ "out", "class_radio_lib_c_r_c.html#a46616ef58e9eeeca646de0c9fe681050", null ], + [ "poly", "class_radio_lib_c_r_c.html#af3942e08bde9d9d127f735bd10392f6d", null ], + [ "refIn", "class_radio_lib_c_r_c.html#ac65a358753efd05067c19fcf1098ec04", null ], + [ "refOut", "class_radio_lib_c_r_c.html#ab1b5aa578ed5818a7618df8c6cf98087", null ], + [ "size", "class_radio_lib_c_r_c.html#ad09b067c00cda1cc676c13602dee2f5a", null ] +]; \ No newline at end of file diff --git a/class_s_t_m32_w_lx___module-members.html b/class_s_t_m32_w_lx___module-members.html index 722aa410..dc8c74c2 100644 --- a/class_s_t_m32_w_lx___module-members.html +++ b/class_s_t_m32_w_lx___module-members.html @@ -90,8 +90,6 @@ $(document).ready(function(){initNavTree('class_s_t_m32_w_lx___module.html','');

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

- - @@ -107,36 +105,37 @@ $(document).ready(function(){initNavTree('class_s_t_m32_w_lx___module.html',''); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
findRfSwitchMode(uint8_t mode) constModule
flipBits(uint8_t b)Modulestatic
flipBits16(uint16_t i)Modulestatic
getCs() constModuleinline
getGpio() constModuleinline
getIrq() constModuleinline
Module(const Module &mod)Module
operator=(const Module &mod)Module
OpMode_t enum nameModule
regdump(uint16_t start, size_t len)Module
RFSWITCH_MAX_PINSModulestatic
setRfSwitchPins(uint32_t rxEn, uint32_t txEn)Module
setRfSwitchState(uint8_t mode)Module
setRfSwitchTable(const uint32_t(&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[])Module
SPIaddrWidthModule
SPIcheckStream()Module
SPIgetRegValue(uint16_t reg, uint8_t msb=7, uint8_t lsb=0)Module
SPInopCommandModule
SPIparseStatusCbModule
SPIparseStatusCb_t typedefModule
SPIreadCommandModule
SPIreadRegister(uint16_t reg)Module
SPIreadRegisterBurst(uint16_t reg, size_t numBytes, uint8_t *inBytes)Module
SPIreadStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIreadStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIsetRegValue(uint16_t reg, uint8_t value, uint8_t msb=7, uint8_t lsb=0, uint8_t checkInterval=2, uint8_t checkMask=0xFF)Module
SPIstatusCommandModule
SPIstreamErrorModule
SPIstreamTypeModule
SPItransfer(uint8_t cmd, uint16_t reg, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)Module
SPItransferStream(uint8_t *cmd, uint8_t cmdLen, bool write, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes, bool waitForGpio, uint32_t timeout)Module
SPIwriteCommandModule
SPIwriteRegister(uint16_t reg, uint8_t data)Module
SPIwriteRegisterBurst(uint16_t reg, uint8_t *data, size_t numBytes)Module
SPIwriteStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIwriteStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
STM32WLx_Module() (defined in STM32WLx_Module)STM32WLx_Module
term()Module
waitForMicroseconds(uint32_t start, uint32_t len)Module
reflect(uint32_t in, uint8_t bits)Modulestatic
regdump(uint16_t start, size_t len)Module
RFSWITCH_MAX_PINSModulestatic
setRfSwitchPins(uint32_t rxEn, uint32_t txEn)Module
setRfSwitchState(uint8_t mode)Module
setRfSwitchTable(const uint32_t(&pins)[RFSWITCH_MAX_PINS], const RfSwitchMode_t table[])Module
SPIaddrWidthModule
SPIcheckStream()Module
SPIgetRegValue(uint16_t reg, uint8_t msb=7, uint8_t lsb=0)Module
SPInopCommandModule
SPIparseStatusCbModule
SPIparseStatusCb_t typedefModule
SPIreadCommandModule
SPIreadRegister(uint16_t reg)Module
SPIreadRegisterBurst(uint16_t reg, size_t numBytes, uint8_t *inBytes)Module
SPIreadStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIreadStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIsetRegValue(uint16_t reg, uint8_t value, uint8_t msb=7, uint8_t lsb=0, uint8_t checkInterval=2, uint8_t checkMask=0xFF)Module
SPIstatusCommandModule
SPIstreamErrorModule
SPIstreamTypeModule
SPItransfer(uint8_t cmd, uint16_t reg, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes)Module
SPItransferStream(uint8_t *cmd, uint8_t cmdLen, bool write, uint8_t *dataOut, uint8_t *dataIn, size_t numBytes, bool waitForGpio, uint32_t timeout)Module
SPIwriteCommandModule
SPIwriteRegister(uint16_t reg, uint8_t data)Module
SPIwriteRegisterBurst(uint16_t reg, uint8_t *data, size_t numBytes)Module
SPIwriteStream(uint8_t cmd, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
SPIwriteStream(uint8_t *cmd, uint8_t cmdLen, uint8_t *data, size_t numBytes, bool waitForGpio=true, bool verify=true)Module
STM32WLx_Module() (defined in STM32WLx_Module)STM32WLx_Module
term()Module
waitForMicroseconds(uint32_t start, uint32_t len)Module
diff --git a/class_s_t_m32_w_lx___module.html b/class_s_t_m32_w_lx___module.html index a52adf8a..8183bd79 100644 --- a/class_s_t_m32_w_lx___module.html +++ b/class_s_t_m32_w_lx___module.html @@ -201,14 +201,9 @@ void  Function to dump device registers as hex into the debug port. More...
  - Static Public Member Functions inherited from Module - -static uint8_t flipBits (uint8_t b) - Function to reflect bits within a byte.
-  - -static uint16_t flipBits16 (uint16_t i) - Function to reflect bits within an integer.
-  +static uint32_t reflect (uint32_t in, uint8_t bits) + Function to reflect bits within a byte. More...
+  static void hexdump (uint8_t *data, size_t len, uint32_t offset=0, uint8_t width=1, bool be=false)  Function to dump data as hex into the debug port. More...
  diff --git a/classes.html b/classes.html index 422d63aa..b318623b 100644 --- a/classes.html +++ b/classes.html @@ -123,7 +123,7 @@ $(document).ready(function(){initNavTree('classes.html',''); initResizable(); })
PagerClient
PhysicalLayer
R
-
RadioLibHal
RadioLibPrint
RF69
RFM22
RFM23
RFM95
RFM96
RFM97
RFM98
Module::RfSwitchMode_t
RTTYClient
+
RadioLibCRC
RadioLibHal
RadioLibPrint
RF69
RFM22
RFM23
RFM95
RFM96
RFM97
RFM98
Module::RfSwitchMode_t
RTTYClient
S
Si4430
Si4431
Si4432
Si443x
SSTVClient
SSTVMode_t
STM32WLx
STM32WLx_Module
Stm32wlxHal
SX1231
SX1261
SX1262
SX1268
SX126x
SX1272
SX1273
SX1276
SX1277
SX1278
SX1279
SX127x
SX1280
SX1281
SX1282
SX128x
diff --git a/dir_313caf1132e152dd9b58bea13a4052ca.html b/dir_313caf1132e152dd9b58bea13a4052ca.html new file mode 100644 index 00000000..289c1a09 --- /dev/null +++ b/dir_313caf1132e152dd9b58bea13a4052ca.html @@ -0,0 +1,99 @@ + + + + + + + +RadioLib: src/utils Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
RadioLib +
+
Universal wireless communication library for Arduino
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
utils Directory Reference
+
+
+
+
+ + + + diff --git a/dir_313caf1132e152dd9b58bea13a4052ca.js b/dir_313caf1132e152dd9b58bea13a4052ca.js new file mode 100644 index 00000000..dd14ed0d --- /dev/null +++ b/dir_313caf1132e152dd9b58bea13a4052ca.js @@ -0,0 +1,4 @@ +var dir_313caf1132e152dd9b58bea13a4052ca = +[ + [ "CRC.h", "_c_r_c_8h_source.html", null ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html index c50756f6..ffdfbf6c 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -86,6 +86,14 @@ $(document).ready(function(){initNavTree('dir_68267d1309a1af8e8297ef4c3efbcdba.h
src Directory Reference
+ + + + + + +

+Directories

directory  modules
 
directory  protocols
 
diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/dir_68267d1309a1af8e8297ef4c3efbcdba.js index a62781dc..307a57bd 100644 --- a/dir_68267d1309a1af8e8297ef4c3efbcdba.js +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -2,6 +2,7 @@ var dir_68267d1309a1af8e8297ef4c3efbcdba = [ [ "modules", "dir_ddb4d7e95cc2d6c8e1ade10a20d7247d.html", "dir_ddb4d7e95cc2d6c8e1ade10a20d7247d" ], [ "protocols", "dir_79690749eba542503bb1a9a3dbb495e1.html", "dir_79690749eba542503bb1a9a3dbb495e1" ], + [ "utils", "dir_313caf1132e152dd9b58bea13a4052ca.html", "dir_313caf1132e152dd9b58bea13a4052ca" ], [ "ArduinoHal.h", "_arduino_hal_8h_source.html", null ], [ "BuildOpt.h", "_build_opt_8h_source.html", null ], [ "BuildOptUser.h", "_build_opt_user_8h_source.html", null ], diff --git a/files.html b/files.html index 4da0c432..379466d0 100644 --- a/files.html +++ b/files.html @@ -162,13 +162,15 @@ $(document).ready(function(){initNavTree('files.html',''); initResizable(); });  RTTY.h   SSTV  SSTV.h - ArduinoHal.h - BuildOpt.h - BuildOptUser.h - Hal.h - Module.h - RadioLib.h - TypeDef.h +  utils + CRC.h + ArduinoHal.h + BuildOpt.h + BuildOptUser.h + Hal.h + Module.h + RadioLib.h + TypeDef.h diff --git a/functions_c.html b/functions_c.html index 08864a87..f6edc129 100644 --- a/functions_c.html +++ b/functions_c.html @@ -88,6 +88,9 @@ $(document).ready(function(){initNavTree('functions_c.html',''); initResizable()
  • CC1101() : CC1101
  • +
  • checksum() +: RadioLibCRC +
  • clearDio0Action() : RF69 , SX127x diff --git a/functions_f.html b/functions_f.html index 330be106..4eefd050 100644 --- a/functions_f.html +++ b/functions_f.html @@ -113,12 +113,6 @@ $(document).ready(function(){initNavTree('functions_f.html',''); initResizable() , SX126x , SX127x
  • -
  • flipBits() -: Module -
  • -
  • flipBits16() -: Module -
  • forceLDRO() : SX126x , SX1272 diff --git a/functions_func_c.html b/functions_func_c.html index 043bf526..b060cdf7 100644 --- a/functions_func_c.html +++ b/functions_func_c.html @@ -88,6 +88,9 @@ $(document).ready(function(){initNavTree('functions_func_c.html',''); initResiza
  • CC1101() : CC1101
  • +
  • checksum() +: RadioLibCRC +
  • clearDio0Action() : RF69 , SX127x diff --git a/functions_func_f.html b/functions_func_f.html index 06fd4996..896010d7 100644 --- a/functions_func_f.html +++ b/functions_func_f.html @@ -113,12 +113,6 @@ $(document).ready(function(){initNavTree('functions_func_f.html',''); initResiza , SX126x , SX127x
  • -
  • flipBits() -: Module -
  • -
  • flipBits16() -: Module -
  • forceLDRO() : SX126x , SX1272 diff --git a/functions_func_r.html b/functions_func_r.html index 668574a7..19c41243 100644 --- a/functions_func_r.html +++ b/functions_func_r.html @@ -85,6 +85,9 @@ $(document).ready(function(){initNavTree('functions_func_r.html',''); initResiza  

    - r -

    diff --git a/functions_p.html b/functions_p.html index b5745590..36e6dfd5 100644 --- a/functions_p.html +++ b/functions_p.html @@ -103,6 +103,9 @@ $(document).ready(function(){initNavTree('functions_p.html',''); initResizable()
  • pinToInterrupt() : RadioLibHal
  • +
  • poly +: RadioLibCRC +
  • printGlyph() : HellClient
  • diff --git a/functions_r.html b/functions_r.html index 93770fee..2608d8a7 100644 --- a/functions_r.html +++ b/functions_r.html @@ -85,6 +85,9 @@ $(document).ready(function(){initNavTree('functions_r.html',''); initResizable()
    Here is a list of all documented class members with links to the class documentation for each member:

    - r -

    @@ -186,7 +189,17 @@ $(document).ready(function(){initNavTree('functions_vars.html',''); initResizabl +

    - o -

    + +

    - p -