23 #define RF24Ethernet_h
35 #include "utility/uip.h"
36 #include "utility/uiptimer.h"
37 #include "utility/uip_arp.h"
42 #include <RF24Network.h>
43 #if !defined(RF24_TAP)
48 #include "IPAddress.h"
57 #define UIPETHERNET_FREEPACKET 1
58 #define UIPETHERNET_SENDPACKET 2
64 #define BUF ((struct uip_eth_hdr*)&uip_buf[0])
68 #define uip_seteth_addr(eaddr) \
70 uip_ethaddr.addr[0] = eaddr[0]; \
71 uip_ethaddr.addr[1] = eaddr[1]; \
72 uip_ethaddr.addr[2] = eaddr[2]; \
73 uip_ethaddr.addr[3] = eaddr[3]; \
74 uip_ethaddr.addr[4] = eaddr[4]; \
75 uip_ethaddr.addr[5] = eaddr[5]; \
77 #define uip_ip_addr(addr, ip) memcpy(addr, &ip[0], 4)
79 #define ip_addr_uip(a) IPAddress(a[0] & 0xFF, a[0] >> 8, a[1] & 0xFF, a[1] >> 8)
81 #define uip_seteth_addr(eaddr) \
83 uip_ethaddr.addr[0] = eaddr[0]; \
84 uip_ethaddr.addr[1] = eaddr[1]; \
85 uip_ethaddr.addr[2] = eaddr[2]; \
86 uip_ethaddr.addr[3] = eaddr[3]; \
87 uip_ethaddr.addr[4] = eaddr[4]; \
88 uip_ethaddr.addr[5] = eaddr[5]; \
109 #if !defined(RF24_TAP)
129 void begin(IP_ADDR myIP, IP_ADDR subnet);
135 void begin(IPAddress ip);
136 void begin(IPAddress ip, IPAddress dns);
137 void begin(IPAddress ip, IPAddress dns, IPAddress gateway);
138 void begin(IPAddress ip, IPAddress dns, IPAddress gateway, IPAddress subnet);
148 void listen(uint16_t port);
157 void setMac(uint16_t address);
183 RF24Network& network;
184 #if !defined(RF24_TAP)
188 static IPAddress _dnsServerAddress;
189 void configure(IPAddress ip, IPAddress dns, IPAddress gateway, IPAddress subnet);
194 static void network_send();
196 uint8_t RF24_Channel;
198 struct timer periodic_timer;
200 struct timer arp_timer;
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)