mirror of
https://github.com/paulscherrerinstitute/sf_daq_buffer.git
synced 2026-04-20 21:54:36 +02:00
core adjustments for eiger header. more debug msgs
This commit is contained in:
@@ -9,7 +9,7 @@ target_link_libraries(core-buffer-lib
|
||||
external)
|
||||
|
||||
if (USE_EIGER)
|
||||
target_compile_definitions(core-buffer-lib INTERFACE -DUSE_EIGER)
|
||||
target_compile_definitions(core-buffer-lib PUBLIC -DUSE_EIGER)
|
||||
endif (USE_EIGER)
|
||||
|
||||
if (DEBUG_OUTPUT)
|
||||
|
||||
@@ -140,14 +140,10 @@ BufferUtils::DetectorConfig BufferUtils::read_json_config(
|
||||
config_parameters.ParseStream(isw);
|
||||
|
||||
BufferUtils::DetectorConfig det_config = {
|
||||
// config_parameters["streamvis_stream"].GetString(),
|
||||
"",
|
||||
// config_parameters["streamvis_rate"].GetInt(),
|
||||
-1,
|
||||
// config_parameters["live_stream"].GetString(),
|
||||
"",
|
||||
// config_parameters["live_rate"].GetInt(),
|
||||
-1,
|
||||
config_parameters["streamvis_stream"].GetString(),
|
||||
config_parameters["streamvis_rate"].GetInt(),
|
||||
config_parameters["live_stream"].GetString(),
|
||||
config_parameters["live_rate"].GetInt(),
|
||||
// config_parameters["pedestal_file"].GetString(),
|
||||
"",
|
||||
// config_parameters["gain_file"].GetString(),
|
||||
|
||||
@@ -89,6 +89,10 @@ void RamBuffer::write_frame(
|
||||
cout << " || src_meta.daq_rec " << src_meta.daq_rec;
|
||||
cout << " || src_meta.module_id " << src_meta.module_id;
|
||||
cout << " || dst_data " << dst_data;
|
||||
cout << " || image_buffer_ " << image_buffer_;
|
||||
cout << " || image_bytes_ " << image_bytes_;
|
||||
cout << " || slot_n " << slot_n;
|
||||
cout << " || MODULE_N_BYTES " << MODULE_N_BYTES;
|
||||
cout << endl;
|
||||
#endif
|
||||
|
||||
@@ -138,7 +142,16 @@ char* RamBuffer::read_image(const uint64_t pulse_id,
|
||||
}
|
||||
|
||||
if (!is_pulse_init) {
|
||||
|
||||
#ifdef DEBUG_OUTPUT
|
||||
using namespace date;
|
||||
cout << " [" << std::chrono::system_clock::now();
|
||||
cout << "] [RamBuffer::read_image] !is_pulse_init:";
|
||||
cout << "Frame_meta pulse id: " << frame_meta->pulse_id;
|
||||
cout << " || pulse id: " << pulse_id;
|
||||
cout << " || frame_meta->n_recv_packets " << frame_meta->n_recv_packets;
|
||||
cout << " || frame_index: " << frame_meta->frame_index;
|
||||
cout << endl;
|
||||
#endif
|
||||
if (frame_meta->pulse_id != pulse_id) {
|
||||
throw runtime_error("Wrong pulse_id in ram buffer slot.");
|
||||
}
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
{
|
||||
"streamvis_stream": "tcp://0.0.0.0:9006",
|
||||
"streamvis_rate": 10,
|
||||
"live_stream": "tcp://0.0.0.0:9106",
|
||||
"live_rate": 10,
|
||||
"detector_name": "Eiger",
|
||||
"n_modules": 1,
|
||||
"start_udp_port": 50200
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
hostname localhost:2050+
|
||||
0:udp_dstport 50100
|
||||
0:udp_dstport2 50101
|
||||
0:udp_dstport 50200
|
||||
0:udp_dstport2 50201
|
||||
0:udp_dstip 127.0.0.1
|
||||
0:udp_dstmac 90:1b:0e:19:1c:ae
|
||||
|
||||
0:udp_srcip 129.129.130.177
|
||||
0:udp_srcmac 90:1b:0e:19:1c:ae
|
||||
0:udp_srcmac 90:1b:0e:19:1c:ae
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z ${SLS_DET_PACKAGE_PATH} ]; then SLS_DET_PACKAGE_PATH="/home/hax_l/software/sf_daq_buffer/slsDetectorPackage/build/bin/"; fi
|
||||
|
||||
${SLS_DET_PACKAGE_PATH}sls_detector_put triggers 1
|
||||
${SLS_DET_PACKAGE_PATH}sls_detector_put timing trigger
|
||||
${SLS_DET_PACKAGE_PATH}sls_detector_put exptime 0.000005
|
||||
|
||||
@@ -3,20 +3,19 @@
|
||||
if [ $# -lt 1 ]
|
||||
then
|
||||
echo "Usage : $0 <port>"
|
||||
echo " DETECTOR_NAME: Eiger"
|
||||
echo " tcp port : optional, default 2000"
|
||||
exit
|
||||
fi
|
||||
|
||||
SLS_DET_PACKAGE_PATH='/home/hax_l/software/sf_daq_buffer/slsDetectorPackage/build/bin/'
|
||||
|
||||
port=2000
|
||||
PORT=2050
|
||||
if [ $# == 2 ]
|
||||
then
|
||||
port=$1
|
||||
PORT=$1
|
||||
fi
|
||||
|
||||
echo "Starting the server..."
|
||||
${SLS_DET_PACKAGE_PATH}eigerDetectorServerMaster_virtual -p port
|
||||
|
||||
echo ${SLS_DET_PACKAGE_PATH}eigerDetectorServerMaster_virtual -p ${PORT}
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,16 @@ target_link_libraries(jf-live-writer-lib
|
||||
core-buffer-lib)
|
||||
|
||||
add_executable(jf-live-writer src/main.cpp)
|
||||
set_target_properties(jf-live-writer PROPERTIES OUTPUT_NAME jf_live_writer)
|
||||
|
||||
|
||||
if (USE_EIGER)
|
||||
set (LIB_NAME_UDP_RECV "eiger_live_writer")
|
||||
else()
|
||||
set (LIB_NAME_UDP_RECV "jf_live_writer")
|
||||
endif()
|
||||
|
||||
set_target_properties(jf-live-writer PROPERTIES OUTPUT_NAME ${LIB_NAME_UDP_RECV})
|
||||
|
||||
target_link_libraries(jf-live-writer
|
||||
jf-live-writer-lib
|
||||
sf-writer-lib
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <sstream>
|
||||
#include <cstring>
|
||||
#include <fcntl.h>
|
||||
#include <stdexcept>
|
||||
|
||||
#include "BufferUtils.hpp"
|
||||
#include "buffer_config.hpp"
|
||||
|
||||
@@ -53,7 +53,7 @@ void JFH5LiveWriter::init_file(const string& output_file)
|
||||
|
||||
image_dataset_ = file_.createDataSet(
|
||||
"/data/" + detector_name_ + "/data",
|
||||
H5_UINT16,
|
||||
H5::PredType::NATIVE_UINT16,
|
||||
image_dataspace,
|
||||
image_dataset_properties);
|
||||
}
|
||||
@@ -98,10 +98,10 @@ void JFH5LiveWriter::write_dataset(
|
||||
|
||||
void JFH5LiveWriter::write_metadata()
|
||||
{
|
||||
write_dataset("pulse_id", &b_pulse_id_, H5_UINT64);
|
||||
write_dataset("frame_index", &b_frame_index_, H5_UINT64);
|
||||
write_dataset("daq_rec", &b_daq_rec_, H5_UINT32);
|
||||
write_dataset("is_good_frame", &b_is_good_frame_, H5_UINT8);
|
||||
write_dataset("pulse_id", &b_pulse_id_, H5::PredType::NATIVE_UINT64);
|
||||
write_dataset("frame_index", &b_frame_index_, H5::PredType::NATIVE_UINT64);
|
||||
write_dataset("daq_rec", &b_daq_rec_, H5::PredType::NATIVE_UINT32);
|
||||
write_dataset("is_good_frame", &b_is_good_frame_, H5::PredType::NATIVE_UINT8);
|
||||
}
|
||||
|
||||
void JFH5LiveWriter::close_file()
|
||||
|
||||
@@ -8,7 +8,15 @@ target_link_libraries(jf-udp-recv-lib
|
||||
core-buffer-lib)
|
||||
|
||||
add_executable(jf-udp-recv src/main.cpp)
|
||||
set_target_properties(jf-udp-recv PROPERTIES OUTPUT_NAME jf_udp_recv)
|
||||
|
||||
if (USE_EIGER)
|
||||
set (LIB_NAME_UDP_RECV "eiger_udp_recv")
|
||||
else()
|
||||
set (LIB_NAME_UDP_RECV "jf_udp_recv")
|
||||
endif()
|
||||
|
||||
set_target_properties(jf-udp-recv PROPERTIES OUTPUT_NAME ${LIB_NAME_UDP_RECV})
|
||||
|
||||
target_link_libraries(jf-udp-recv
|
||||
jf-udp-recv-lib
|
||||
zmq
|
||||
|
||||
@@ -47,14 +47,15 @@ inline void FrameUdpReceiver::init_frame(
|
||||
frame_metadata.frame_index = packet_buffer_[i_packet].framenum;
|
||||
frame_metadata.daq_rec = (uint64_t) packet_buffer_[i_packet].debug;
|
||||
frame_metadata.module_id = (int64_t) module_id_;
|
||||
// #ifdef DEBUG_OUTPUT
|
||||
// using namespace date;
|
||||
// cout << " [" << std::chrono::system_clock::now();
|
||||
// cout << "] [FrameUdpReceiver::init_frame] :";
|
||||
// cout << " Frame number: " << frame_metadata.frame_index << endl;
|
||||
// cout << "i_packet" << i_packet << endl;
|
||||
// cout << endl;
|
||||
// #endif
|
||||
#ifdef DEBUG_OUTPUT
|
||||
using namespace date;
|
||||
cout << " [" << std::chrono::system_clock::now();
|
||||
cout << "] [FrameUdpReceiver::init_frame] :";
|
||||
cout << " Frame number: " << frame_metadata.frame_index << endl;
|
||||
// cout << " packet_buffer_ " << packet_buffer_[i_packet] << endl;
|
||||
cout << "i_packet" << i_packet << endl;
|
||||
cout << endl;
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void FrameUdpReceiver::copy_packet_to_buffers(
|
||||
@@ -112,6 +113,8 @@ inline uint64_t FrameUdpReceiver::process_packets(
|
||||
cout << "] [FrameUdpReceiver::process_packets] :";
|
||||
cout << " Frame " << metadata.frame_index << " || ";
|
||||
cout << packet_buffer_[i_packet].packetnum << " packets received.";
|
||||
cout << " packet_buffer_n_packets_ " << packet_buffer_n_packets_;
|
||||
cout << " i_packet "<< i_packet;
|
||||
cout << endl;
|
||||
#endif
|
||||
// Buffer is loaded only if this is not the last message.
|
||||
|
||||
@@ -14,11 +14,17 @@ using namespace chrono;
|
||||
using namespace buffer_config;
|
||||
using namespace BufferUtils;
|
||||
|
||||
|
||||
|
||||
int main (int argc, char *argv[]) {
|
||||
|
||||
if (argc != 3) {
|
||||
cout << endl;
|
||||
cout << "Usage: XXX_udp_recv [detector_json_filename] [module_id]";
|
||||
#ifndef USE_EIGER
|
||||
cout << "Usage: jf_udp_recv [detector_json_filename] [module_id]";
|
||||
#else
|
||||
cout << "Usage: eiger_udp_recv [detector_json_filename] [module_id]";
|
||||
#endif
|
||||
cout << endl;
|
||||
cout << "\tdetector_json_filename: detector config file path." << endl;
|
||||
cout << "\tmodule_id: id of the module for this process." << endl;
|
||||
|
||||
@@ -12,7 +12,7 @@ using namespace std;
|
||||
|
||||
TEST(BufferUdpReceiver, simple_recv)
|
||||
{
|
||||
auto n_packets = JF_N_PACKETS_PER_FRAME;
|
||||
auto n_packets = N_PACKETS_PER_FRAME;
|
||||
int source_id = 1234;
|
||||
int n_frames = 5;
|
||||
|
||||
@@ -26,7 +26,7 @@ TEST(BufferUdpReceiver, simple_recv)
|
||||
auto handle = async(launch::async, [&](){
|
||||
for (int i_frame=0; i_frame < n_frames; i_frame++){
|
||||
for (size_t i_packet=0; i_packet<n_packets; i_packet++) {
|
||||
jungfrau_packet send_udp_buffer;
|
||||
det_packet send_udp_buffer;
|
||||
send_udp_buffer.packetnum = i_packet;
|
||||
send_udp_buffer.bunchid = i_frame + 1;
|
||||
send_udp_buffer.framenum = i_frame + 1000;
|
||||
@@ -35,7 +35,7 @@ TEST(BufferUdpReceiver, simple_recv)
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
@@ -46,7 +46,7 @@ TEST(BufferUdpReceiver, simple_recv)
|
||||
handle.wait();
|
||||
|
||||
ModuleFrame metadata;
|
||||
auto frame_buffer = make_unique<char[]>(JUNGFRAU_DATA_BYTES_PER_FRAME);
|
||||
auto frame_buffer = make_unique<char[]>(DATA_BYTES_PER_FRAME);
|
||||
|
||||
for (int i_frame=0; i_frame < n_frames; i_frame++) {
|
||||
auto pulse_id = udp_receiver.get_frame_from_udp(
|
||||
@@ -65,7 +65,7 @@ TEST(BufferUdpReceiver, simple_recv)
|
||||
|
||||
TEST(BufferUdpReceiver, missing_middle_packet)
|
||||
{
|
||||
auto n_packets = JF_N_PACKETS_PER_FRAME;
|
||||
auto n_packets = N_PACKETS_PER_FRAME;
|
||||
int source_id = 1234;
|
||||
int n_frames = 3;
|
||||
|
||||
@@ -84,7 +84,7 @@ TEST(BufferUdpReceiver, missing_middle_packet)
|
||||
continue;
|
||||
}
|
||||
|
||||
jungfrau_packet send_udp_buffer;
|
||||
det_packet send_udp_buffer;
|
||||
send_udp_buffer.packetnum = i_packet;
|
||||
send_udp_buffer.bunchid = i_frame + 1;
|
||||
send_udp_buffer.framenum = i_frame + 1000;
|
||||
@@ -93,7 +93,7 @@ TEST(BufferUdpReceiver, missing_middle_packet)
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
@@ -104,7 +104,7 @@ TEST(BufferUdpReceiver, missing_middle_packet)
|
||||
handle.wait();
|
||||
|
||||
ModuleFrame metadata;
|
||||
auto frame_buffer = make_unique<char[]>(JUNGFRAU_DATA_BYTES_PER_FRAME);
|
||||
auto frame_buffer = make_unique<char[]>(DATA_BYTES_PER_FRAME);
|
||||
|
||||
for (int i_frame=0; i_frame < n_frames; i_frame++) {
|
||||
auto pulse_id = udp_receiver.get_frame_from_udp(
|
||||
@@ -123,7 +123,7 @@ TEST(BufferUdpReceiver, missing_middle_packet)
|
||||
|
||||
TEST(BufferUdpReceiver, missing_first_packet)
|
||||
{
|
||||
auto n_packets = JF_N_PACKETS_PER_FRAME;
|
||||
auto n_packets = N_PACKETS_PER_FRAME;
|
||||
int source_id = 1234;
|
||||
int n_frames = 3;
|
||||
|
||||
@@ -142,7 +142,7 @@ TEST(BufferUdpReceiver, missing_first_packet)
|
||||
continue;
|
||||
}
|
||||
|
||||
jungfrau_packet send_udp_buffer;
|
||||
det_packet send_udp_buffer;
|
||||
send_udp_buffer.packetnum = i_packet;
|
||||
send_udp_buffer.bunchid = i_frame + 1;
|
||||
send_udp_buffer.framenum = i_frame + 1000;
|
||||
@@ -151,7 +151,7 @@ TEST(BufferUdpReceiver, missing_first_packet)
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
@@ -162,7 +162,7 @@ TEST(BufferUdpReceiver, missing_first_packet)
|
||||
handle.wait();
|
||||
|
||||
ModuleFrame metadata;
|
||||
auto frame_buffer = make_unique<char[]>(JUNGFRAU_DATA_BYTES_PER_FRAME);
|
||||
auto frame_buffer = make_unique<char[]>(DATA_BYTES_PER_FRAME);
|
||||
|
||||
for (int i_frame=0; i_frame < n_frames; i_frame++) {
|
||||
auto pulse_id = udp_receiver.get_frame_from_udp(
|
||||
@@ -181,7 +181,7 @@ TEST(BufferUdpReceiver, missing_first_packet)
|
||||
|
||||
TEST(BufferUdpReceiver, missing_last_packet)
|
||||
{
|
||||
auto n_packets = JF_N_PACKETS_PER_FRAME;
|
||||
auto n_packets = N_PACKETS_PER_FRAME;
|
||||
int source_id = 1234;
|
||||
int n_frames = 3;
|
||||
|
||||
@@ -200,7 +200,7 @@ TEST(BufferUdpReceiver, missing_last_packet)
|
||||
continue;
|
||||
}
|
||||
|
||||
jungfrau_packet send_udp_buffer;
|
||||
det_packet send_udp_buffer;
|
||||
send_udp_buffer.packetnum = i_packet;
|
||||
send_udp_buffer.bunchid = i_frame + 1;
|
||||
send_udp_buffer.framenum = i_frame + 1000;
|
||||
@@ -209,7 +209,7 @@ TEST(BufferUdpReceiver, missing_last_packet)
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
@@ -220,7 +220,7 @@ TEST(BufferUdpReceiver, missing_last_packet)
|
||||
handle.wait();
|
||||
|
||||
ModuleFrame metadata;
|
||||
auto frame_buffer = make_unique<char[]>(JUNGFRAU_DATA_BYTES_PER_FRAME);
|
||||
auto frame_buffer = make_unique<char[]>(DATA_BYTES_PER_FRAME);
|
||||
|
||||
// n_frames -1 because the last frame is not complete.
|
||||
for (int i_frame=0; i_frame < n_frames - 1; i_frame++) {
|
||||
|
||||
@@ -19,7 +19,7 @@ TEST(PacketUdpReceiver, simple_recv)
|
||||
PacketUdpReceiver udp_receiver;
|
||||
udp_receiver.bind(udp_port);
|
||||
|
||||
jungfrau_packet send_udp_buffer;
|
||||
det_packet send_udp_buffer;
|
||||
send_udp_buffer.packetnum = 91;
|
||||
send_udp_buffer.framenum = 92;
|
||||
send_udp_buffer.bunchid = 93;
|
||||
@@ -29,16 +29,16 @@ TEST(PacketUdpReceiver, simple_recv)
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
|
||||
this_thread::sleep_for(chrono::milliseconds(100));
|
||||
|
||||
jungfrau_packet recv_udp_buffer;
|
||||
det_packet recv_udp_buffer;
|
||||
ASSERT_TRUE(udp_receiver.receive(
|
||||
&recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET));
|
||||
&recv_udp_buffer, BYTES_PER_PACKET));
|
||||
|
||||
EXPECT_EQ(send_udp_buffer.packetnum, recv_udp_buffer.packetnum);
|
||||
EXPECT_EQ(send_udp_buffer.framenum, recv_udp_buffer.framenum);
|
||||
@@ -46,7 +46,7 @@ TEST(PacketUdpReceiver, simple_recv)
|
||||
EXPECT_EQ(send_udp_buffer.debug, recv_udp_buffer.debug);
|
||||
|
||||
ASSERT_FALSE(udp_receiver.receive(
|
||||
&recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET));
|
||||
&recv_udp_buffer, BYTES_PER_PACKET));
|
||||
|
||||
udp_receiver.disconnect();
|
||||
::close(send_socket_fd);
|
||||
@@ -62,43 +62,43 @@ TEST(PacketUdpReceiver, false_recv)
|
||||
PacketUdpReceiver udp_receiver;
|
||||
udp_receiver.bind(udp_port);
|
||||
|
||||
jungfrau_packet send_udp_buffer;
|
||||
jungfrau_packet recv_udp_buffer;
|
||||
det_packet send_udp_buffer;
|
||||
det_packet recv_udp_buffer;
|
||||
|
||||
auto server_address = get_server_address(udp_port);
|
||||
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET-1,
|
||||
BYTES_PER_PACKET-1,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
|
||||
ASSERT_FALSE(udp_receiver.receive(
|
||||
&recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET));
|
||||
&recv_udp_buffer, BYTES_PER_PACKET));
|
||||
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
|
||||
ASSERT_TRUE(udp_receiver.receive(
|
||||
&recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET));
|
||||
&recv_udp_buffer, BYTES_PER_PACKET));
|
||||
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET-1,
|
||||
BYTES_PER_PACKET-1,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
|
||||
ASSERT_TRUE(udp_receiver.receive(
|
||||
&recv_udp_buffer, JUNGFRAU_BYTES_PER_PACKET-1));
|
||||
&recv_udp_buffer, BYTES_PER_PACKET-1));
|
||||
|
||||
udp_receiver.disconnect();
|
||||
::close(send_socket_fd);
|
||||
@@ -106,15 +106,15 @@ TEST(PacketUdpReceiver, false_recv)
|
||||
|
||||
TEST(PacketUdpReceiver, receive_many)
|
||||
{
|
||||
auto n_msg_buffer = JF_N_PACKETS_PER_FRAME;
|
||||
jungfrau_packet recv_buffer[n_msg_buffer];
|
||||
auto n_msg_buffer = N_PACKETS_PER_FRAME;
|
||||
det_packet recv_buffer[n_msg_buffer];
|
||||
iovec recv_buff_ptr[n_msg_buffer];
|
||||
struct mmsghdr msgs[n_msg_buffer];
|
||||
struct sockaddr_in sockFrom[n_msg_buffer];
|
||||
|
||||
for (int i = 0; i < n_msg_buffer; i++) {
|
||||
recv_buff_ptr[i].iov_base = (void*) &(recv_buffer[i]);
|
||||
recv_buff_ptr[i].iov_len = sizeof(jungfrau_packet);
|
||||
recv_buff_ptr[i].iov_len = sizeof(det_packet);
|
||||
|
||||
msgs[i].msg_hdr.msg_iov = &recv_buff_ptr[i];
|
||||
msgs[i].msg_hdr.msg_iovlen = 1;
|
||||
@@ -130,7 +130,7 @@ TEST(PacketUdpReceiver, receive_many)
|
||||
PacketUdpReceiver udp_receiver;
|
||||
udp_receiver.bind(udp_port);
|
||||
|
||||
jungfrau_packet send_udp_buffer;
|
||||
det_packet send_udp_buffer;
|
||||
|
||||
auto server_address = get_server_address(udp_port);
|
||||
|
||||
@@ -138,7 +138,7 @@ TEST(PacketUdpReceiver, receive_many)
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
@@ -147,22 +147,22 @@ TEST(PacketUdpReceiver, receive_many)
|
||||
::sendto(
|
||||
send_socket_fd,
|
||||
&send_udp_buffer,
|
||||
JUNGFRAU_BYTES_PER_PACKET,
|
||||
BYTES_PER_PACKET,
|
||||
0,
|
||||
(sockaddr*) &server_address,
|
||||
sizeof(server_address));
|
||||
|
||||
this_thread::sleep_for(chrono::milliseconds(10));
|
||||
|
||||
auto n_msgs = udp_receiver.receive_many(msgs, JF_N_PACKETS_PER_FRAME);
|
||||
auto n_msgs = udp_receiver.receive_many(msgs, N_PACKETS_PER_FRAME);
|
||||
ASSERT_EQ(n_msgs, 2);
|
||||
|
||||
for (size_t i=0;i<n_msgs;i++) {
|
||||
ASSERT_EQ(msgs[i].msg_len, JUNGFRAU_BYTES_PER_PACKET);
|
||||
ASSERT_EQ(msgs[i].msg_len, BYTES_PER_PACKET);
|
||||
ASSERT_EQ(recv_buffer[i].bunchid, i);
|
||||
}
|
||||
|
||||
n_msgs = udp_receiver.receive_many(msgs, JF_N_PACKETS_PER_FRAME);
|
||||
n_msgs = udp_receiver.receive_many(msgs, N_PACKETS_PER_FRAME);
|
||||
ASSERT_EQ(n_msgs, -1);
|
||||
|
||||
udp_receiver.disconnect();
|
||||
|
||||
Reference in New Issue
Block a user