10 #include <RF22ReliableDatagram.h>
13 #define RF22_DEFAULT_MAX_HOPS 30
16 #define RF22_ROUTING_TABLE_SIZE 10
19 #define RF22_ROUTER_ERROR_NONE 0
20 #define RF22_ROUTER_ERROR_INVALID_LENGTH 1
21 #define RF22_ROUTER_ERROR_NO_ROUTE 2
22 #define RF22_ROUTER_ERROR_TIMEOUT 3
23 #define RF22_ROUTER_ERROR_NO_REPLY 4
24 #define RF22_ROUTER_ERROR_UNABLE_TO_DELIVER 5
28 #define RF22_ROUTER_MAX_MESSAGE_LEN (RF22_MAX_MESSAGE_LEN - sizeof(RF22Router::RoutedMessageHeader))
152 uint8_t data[RF22_ROUTER_MAX_MESSAGE_LEN];
176 RF22Router(uint8_t thisAddress = 0, uint8_t slaveSelectPin = SS, uint8_t interrupt = 0);
195 void addRouteTo(uint8_t dest, uint8_t next_hop, uint8_t state =
Valid);
233 uint8_t
sendtoWait(uint8_t* buf, uint8_t len, uint8_t dest);
247 uint8_t
sendtoWait(uint8_t* buf, uint8_t len, uint8_t dest, uint8_t source);
269 boolean recvfromAck(uint8_t* buf, uint8_t* len, uint8_t* source = NULL, uint8_t* dest = NULL, uint8_t*
id = NULL, uint8_t* flags = NULL);
283 boolean recvfromAckTimeout(uint8_t* buf, uint8_t* len, uint16_t timeout, uint8_t* source = NULL, uint8_t* dest = NULL, uint8_t*
id = NULL, uint8_t* flags = NULL);