From 512e1a3136aa0187709a31496c33a801ce668f4a Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Fri, 30 Nov 2018 14:39:01 +0100 Subject: [PATCH] users bug fix:getting id(version) for single/multi detector, added resetframescaught in users --- .../multiSlsDetector/multiSlsDetector.cpp | 11 +++++++++- .../slsDetector/slsDetectorBase.h | 8 +++---- .../slsDetector/slsDetectorUsers.cpp | 20 ++++++++++------- .../slsDetector/slsDetectorUsers.h | 22 ++++++++++++++----- 4 files changed, 43 insertions(+), 18 deletions(-) diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 42518e718..677ca5a97 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4501,7 +4501,16 @@ int64_t multiSlsDetector::getId(idMode mode, int imod) { } } - return -1; + ret = -100; int64_t ret1; + for (int idet=0; idetnumberOfDetectors; ++idet) + if (detectors[idet]){ + ret1=detectors[idet]->getId(mode, imod); + if(ret==-100) + ret=ret1; + else if (ret!=ret1) + ret=-1; + } + return ret; } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorBase.h b/slsDetectorSoftware/slsDetector/slsDetectorBase.h index 0965101ea..db62c22bb 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorBase.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorBase.h @@ -345,11 +345,11 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef \returns id */ virtual int64_t getId(idMode mode, int imod=0)=0; - int64_t getModuleFirmwareVersion(){return getId(MODULE_FIRMWARE_VERSION,-1);}; + int64_t getModuleFirmwareVersion(int imod=-1){return getId(MODULE_FIRMWARE_VERSION,imod);}; int64_t getModuleSerialNumber(int imod=-1){return getId(MODULE_SERIAL_NUMBER,imod);}; - int64_t getDetectorFirmwareVersion(){return getId(DETECTOR_FIRMWARE_VERSION,-1);}; - int64_t getDetectorSerialNumber(){return getId(DETECTOR_SERIAL_NUMBER,-1);}; - int64_t getDetectorSoftwareVersion(){return getId(DETECTOR_SOFTWARE_VERSION,-1);}; + int64_t getDetectorFirmwareVersion(int imod=-1){return getId(DETECTOR_FIRMWARE_VERSION,imod);}; + int64_t getDetectorSerialNumber(int imod=-1){return getId(DETECTOR_SERIAL_NUMBER,imod);}; + int64_t getDetectorSoftwareVersion(int imod=-1){return getId(DETECTOR_SOFTWARE_VERSION,imod);}; int64_t getThisSoftwareVersion(){return getId(THIS_SOFTWARE_VERSION,-1);}; /** diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp index d4a5e41df..a15a0c31d 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp @@ -258,24 +258,24 @@ int slsDetectorUsers::setClientDataStreamingInPort(int i){ return myDetector->setClientDataStreamingInPort(i); } -int64_t slsDetectorUsers::getModuleFirmwareVersion(){ - return myDetector->getModuleFirmwareVersion(); +int64_t slsDetectorUsers::getModuleFirmwareVersion(int imod){ + return myDetector->getModuleFirmwareVersion(imod); } int64_t slsDetectorUsers::getModuleSerialNumber(int imod){ return myDetector->getModuleSerialNumber(imod); } -int64_t slsDetectorUsers::getDetectorFirmwareVersion(){ - return myDetector->getDetectorFirmwareVersion(); +int64_t slsDetectorUsers::getDetectorFirmwareVersion(int imod){ + return myDetector->getDetectorFirmwareVersion(imod); } -int64_t slsDetectorUsers::getDetectorSerialNumber(){ - return myDetector->getDetectorSerialNumber(); +int64_t slsDetectorUsers::getDetectorSerialNumber(int imod){ + return myDetector->getDetectorSerialNumber(imod); } -int64_t slsDetectorUsers::getDetectorSoftwareVersion(){ - return myDetector->getDetectorSoftwareVersion(); +int64_t slsDetectorUsers::getDetectorSoftwareVersion(int imod){ + return myDetector->getDetectorSoftwareVersion(imod); } int64_t slsDetectorUsers::getThisSoftwareVersion(){ @@ -389,3 +389,7 @@ int slsDetectorUsers::setReceiverSilentMode(int i) { int slsDetectorUsers::setHighVoltage(int i) { return myDetector->setHighVoltage(i); } + +int slsDetectorUsers::resetFramesCaughtInReceiver() { + return myDetector->resetFramesCaught(); +} diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h index 159a70924..83c3056b8 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h @@ -483,12 +483,13 @@ class slsDetectorUsers /** get get Module Firmware Version + @param imod module number \returns id */ - int64_t getModuleFirmwareVersion(); + int64_t getModuleFirmwareVersion(int imod=-1); /** - get get Module Serial Number + get get Module Serial Number (mythen only) @param imod module number \returns id */ @@ -496,21 +497,24 @@ class slsDetectorUsers /** get get Detector Firmware Version + @param imod module number \returns id */ - int64_t getDetectorFirmwareVersion(); + int64_t getDetectorFirmwareVersion(int imod=-1); /** get get Detector Serial Number + @param imod module number \returns id */ - int64_t getDetectorSerialNumber(); + int64_t getDetectorSerialNumber(int imod=-1); /** get get Detector Software Version + @param imod module number \returns id */ - int64_t getDetectorSoftwareVersion(); + int64_t getDetectorSoftwareVersion(int imod=-1); /** get this Software Version @@ -659,6 +663,13 @@ class slsDetectorUsers */ int setHighVoltage(int i); + /** + * reset frames caught in receiver + * should be called before startReceiver() + * @returns OK or FAIL + */ +int resetFramesCaughtInReceiver(); + /************************************************************************ STATIC FUNCTIONS @@ -677,6 +688,7 @@ class slsDetectorUsers case 3: return string("finished"); \ case 4: return string("data"); \ case 5: return string("running"); \ + case 6: return string("stopped"); \ default: return string("unknown"); \ }};