1
0
Fork 0

increment sequence number every message

This commit is contained in:
Kevin Matz 2021-08-31 12:24:21 -04:00
parent 355f2b3365
commit 337a8a650d
3 changed files with 9 additions and 4 deletions

View File

@ -143,7 +143,7 @@ struct data_header
/// > for every packet sent on that universe. There is no implied relationship
/// > between the sequence number of an E1.31 Synchronization Packet and the
/// > sequence number of an E1.31 Data Packet on that same universe.
uint8_t sequence_number;
mutable uint8_t sequence_number;
/// @brief \cite sACN 6.2.6 E1.31 Data Packet: Options
///

View File

@ -66,16 +66,15 @@ protected:
private:
std::unordered_map <uint16_t, Universe *> universes_;
std::mutex universes_mutext_;
mutable std::mutex universes_mutext_;
/// > \cite sACN 6.2.5 E1.31 Data Packet: Sequence Number
/// > \cite 6.3.2 E1.31 Synchronization Packet: Sequence Number
/// >
/// > Sources shall maintain a sequence for each universe they transmit.
/// > The sequence number for a universe shall be incremented by one for
/// > every packet sent on that universe. There is no implied relationship
/// > between the sequence number of an E1.31 Synchronization Packet and
/// > the sequence number of an E1.31 Data Packet on that same universe.
std::unordered_map <uint16_t, uint8_t> data_sequences_;
std::unordered_map <uint16_t, uint8_t> sync_sequences_;
std::promise<void> discovery_exitSignal_;

View File

@ -201,6 +201,12 @@ void Universe::synchronize(uint8_t sequence_number)
*/
void Universe::sACNsend() const
{
/// > \cite sACN 6.2.5 E1.31 Data Packet: Sequence Number
/// >
/// > ... The sequence number for a universe shall be incremented by one for
/// > every packet sent on that universe...
provenance_->sequence_number++;
// header
auto addrtyp = std::make_shared<ACN::DMP::address_type>();
addrtyp->byte = 0;