From 4c86ad3198142db144de8ea70e408a2587754c6a Mon Sep 17 00:00:00 2001 From: Mazzoleni Alice Francesca Date: Fri, 11 Apr 2025 10:27:26 +0200 Subject: [PATCH] added sanity check to only enable for chipttestboard and xilinx --- slsReceiverSoftware/src/DataProcessor.cpp | 15 +++++++++++++++ .../tests/test-ArrangeDataBasedOnBitList.cpp | 2 ++ 2 files changed, 17 insertions(+) diff --git a/slsReceiverSoftware/src/DataProcessor.cpp b/slsReceiverSoftware/src/DataProcessor.cpp index b70199672..7a69e3f41 100644 --- a/slsReceiverSoftware/src/DataProcessor.cpp +++ b/slsReceiverSoftware/src/DataProcessor.cpp @@ -336,6 +336,7 @@ void DataProcessor::StopProcessing(char *buf) { void DataProcessor::ProcessAnImage(sls_receiver_header &header, size_t &size, size_t &firstImageIndex, char *data) { + uint64_t fnum = header.detHeader.frameNumber; LOG(logDEBUG1) << "DataProcessing " << index << ": fnum:" << fnum; currentFrameIndex = fnum; @@ -540,6 +541,13 @@ void DataProcessor::PadMissingPackets(sls_receiver_header header, char *data) { } void DataProcessor::RemoveTrailingBits(size_t &size, char *data) { + + if (!(generalData->detType == slsDetectorDefs::CHIPTESTBOARD || + generalData->detType == slsDetectorDefs::XILINX_CHIPTESTBOARD)) { + throw std::runtime_error("behavior undefined for detector " + + std::to_string(generalData->detType)); + } + const size_t nAnalogDataBytes = generalData->GetNumberOfAnalogDatabytes(); const size_t nDigitalDataBytes = generalData->GetNumberOfDigitalDatabytes(); const size_t nTransceiverDataBytes = @@ -563,6 +571,13 @@ void DataProcessor::RemoveTrailingBits(size_t &size, char *data) { /** ctb specific */ void DataProcessor::ArrangeDbitData(size_t &size, char *data) { + + if (!(generalData->detType == slsDetectorDefs::CHIPTESTBOARD || + generalData->detType == slsDetectorDefs::XILINX_CHIPTESTBOARD)) { + throw std::runtime_error("behavior undefined for detector " + + std::to_string(generalData->detType)); + } + size_t nAnalogDataBytes = generalData->GetNumberOfAnalogDatabytes(); size_t nDigitalDataBytes = generalData->GetNumberOfDigitalDatabytes(); size_t nTransceiverDataBytes = diff --git a/slsReceiverSoftware/tests/test-ArrangeDataBasedOnBitList.cpp b/slsReceiverSoftware/tests/test-ArrangeDataBasedOnBitList.cpp index a2909db25..0b5ef3bd0 100644 --- a/slsReceiverSoftware/tests/test-ArrangeDataBasedOnBitList.cpp +++ b/slsReceiverSoftware/tests/test-ArrangeDataBasedOnBitList.cpp @@ -16,6 +16,8 @@ namespace sls { class GeneralDataTest : public GeneralData { public: + GeneralDataTest() { detType = slsDetectorDefs::CHIPTESTBOARD; } + int GetNumberOfAnalogDatabytes() { return nAnalogBytes; }; int GetNumberOfDigitalDatabytes() { return nDigitalBytes; };