diff --git a/slsDetectorSoftware/include/slsDetectorUsers.h b/slsDetectorSoftware/include/slsDetectorUsers.h index c92323ac6..da3ec374d 100755 --- a/slsDetectorSoftware/include/slsDetectorUsers.h +++ b/slsDetectorSoftware/include/slsDetectorUsers.h @@ -927,7 +927,7 @@ public: /** @short returns external communication mode std::string from index \param s index for communication mode - \returns auto, trigger, ro_trigger, gating, triggered_gating, unknown when wrong mode + \returns auto, trigger, ro_trigger, gating, triggered_gating, burst_trigger, unknown when wrong mode */ static int getTimingMode(std::string s){ \ @@ -936,6 +936,7 @@ public: if (s== "ro_trigger") return 2; \ if (s== "gating") return 3; \ if (s== "triggered_gating") return 4; \ + if (s== "burst_trigger") return 5; \ return -1; }; diff --git a/slsDetectorSoftware/src/multiSlsDetector.cpp b/slsDetectorSoftware/src/multiSlsDetector.cpp index 1acf99192..d6e6c1515 100755 --- a/slsDetectorSoftware/src/multiSlsDetector.cpp +++ b/slsDetectorSoftware/src/multiSlsDetector.cpp @@ -2811,7 +2811,17 @@ int multiSlsDetector::powerChip(int ival, int detPos) { return detectors[detPos]->powerChip(ival); } - // multi + // multi delayed call for safety + if (ival >= 0 && getNumberOfDetectors() > 3) { + std::vector r; + r.reserve(detectors.size()); + for (auto &d : detectors) { + r.push_back(d->powerChip(ival)); + usleep(1000 * 1000); + } + return sls::minusOneIfDifferent(r); + } + // multi parallel auto r = parallelCall(&slsDetector::powerChip, ival); return sls::minusOneIfDifferent(r); }