diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 221e3dbbb..142cda41a 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -3819,27 +3819,51 @@ int multiSlsDetector::digitalTest(digitalTestMode mode, int imod) { int multiSlsDetector::executeTrimming(trimMode mode, int par1, int par2, int imod) { - int id, im, ret; + int id, im, ret1=-1,ret=100; - if (decodeNMod(imod, id, im)>=0) { - if (detectors[id]) { - ret = detectors[id]->executeTrimming(mode, par1, par2, im); - if(detectors[id]->getErrorMask()) - setErrorMask(getErrorMask()|(1<numberOfDetectors; idet++) { - if (detectors[idet]) { - ret=detectors[idet]->executeTrimming(mode, par1, par2, imod); - if(detectors[idet]->getErrorMask()) - setErrorMask(getErrorMask()|(1<=0) { + if (detectors[id]) { + ret = detectors[id]->executeTrimming(mode, par1, par2, im); + if(detectors[id]->getErrorMask()) + setErrorMask(getErrorMask()|(1<numberOfDetectors]; + for(int idet=0; idetnumberOfDetectors; idet++){ + if(detectors[idet]){ + iret[idet]= new int(-1); + Task* task = new Task(new func4_t (&slsDetector::executeTrimming, + detectors[idet],mode,par1,par2,imod,iret[idet])); + threadpool->add_task(task); + } + } + threadpool->wait_for_tasks_to_complete(); + for(int idet=0; idetnumberOfDetectors; idet++){ + if(detectors[idet]){ + if(iret[idet] != NULL){ + ret1 = *iret[idet]; + delete iret[idet]; + } + if(detectors[idet]->getErrorMask()) + setErrorMask(getErrorMask()|(1<* t): m1(t),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0){}; + Task(func1_t * t): m1(t),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0){}; /* Return: int, Param: string,int */ - Task(func2_t * t): m1(0),m2(t),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0){}; + Task(func2_t * t): m1(0),m2(t),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0){}; /* Return: string, Param: string */ - Task(func1_t * t): m1(0),m2(0),m3(t),m4(0),m5(0),m6(0),m7(0),m8(0){}; + Task(func1_t * t): m1(0),m2(0),m3(t),m4(0),m5(0),m6(0),m7(0),m8(0),m9(0){}; /* Return: char*, Param: char* */ - Task(func1_t * t): m1(0),m2(0),m3(0),m4(t),m5(0),m6(0),m7(0),m8(0){}; + Task(func1_t * t): m1(0),m2(0),m3(0),m4(t),m5(0),m6(0),m7(0),m8(0),m9(0){}; /* Return: detectorSettings, Param: int */ - Task(func1_t * t): m1(0),m2(0),m3(0),m4(0),m5(t),m6(0),m7(0),m8(0){}; + Task(func1_t * t): m1(0),m2(0),m3(0),m4(0),m5(t),m6(0),m7(0),m8(0),m9(0){}; /* Return: detectorSettings, Param: detectorSettings,int */ - Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(t),m7(0),m8(0){}; + Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(t),m7(0),m8(0),m9(0){}; /* Return: int, Param: int,int */ - Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(t),m8(0){}; + Task(func2_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(t),m8(0),m9(0){}; /* Return: int, Param: int,int */ - Task(func3_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(t){}; + Task(func3_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(t),m9(0){}; + /* Return: int, Param: trimMode,int,int,int */ + Task(func4_t * t): m1(0),m2(0),m3(0),m4(0),m5(0),m6(0),m7(0),m8(0),m9(t){}; ~Task(){} @@ -109,6 +111,8 @@ public: else if(m5) (*m5)(); else if(m6) (*m6)(); else if(m7) (*m7)(); + else if(m8) (*m8)(); + else if(m9) (*m9)(); } private: @@ -128,6 +132,8 @@ private: func2_t * m7; /* Return: int, Param: int,int */ func3_t * m8; + /* Return: int, Param: trimMode,int,int,int */ + func4_t * m9; };