mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-20 07:02:22 +01:00
new tests
This commit is contained in:
@@ -81,7 +81,9 @@ if (HDF5_FOUND)
|
||||
target_link_libraries(slsReceiver PUBLIC ${HDF5_LIBRARIES})
|
||||
endif ()
|
||||
|
||||
|
||||
if (SLS_USE_TESTS)
|
||||
add_subdirectory(tests)
|
||||
endif(SLS_USE_TESTS)
|
||||
|
||||
install(TARGETS slsReceiverShared
|
||||
EXPORT "${TARGETS_EXPORT_NAME}"
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
#include "sls_detector_defs.h"
|
||||
#include "receiver_defs.h"
|
||||
|
||||
#include "logger.h"
|
||||
#include <math.h> //ceil
|
||||
#include <vector>
|
||||
|
||||
@@ -633,32 +633,31 @@ class MoenchData : public GeneralData {
|
||||
|
||||
private:
|
||||
/** Structure of an jungfrau ctb packet header (10G Udp) */
|
||||
typedef struct {
|
||||
unsigned char emptyHeader[6];
|
||||
unsigned char reserved[4];
|
||||
unsigned char packetNumber[1];
|
||||
unsigned char frameNumber[3];
|
||||
unsigned char bunchid[8];
|
||||
} jfrauctb_packet_header_t;
|
||||
struct jfrauctb_packet_header {
|
||||
unsigned char emptyHeader[6];
|
||||
unsigned char reserved[4];
|
||||
uint32_t packetFrameNumber;
|
||||
uint64_t bunchid;
|
||||
} __attribute__((packed));
|
||||
|
||||
public:
|
||||
|
||||
/** Constructor */
|
||||
MoenchData(){
|
||||
myDetectorType = slsDetectorDefs::MOENCH;
|
||||
nPixelsX = 32; // total number of channels
|
||||
nPixelsY = 1; // number of samples
|
||||
headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header);
|
||||
dataSize = UDP_PACKET_DATA_BYTES;
|
||||
packetSize = headerSizeinPacket + dataSize;
|
||||
//packetsPerFrame = 1;
|
||||
imageSize = nPixelsX * nPixelsY * 2;
|
||||
packetsPerFrame = ceil((double)imageSize / (double)UDP_PACKET_DATA_BYTES);
|
||||
frameIndexMask = 0xFFFFFF;
|
||||
maxFramesPerFile = CTB_MAX_FRAMES_PER_FILE;
|
||||
fifoBufferHeaderSize= FIFO_HEADER_NUMBYTES + sizeof(slsDetectorDefs::sls_receiver_header);
|
||||
defaultFifoDepth = 2500;
|
||||
standardheader = true;
|
||||
public:
|
||||
/** Constructor */
|
||||
MoenchData() {
|
||||
myDetectorType = slsDetectorDefs::MOENCH;
|
||||
nPixelsX = 32; // total number of channels
|
||||
nPixelsY = 1; // number of samples
|
||||
headerSizeinPacket = sizeof(slsDetectorDefs::sls_detector_header);
|
||||
dataSize = UDP_PACKET_DATA_BYTES;
|
||||
packetSize = headerSizeinPacket + dataSize;
|
||||
// packetsPerFrame = 1;
|
||||
imageSize = nPixelsX * nPixelsY * 2;
|
||||
packetsPerFrame = ceil((double)imageSize / (double)UDP_PACKET_DATA_BYTES);
|
||||
frameIndexMask = 0xFFFFFF;
|
||||
maxFramesPerFile = CTB_MAX_FRAMES_PER_FILE;
|
||||
fifoBufferHeaderSize =
|
||||
FIFO_HEADER_NUMBYTES + sizeof(slsDetectorDefs::sls_receiver_header);
|
||||
defaultFifoDepth = 2500;
|
||||
standardheader = true;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -674,10 +673,10 @@ private:
|
||||
void GetHeaderInfo(int index, char* packetData, uint32_t dynamicRange, bool oddStartingPacket,
|
||||
uint64_t& frameNumber, uint32_t& packetNumber, uint32_t& subFrameNumber, uint64_t& bunchId) const {
|
||||
subFrameNumber = -1;
|
||||
jfrauctb_packet_header_t* header = (jfrauctb_packet_header_t*)(packetData);
|
||||
frameNumber = (uint64_t)((*( (uint32_t*) header->frameNumber)) & frameIndexMask);
|
||||
packetNumber = (uint32_t)(*( (uint8_t*) header->packetNumber));
|
||||
bunchId = (*((uint64_t*) header->bunchid));
|
||||
jfrauctb_packet_header* header = (jfrauctb_packet_header*)(packetData);
|
||||
frameNumber = (header->packetFrameNumber >> 8) & frameIndexMask;
|
||||
packetNumber = header->packetFrameNumber & 0xFF;
|
||||
bunchId = header->bunchid;
|
||||
}
|
||||
|
||||
|
||||
|
||||
24
slsReceiverSoftware/tests/CMakeLists.txt
Normal file
24
slsReceiverSoftware/tests/CMakeLists.txt
Normal file
@@ -0,0 +1,24 @@
|
||||
# include_directories(
|
||||
# ${PROJECT_SOURCE_DIR}/catch
|
||||
# )
|
||||
|
||||
# set(SOURCES
|
||||
# test.cpp
|
||||
# test-GeneralData.cpp
|
||||
# )
|
||||
|
||||
target_sources(tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/test-GeneralData.cpp)
|
||||
|
||||
# add_executable(testSlsReceiver ${SOURCES})
|
||||
# target_link_libraries(testSlsReceiver
|
||||
# slsSupportLib
|
||||
# slsDetectorShared
|
||||
# slsReceiverShared
|
||||
# pthread
|
||||
# rt
|
||||
# )
|
||||
# set_target_properties(testSlsReceiver PROPERTIES
|
||||
# RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
|
||||
# )
|
||||
# #TODO! Move to automatic test discovery
|
||||
# add_test(test-testSlsReceiver ${CMAKE_BINARY_DIR}/bin/testSlsReceiver)
|
||||
68
slsReceiverSoftware/tests/test-GeneralData.cpp
Normal file
68
slsReceiverSoftware/tests/test-GeneralData.cpp
Normal file
@@ -0,0 +1,68 @@
|
||||
|
||||
#include "GeneralData.h"
|
||||
#include "catch.hpp"
|
||||
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
||||
|
||||
// using namespace sls;
|
||||
|
||||
TEST_CASE("Parse jungfrauctb header", "[receiver]") {
|
||||
|
||||
// typedef struct {
|
||||
// unsigned char emptyHeader[6];
|
||||
// unsigned char reserved[4];
|
||||
// unsigned char packetNumber[1];
|
||||
// unsigned char frameNumber[3];
|
||||
// unsigned char bunchid[8];
|
||||
// } jfrauctb_packet_header_t;
|
||||
|
||||
struct packet {
|
||||
unsigned char emptyHeader[6];
|
||||
unsigned char reserved[4];
|
||||
unsigned char packetNumber[1];
|
||||
unsigned char frameNumber[3];
|
||||
unsigned char bunchid[8];
|
||||
unsigned char data[1024];
|
||||
};
|
||||
|
||||
MoenchData data;
|
||||
// GetHeaderInfo(int index, char *packetData, uint32_t dynamicRange,
|
||||
// bool oddStartingPacket, uint64_t &frameNumber,
|
||||
// uint32_t &packetNumber, uint32_t &subFrameNumber,
|
||||
// uint64_t &bunchId)
|
||||
|
||||
|
||||
packet test_packet;
|
||||
test_packet.packetNumber[0] = (unsigned char)53;
|
||||
test_packet.frameNumber[0] = (unsigned char)32;
|
||||
test_packet.frameNumber[1] = (unsigned char)15;
|
||||
test_packet.frameNumber[2] = (unsigned char)91;
|
||||
|
||||
test_packet.bunchid[0] = (unsigned char)91;
|
||||
test_packet.bunchid[1] = (unsigned char)25;
|
||||
test_packet.bunchid[2] = (unsigned char)15;
|
||||
test_packet.bunchid[3] = (unsigned char)1;
|
||||
test_packet.bunchid[4] = (unsigned char)32;
|
||||
test_packet.bunchid[5] = (unsigned char)251;
|
||||
test_packet.bunchid[6] = (unsigned char)18;
|
||||
test_packet.bunchid[7] = (unsigned char)240;
|
||||
|
||||
int index = 0;
|
||||
char *packetData = reinterpret_cast<char *>(&test_packet);
|
||||
uint32_t dynamicRange{0};
|
||||
bool oddStartingPacket{0};
|
||||
uint64_t frameNumber{0};
|
||||
uint32_t packetNumber{0};
|
||||
uint32_t subFrameNumber{0};
|
||||
uint64_t bunchId{0};
|
||||
|
||||
data.GetHeaderInfo(index, packetData, dynamicRange, oddStartingPacket,
|
||||
frameNumber, packetNumber, subFrameNumber, bunchId);
|
||||
|
||||
CHECK(packetNumber == 53);
|
||||
CHECK(frameNumber == 0x5b0f20);
|
||||
CHECK(bunchId == 0xf012fb20010f195b);
|
||||
}
|
||||
3
slsReceiverSoftware/tests/test.cpp
Normal file
3
slsReceiverSoftware/tests/test.cpp
Normal file
@@ -0,0 +1,3 @@
|
||||
// tests-main.cpp
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#include "catch.hpp"
|
||||
Reference in New Issue
Block a user