65template<
class mesh_t = ESBMesh<ESBNetwork<RF24>, RF24>,
class network_t = ESBNetwork<RF24>,
class radio_t = RF24>
86 ESBGateway(radio_t& _radio, network_t& _network, mesh_t& _mesh);
98 void begin(uint8_t nodeID = 0, uint8_t channel = 97, rf24_datarate_e data_rate = RF24_1MBPS);
113 void begin(uint16_t address, uint8_t channel = 97, rf24_datarate_e data_rate = RF24_1MBPS,
bool meshEnable = 0, uint8_t nodeID = 0);
123 int setIP(
char* ip_addr,
char* mask);
142 void poll(uint32_t waitDelay = 3);
169 return droppedIncoming;
178 void sendUDP(uint8_t nodeID, RF24NetworkFrame frame);
248 bool begin(
bool configTUN,
bool meshEnable, uint16_t address, uint8_t mesh_nodeID, rf24_datarate_e data_rate, uint8_t _channel);
251 uint32_t droppedIncoming;
254 rf24_datarate_e dataRate;
255 char tunName[IFNAMSIZ];
258 unsigned long packets_sent;
259 uint32_t interfaceInTimer;
261 void handleRadioOut();
262 void handleRadioIn();
263 bool validSource(RF24NetworkFrame& frame);
264 void handleRX(uint32_t waitDelay = 0);
266 volatile bool gotInterrupt;
267 int configDevice(uint16_t address);
268 int allocateTunDevice(
char* dev,
int flags, uint16_t address);
272 std::uint8_t message[MAX_PAYLOAD_SIZE];
276 std::queue<msgStruct> rxQueue;
277 std::queue<msgStruct> txQueue;
284 struct sockaddr_in addr;
285 struct in_addr getLocalIP();
287 void loadRoutingTable();