From 71dd43d2528741bd332499f63aa95f284f4e65fa Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Wed, 1 May 2019 12:25:21 +0200 Subject: [PATCH] connected analog databytes --- slsReceiverSoftware/include/GeneralData.h | 12 +++++++++--- .../src/slsReceiverImplementation.cpp | 15 ++++++++++----- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/slsReceiverSoftware/include/GeneralData.h b/slsReceiverSoftware/include/GeneralData.h index 3fb306663..b7c955ed1 100755 --- a/slsReceiverSoftware/include/GeneralData.h +++ b/slsReceiverSoftware/include/GeneralData.h @@ -205,9 +205,11 @@ public: * @param ds digital number of samples * @param t tengiga enable * @param f readout flags + * @returns analog data bytes */ - virtual void setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { + virtual int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { cprintf(RED,"setImageSize is a generic function that should be overloaded by a derived class\n"); + return 0; }; /** @@ -580,8 +582,9 @@ public: * @param ds digital number of samples * @param t tengiga enable * @param f readout flags + * @returns analog data bytes */ - void setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { + int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { int nachans = 0, ndchans = 0; int adatabytes = 0, ddatabytes = 0; @@ -632,6 +635,7 @@ public: packetsPerFrame = ceil((double)imageSize / (double)dataSize); standardheader = true; } + return adatabytes; } }; @@ -670,8 +674,9 @@ public: * @param ds digital number of samples * @param t tengiga enable * @param f readout flags + * @returns analog data bytes */ - void setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { + int setImageSize(uint32_t a, uint64_t as, uint64_t ds, bool t, slsDetectorDefs::readOutFlags f = slsDetectorDefs::GET_READOUT_FLAGS) { int nachans = 0; int adatabytes = 0; @@ -706,6 +711,7 @@ public: imageSize = adatabytes; packetsPerFrame = ceil((double)imageSize / (double)dataSize); } + return adatabytes; } }; diff --git a/slsReceiverSoftware/src/slsReceiverImplementation.cpp b/slsReceiverSoftware/src/slsReceiverImplementation.cpp index 030d06608..874785edb 100755 --- a/slsReceiverSoftware/src/slsReceiverImplementation.cpp +++ b/slsReceiverSoftware/src/slsReceiverImplementation.cpp @@ -113,6 +113,11 @@ void slsReceiverImplementation::InitializeMembers() { //** class objects *** generalData = nullptr; + //** ctb callback parameters + ctbType = 0; + ctbDigitalOffset = 0; + ctbAnalogDataBytes = 0; + //***callback parameters*** startAcquisitionCallBack = nullptr; pStartAcquisition = nullptr; @@ -482,7 +487,7 @@ int slsReceiverImplementation::setReadOutFlags(const readOutFlags f) { // side effects if (myDetectorType == CHIPTESTBOARD) { - generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); + ctbAnalogDataBytes = generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); for (const auto& it : dataProcessor) it->SetPixelDimension(); if (SetupFifoStructure() == FAIL) @@ -838,7 +843,7 @@ int slsReceiverImplementation::setADCEnableMask(uint32_t mask) { generalData->setImageSize(mask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable); break; case CHIPTESTBOARD: - generalData->setImageSize(mask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); + ctbAnalogDataBytes = generalData->setImageSize(mask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); break; default: break; @@ -972,7 +977,7 @@ int slsReceiverImplementation::setNumberofAnalogSamples(const uint64_t i) { if(myDetectorType == MOENCH) { generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable); } else if(myDetectorType == CHIPTESTBOARD) { - generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); + ctbAnalogDataBytes = generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); } for (const auto& it : dataProcessor) it->SetPixelDimension(); @@ -992,7 +997,7 @@ int slsReceiverImplementation::setNumberofDigitalSamples(const uint64_t i) { if(myDetectorType == MOENCH) { generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable); } else if(myDetectorType == CHIPTESTBOARD) { - generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); + ctbAnalogDataBytes = generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); } for (const auto& it : dataProcessor) it->SetPixelDimension(); @@ -1034,7 +1039,7 @@ int slsReceiverImplementation::setTenGigaEnable(const bool b) { generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable); break; case CHIPTESTBOARD: - generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); + ctbAnalogDataBytes = generalData->setImageSize(adcEnableMask, numberOfAnalogSamples, numberOfDigitalSamples, tengigaEnable, readoutFlags); break; default: break;