64template<
class mesh_t = ESBMesh<ESBNetwork<RF24>, RF24>,
class network_t = ESBNetwork<RF24>,
class radio_t = RF24>
85 ESBGateway(radio_t& _radio, network_t& _network, mesh_t& _mesh);
97 void begin(uint8_t nodeID = 0, uint8_t channel = 97, rf24_datarate_e data_rate = RF24_1MBPS);
112 void begin(uint16_t address, uint8_t channel = 97, rf24_datarate_e data_rate = RF24_1MBPS,
bool meshEnable = 0, uint8_t nodeID = 0);
122 int setIP(
char* ip_addr,
char* mask);
141 void poll(uint32_t waitDelay = 3);
168 return droppedIncoming;
171 void sendUDP(uint8_t nodeID, RF24NetworkFrame frame);
241 bool begin(
bool configTUN,
bool meshEnable, uint16_t address, uint8_t mesh_nodeID, rf24_datarate_e data_rate, uint8_t _channel);
244 uint32_t droppedIncoming;
247 rf24_datarate_e dataRate;
248 char tunName[IFNAMSIZ];
251 unsigned long packets_sent;
252 uint32_t interfaceInTimer;
254 void handleRadioOut();
255 void handleRadioIn();
256 void handleRX(uint32_t waitDelay = 0);
258 volatile bool gotInterrupt;
259 int configDevice(uint16_t address);
260 int allocateTunDevice(
char* dev,
int flags, uint16_t address);
264 std::uint8_t message[MAX_PAYLOAD_SIZE];
268 std::queue<msgStruct> rxQueue;
269 std::queue<msgStruct> txQueue;
276 struct sockaddr_in addr;
277 struct in_addr getLocalIP();
279 void loadRoutingTable();