1
0
Fork 0

directly compare DATA::data_headers

This commit is contained in:
Kevin Matz 2021-08-29 00:58:57 -04:00
parent a99a191e13
commit ca990976e5
2 changed files with 15 additions and 2 deletions

View File

@ -238,7 +238,7 @@ Universe* ArbitratingUniverse::dominant_() const
{
if (uni->rxRate() < (DMX::E111_DATA_LOSS_TIMEOUT / 1000.0))
continue; // stale universes cannot be dominant
if (!ret || uni->provenance()->priority > ret->provenance()->priority)
if (!ret || uni->provenance() > ret->provenance())
ret = uni;
}
return ret;

View File

@ -31,13 +31,26 @@
namespace sACN {
/**
* @brief The ArbitratingUniverse class
* @brief Priority based selection of multiple source universes
*
*
* > \cite sACN 6.2.3.1 Multiple Sources at Highest Priority
* >
* > It is possible for there to be multiple sources, all transmitting data
* > at the highest currently active priority for a given universe. When this
* > occurs, receivers must handle these sources in some way.
*
* If multiple universes with highest priority are recieved, the universe
* encountered first will maintain dominance.
*
* > \cite sACN 6.2.3.2 Note on Merge and Arbitration Algorithms
* >
* > A process which selects between candidate sources based on some
* > additional selection criterion is called arbitration.
*
* The universe with the highest priority will be determined to be the
* dominant source. Universes with NULL Start Code frequency less than
* DMX::E111_DATA_LOSS_TIMEOUT are not considered as eligible source universes.
*/
class ArbitratingUniverse
: public sACN::Universe