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();