7 #ifndef RHReliableDatagram_h
8 #define RHReliableDatagram_h
10 #include <RHDatagram.h>
14 #define RH_FLAGS_ACK 0x80
17 #define RH_FLAGS_RETRY 0x40
30 #define RH_ENABLE_EXPLICIT_RETRY_DEDUP 0
33 #define RH_DEFAULT_TIMEOUT 200
36 #define RH_DEFAULT_RETRIES 3
135 bool sendtoWait(uint8_t* buf, uint8_t len, uint8_t address);
158 bool recvfromAck(uint8_t* buf, uint8_t* len, uint8_t* from = NULL, uint8_t* to = NULL, uint8_t*
id = NULL, uint8_t* flags = NULL);
173 bool recvfromAckTimeout(uint8_t* buf, uint8_t* len, uint16_t timeout, uint8_t* from = NULL, uint8_t* to = NULL, uint8_t*
id = NULL, uint8_t* flags = NULL);
196 uint32_t _retransmissions;
200 uint8_t _lastSequenceNumber;
214 uint8_t _seenIds[256];
uint8_t thisAddress()
Definition: RHDatagram.cpp:77
void setHeaderFlags(uint8_t set, uint8_t clear=RH_FLAGS_NONE)
Definition: RHDatagram.cpp:97
void setRetries(uint8_t retries)
Definition: RHReliableDatagram.cpp:36
bool sendtoWait(uint8_t *buf, uint8_t len, uint8_t address)
Definition: RHReliableDatagram.cpp:48
bool recvfromAck(uint8_t *buf, uint8_t *len, uint8_t *from=NULL, uint8_t *to=NULL, uint8_t *id=NULL, uint8_t *flags=NULL)
Definition: RHReliableDatagram.cpp:128
Abstract base class for a RadioHead driver.
Definition: RHGenericDriver.h:41
bool sendto(uint8_t *buf, uint8_t len, uint8_t address)
Definition: RHDatagram.cpp:33
bool recvfrom(uint8_t *buf, uint8_t *len, uint8_t *from=NULL, uint8_t *to=NULL, uint8_t *id=NULL, uint8_t *flags=NULL)
Definition: RHDatagram.cpp:39
bool waitAvailableTimeout(uint16_t timeout)
Definition: RHDatagram.cpp:72
uint32_t retransmissions()
Definition: RHReliableDatagram.cpp:186
void resetRetransmissions()
Definition: RHReliableDatagram.cpp:191
bool available()
Definition: RHDatagram.cpp:52
bool recvfromAckTimeout(uint8_t *buf, uint8_t *len, uint16_t timeout, uint8_t *from=NULL, uint8_t *to=NULL, uint8_t *id=NULL, uint8_t *flags=NULL)
Definition: RHReliableDatagram.cpp:170
void setHeaderId(uint8_t id)
Definition: RHDatagram.cpp:92
uint8_t retries()
Definition: RHReliableDatagram.cpp:42
RHDatagram subclass for sending addressed, acknowledged, retransmitted datagrams.
Definition: RHReliableDatagram.h:93
Manager class for addressed, unreliable messages.
Definition: RHDatagram.h:45
RHReliableDatagram(RHGenericDriver &driver, uint8_t thisAddress=0)
Definition: RHReliableDatagram.cpp:18
bool waitPacketSent()
Definition: RHDatagram.cpp:62
uint8_t _thisAddress
The address of this node.
Definition: RHDatagram.h:159
void acknowledge(uint8_t id, uint8_t from)
Definition: RHReliableDatagram.cpp:196
void setTimeout(uint16_t timeout)
Definition: RHReliableDatagram.cpp:30