35#include "utility/uip.h"
36#include "utility/uiptimer.h"
37#include "utility/uip_arp.h"
41#if defined(ARDUINO_ARCH_NRF52) || defined(ARDUINO_ARCH_NRF52840) || defined(ARDUINO_ARCH_NRF52833)
42 #include <nrf_to_nrf.h>
45#include <RF24Network.h>
60#define UIPETHERNET_FREEPACKET 1
61#define UIPETHERNET_SENDPACKET 2
67 #define BUF ((struct uip_eth_hdr*)&uip_buf[0])
71#define uip_seteth_addr(eaddr) \
73 uip_ethaddr.addr[0] = eaddr[0]; \
74 uip_ethaddr.addr[1] = eaddr[1]; \
75 uip_ethaddr.addr[2] = eaddr[2]; \
76 uip_ethaddr.addr[3] = eaddr[3]; \
77 uip_ethaddr.addr[4] = eaddr[4]; \
78 uip_ethaddr.addr[5] = eaddr[5]; \
80#define uip_ip_addr(addr, ip) memcpy(addr, &ip[0], 4)
82#define ip_addr_uip(a) IPAddress(a[0] & 0xFF, a[0] >> 8, a[1] & 0xFF, a[1] >> 8)
84#define uip_seteth_addr(eaddr) \
86 uip_ethaddr.addr[0] = eaddr[0]; \
87 uip_ethaddr.addr[1] = eaddr[1]; \
88 uip_ethaddr.addr[2] = eaddr[2]; \
89 uip_ethaddr.addr[3] = eaddr[3]; \
90 uip_ethaddr.addr[4] = eaddr[4]; \
91 uip_ethaddr.addr[5] = eaddr[5]; \
103template<
class radio_t>
113#if !defined(RF24_TAP)
118#if defined NRF52_RADIO_LIBRARY
119 #if !defined(RF24_TAP)
140 void begin(IP_ADDR myIP, IP_ADDR subnet);
146 void begin(IPAddress ip);
147 void begin(IPAddress ip, IPAddress dns);
148 void begin(IPAddress ip, IPAddress dns, IPAddress gateway);
149 void begin(IPAddress ip, IPAddress dns, IPAddress gateway, IPAddress subnet);
159 void listen(uint16_t port);
168 void setMac(uint16_t address);
193#if defined NRF52_RADIO_LIBRARY
198#if !defined NRF52_RADIO_LIBRARY
199 RF24Network& network;
200 #if !defined(RF24_TAP)
204 RF52Network& network;
205 #if !defined(RF24_TAP)
210 static IPAddress _dnsServerAddress;
211 void configure(IPAddress ip, IPAddress dns, IPAddress gateway, IPAddress subnet);
216 static void network_send();
218 uint8_t RF24_Channel;
220 struct timer periodic_timer;
222 struct timer arp_timer;
RF24EthernetClass RF52EthernetClass
RF24EthernetClass RF24Ethernet
void setMac(uint16_t address)
void setChannel(uint8_t channel)
void listen(uint16_t port)
void set_gateway(IPAddress gwIP)
void begin(IP_ADDR myIP, IP_ADDR subnet)