From 69a11f8950284fe39545e6d6ea3f693c5b97eaff Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Wed, 3 Apr 2019 18:41:21 +0200 Subject: [PATCH] cleaning up --- slsReceiverSoftware/include/GeneralData.h | 10 +++--- .../tests/test-GeneralData.cpp | 32 +++++++++++++++++-- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/slsReceiverSoftware/include/GeneralData.h b/slsReceiverSoftware/include/GeneralData.h index 5d55f7b8c..66ac0617e 100644 --- a/slsReceiverSoftware/include/GeneralData.h +++ b/slsReceiverSoftware/include/GeneralData.h @@ -301,7 +301,7 @@ private: if (nPixelsX == 1280) { subFrameNumber = -1; bunchId = -1; - frameNumber = ((uint32_t)(*((uint32_t*)(packetData)))); + frameNumber = *reinterpret_cast(packetData); if (oddStartingPacket) frameNumber++; packetNumber = frameNumber&packetIndexMask; @@ -309,8 +309,8 @@ private: } else { subFrameNumber = -1; bunchId = -1; - frameNumber = ((uint32_t)(*((uint32_t*)(packetData)))); - packetNumber = 0; + frameNumber = *reinterpret_cast(packetData); + packetNumber = 0; } } @@ -673,7 +673,7 @@ public: 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* header = (jfrauctb_packet_header*)(packetData); + auto header = reinterpret_cast(packetData); frameNumber = (header->packetFrameNumber >> 8) & frameIndexMask; packetNumber = header->packetFrameNumber & 0xFF; bunchId = header->bunchid; @@ -723,4 +723,4 @@ public: - +; \ No newline at end of file diff --git a/slsReceiverSoftware/tests/test-GeneralData.cpp b/slsReceiverSoftware/tests/test-GeneralData.cpp index f355b64ea..a7bca1ebf 100644 --- a/slsReceiverSoftware/tests/test-GeneralData.cpp +++ b/slsReceiverSoftware/tests/test-GeneralData.cpp @@ -25,8 +25,8 @@ TEST_CASE("Parse jungfrauctb header", "[receiver]") { unsigned char packetNumber[1]; unsigned char frameNumber[3]; unsigned char bunchid[8]; - unsigned char data[1024]; - }; + unsigned char data[UDP_PACKET_DATA_BYTES]; + } __attribute__((packed)); MoenchData data; // GetHeaderInfo(int index, char *packetData, uint32_t dynamicRange, @@ -65,4 +65,32 @@ TEST_CASE("Parse jungfrauctb header", "[receiver]") { CHECK(packetNumber == 53); CHECK(frameNumber == 0x5b0f20); CHECK(bunchId == 0xf012fb20010f195b); + CHECK(subFrameNumber == -1); } + +TEST_CASE("Parse header gotthard data", "[receiver]") { + GotthardData data; + struct packet { + uint32_t frameNumber; + unsigned char data[GOTTHARD_PACKET_SIZE]; + } __attribute__((packed)); + packet test_packet; + test_packet.frameNumber = 25698u; + + int index = 0; + char *packetData = reinterpret_cast(&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(frameNumber == test_packet.frameNumber/2); + CHECK(subFrameNumber == -1); + CHECK(bunchId == -1); + +} \ No newline at end of file