29 #ifndef INCLUDE_OLA_RDM_DISCOVERYAGENT_H_
30 #define INCLUDE_OLA_RDM_DISCOVERYAGENT_H_
61 virtual void MuteDevice(
const UID &target,
67 virtual void Branch(
const UID &lower,
93 UIDRange(
const UID &lower,
const UID &upper, UIDRange *parent)
100 branch_corrupt(
false) {
105 unsigned int attempt;
106 unsigned int failures;
107 unsigned int uids_discovered;
111 typedef std::stack<UIDRange*> UIDRanges;
119 std::queue<UID> m_uids_to_mute;
126 UIDRanges m_uid_ranges;
128 unsigned int m_mute_attempts;
134 void UnMuteComplete();
135 void MaybeMuteNextDevice();
136 void IncrementalMuteComplete(
bool status);
137 void SendDiscovery();
139 void BranchComplete(
const uint8_t *data,
unsigned int length);
140 void BranchMuteComplete(
bool status);
141 void HandleCollision();
142 void FreeCurrentRange();
144 static const unsigned int MAX_DUB_RESPONSE_SIZE = 24;
145 static const unsigned int MIN_DUB_RESPONSE_SIZE = 17;
150 static const unsigned int MAX_EMPTY_BRANCH_ATTEMPTS = 5;
155 static const unsigned int MAX_BRANCH_FAILURES = 5;
157 static const unsigned int MAX_MUTE_ATTEMPTS = 5;
161 #endif // INCLUDE_OLA_RDM_DISCOVERYAGENT_H_