RadioLib
Universal wireless communication library for Arduino
RadioLib.h
1 #ifndef _RADIOLIB_H
2 #define _RADIOLIB_H
3 
43 #include "TypeDef.h"
44 #include "Module.h"
45 
46 // warnings are printed in this file since BuildOpt.h is compiled in multiple places
47 
48 // check God mode
49 #ifdef RADIOLIB_GODMODE
50  #warning "God mode active, I hope it was intentional. Buckle up, lads."
51 #endif
52 
53 // print debug info
54 #ifdef RADIOLIB_DEBUG
55  #pragma message "RADIOLIB_PLATFORM: " RADIOLIB_PLATFORM
56 #endif
57 
58 // check unknown/unsupported platform
59 #ifdef RADIOLIB_UNKNOWN_PLATFORM
60  #warning "RadioLib might not be compatible with this Arduino board - check supported platforms at https://github.com/jgromes/RadioLib!"
61 #endif
62 
63 #include "modules/CC1101/CC1101.h"
64 #include "modules/ESP8266/ESP8266.h"
65 #include "modules/HC05/HC05.h"
66 #include "modules/JDY08/JDY08.h"
67 #include "modules/nRF24/nRF24.h"
68 #include "modules/RF69/RF69.h"
69 #include "modules/RFM2x/RFM22.h"
70 #include "modules/RFM2x/RFM23.h"
71 #include "modules/RFM9x/RFM95.h"
72 #include "modules/RFM9x/RFM96.h"
73 #include "modules/RFM9x/RFM97.h"
74 #include "modules/Si443x/Si4430.h"
75 #include "modules/Si443x/Si4431.h"
76 #include "modules/Si443x/Si4432.h"
77 #include "modules/SX1231/SX1231.h"
78 #include "modules/SX126x/SX1261.h"
79 #include "modules/SX126x/SX1262.h"
80 #include "modules/SX126x/SX1268.h"
81 #include "modules/SX127x/SX1272.h"
82 #include "modules/SX127x/SX1273.h"
83 #include "modules/SX127x/SX1276.h"
84 #include "modules/SX127x/SX1277.h"
85 #include "modules/SX127x/SX1278.h"
86 #include "modules/SX127x/SX1279.h"
87 #include "modules/SX128x/SX1280.h"
88 #include "modules/SX128x/SX1281.h"
89 #include "modules/SX128x/SX1282.h"
90 #include "modules/XBee/XBee.h"
91 
92 // physical layer protocols
93 #include "protocols/PhysicalLayer/PhysicalLayer.h"
94 #include "protocols/AFSK/AFSK.h"
95 #include "protocols/AX25/AX25.h"
96 #include "protocols/Hellschreiber/Hellschreiber.h"
97 #include "protocols/Morse/Morse.h"
98 #include "protocols/RTTY/RTTY.h"
99 #include "protocols/SSTV/SSTV.h"
100 
101 // transport layer protocols
102 #include "protocols/TransportLayer/TransportLayer.h"
103 #include "protocols/HTTP/HTTP.h"
104 #include "protocols/MQTT/MQTT.h"
105 
106 // only create Radio class when using RadioShield
107 #ifdef RADIOLIB_RADIOSHIELD
108 
109 // RadioShield pin definitions
110 #define RADIOSHIELD_CS_A 10
111 #define RADIOSHIELD_RX_A 9
112 #define RADIOSHIELD_TX_A 8
113 #define RADIOSHIELD_CS_B 5
114 #define RADIOSHIELD_RX_B 7
115 #define RADIOSHIELD_TX_B 6
116 #define RADIOSHIELD_INT_0 2
117 #define RADIOSHIELD_INT_1 3
118 
125 class Radio {
126  public:
127 
128  Module* ModuleA;
129  Module* ModuleB;
130 
134  Radio() {
135  ModuleA = new Module(RADIOSHIELD_CS_A, RADIOSHIELD_INT_0, RADIOSHIELD_INT_1, RADIOSHIELD_RX_A, RADIOSHIELD_TX_A, SPI, SPISettings(2000000, MSBFIRST, SPI_MODE0), nullptr);
136  ModuleB = new Module(RADIOSHIELD_CS_B, RADIOSHIELD_INT_0, RADIOSHIELD_INT_1, RADIOSHIELD_RX_B, RADIOSHIELD_TX_B, SPI, SPISettings(2000000, MSBFIRST, SPI_MODE0), nullptr);
137  }
138 
139 #ifndef RADIOLIB_GODMODE
140  private:
141 #endif
142 
143 };
144 
145 Radio RadioShield;
146 #endif
147 
148 #endif
Implements all common low-level SPI/UART/I2C methods to control the wireless module. Every module class contains one private instance of this class.
Definition: Module.h:17