diff --git a/core-writer/include/RingBuffer.hpp b/core-writer/include/RingBuffer.hpp index 34557f6..eb50abc 100644 --- a/core-writer/include/RingBuffer.hpp +++ b/core-writer/include/RingBuffer.hpp @@ -41,6 +41,8 @@ struct UdpFrameMetadata uint64_t recv_packets_2; uint32_t daq_rec; + + uint16_t n_recv_packets; }; template diff --git a/core-writer/src/module/UdpRecvModule.cpp b/core-writer/src/module/UdpRecvModule.cpp index abe2e54..5a6a6ba 100644 --- a/core-writer/src/module/UdpRecvModule.cpp +++ b/core-writer/src/module/UdpRecvModule.cpp @@ -84,6 +84,7 @@ void UdpRecvModule::receive_thread( auto metadata = make_shared(); metadata->frame_bytes_size = JUNGFRAU_DATA_BYTES_PER_FRAME; metadata->pulse_id = 0; + metadata->n_recv_packets = 0; char* frame_buffer = ring_buffer_.reserve(metadata); @@ -116,6 +117,7 @@ void UdpRecvModule::receive_thread( metadata = make_shared(); metadata->frame_bytes_size = JUNGFRAU_DATA_BYTES_PER_FRAME; metadata->pulse_id = 0; + metadata->n_recv_packets = 0; frame_buffer = ring_buffer_.reserve(metadata); memset(frame_buffer, 0, JUNGFRAU_DATA_BYTES_PER_FRAME); @@ -135,6 +137,8 @@ void UdpRecvModule::receive_thread( packet_buffer.data, JUNGFRAU_DATA_BYTES_PER_PACKET); + frame_metadata->n_recv_packets++; + if (packet_buffer.packetnum < 64) { frame_metadata->recv_packets_1 ^= (uint64_t)1 << packet_buffer.packetnum; @@ -151,6 +155,7 @@ void UdpRecvModule::receive_thread( metadata = make_shared(); metadata->frame_bytes_size = JUNGFRAU_DATA_BYTES_PER_FRAME; metadata->pulse_id = 0; + metadata->n_recv_packets = 0; frame_buffer = ring_buffer_.reserve(metadata); memset(frame_buffer, 0, JUNGFRAU_DATA_BYTES_PER_FRAME);