diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/EDISender.cpp | 14 | ||||
-rw-r--r-- | src/EDISender.h | 1 | ||||
-rw-r--r-- | src/main.cpp | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/EDISender.cpp b/src/EDISender.cpp index 6774aee..30c7289 100644 --- a/src/EDISender.cpp +++ b/src/EDISender.cpp @@ -104,6 +104,20 @@ void EDISender::send_tagpacket(tagpacket_t& tp) if (edi_sender and edi_conf.enabled()) { edi::TagPacket edi_tagpacket(0); + + if (tp.seq.seq_valid) { + edi_sender->override_af_sequence(tp.seq.seq); + } + + if (tp.seq.pseq_valid) { + edi_sender->override_pft_sequence(tp.seq.pseq); + } + else if (tp.seq.seq_valid) { + // If the source isn't using PFT, set PSEQ = SEQ so that multihoming + // with several EDI2EDI instances could work. + edi_sender->override_pft_sequence(tp.seq.seq); + } + edi_tagpacket.raw_tagpacket = move(tp.tagpacket); edi_sender->write(edi_tagpacket); } diff --git a/src/EDISender.h b/src/EDISender.h index 98525ed..f5a14b2 100644 --- a/src/EDISender.h +++ b/src/EDISender.h @@ -44,6 +44,7 @@ struct tagpacket_t { std::vector<uint8_t> tagpacket; EdiDecoder::frame_timestamp_t timestamp; std::chrono::steady_clock::time_point received_at; + EdiDecoder::seq_info_t seq; }; class EDISender { diff --git a/src/main.cpp b/src/main.cpp index f29290f..6714052 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -116,6 +116,7 @@ class Main : public EdiDecoder::ETIDataCollector { virtual void assemble(EdiDecoder::ReceivedTagPacket&& tag_data) override { tagpacket_t tp; + tp.seq = tag_data.seq; tp.dlfc = dlfc; tp.tagpacket = move(tag_data.tagpacket); tp.received_at = std::chrono::steady_clock::now(); |