diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp index 6304988f0..b54f50d9b 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.cpp @@ -4248,7 +4248,7 @@ string multiSlsDetector::setFileName(string s) { for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { - if(getNumberOfDetectors()>1) + if((getNumberOfDetectors()>1) && (setReceiverOnline()==ONLINE_FLAG)) setDetectorIndex(idet); ret1=detectors[idet]->setFileName(s); if(detectors[idet]->getErrorMask()) @@ -4258,7 +4258,8 @@ string multiSlsDetector::setFileName(string s) { else if (ret!=ret1) ret=""; } - } + } + return ret; } @@ -4566,6 +4567,7 @@ int multiSlsDetector::enableWriteToFile(int enable){ int multiSlsDetector::setFrameIndex(int index){ int ret=-100, ret1; + fileIO::setFrameIndex(index); for (int idet=0; idetnumberOfDetectors; idet++) { if (detectors[idet]) { ret1=detectors[idet]->setFrameIndex(index); diff --git a/slsDetectorSoftware/slsDetector/remove_shm.sh b/slsDetectorSoftware/slsDetector/remove_shm.sh index a4608ae47..439bc839c 100755 --- a/slsDetectorSoftware/slsDetector/remove_shm.sh +++ b/slsDetectorSoftware/slsDetector/remove_shm.sh @@ -1,9 +1,9 @@ #!/bin/csh -f #set l = `ipcs -m | grep "$USER"| cut -c12-19` -set l = `ipcs -m | cut -c12-19` +set l = `ipcs -m | cut -c0-10` foreach s ( $l ) echo $s - ipcrm shm $s + ipcrm -M $s end #if ($#l != 0 ) echo $#l shared memory\(s\) for $user removed diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index d97eafa41..eb4f56ef1 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -209,6 +209,10 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { i++; + descrToFuncMap[i].m_pFuncName="currentfname"; //OK + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdFileName; + i++; + /* Acquisition actions */ descrToFuncMap[i].m_pFuncName="positions"; // @@ -1402,11 +1406,14 @@ string slsDetectorCommand::helpOutDir(int narg, char *args[], int action){ string slsDetectorCommand::cmdFileName(int narg, char *args[], int action){ if (action==HELP_ACTION) return helpFileName(narg, args, action); - - else if (action==PUT_ACTION) + if (cmd=="fname") { + if (action==PUT_ACTION) myDet->setFileName(string(args[1])); return string(myDet->getFileName()); + } else + return string(myDet->getCurrentFileName()); + } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp index e07c3afda..38f5135f0 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.cpp @@ -44,6 +44,15 @@ slsDetectorUtils::slsDetectorUtils() { void slsDetectorUtils::acquire(int delflag){ bool receiver = (setReceiverOnline()==ONLINE_FLAG); + if(!receiver) + setDetectorIndex(-1); + int nc=setTimer(CYCLES_NUMBER,-1); + int nf=setTimer(FRAME_NUMBER,-1); + if (nc==0) nc=1; + if (nf==0) nf=1; + + int multiframe = nc*nf; + cout << "multiframe:"<< multiframe<1) { - if ((setTimer(FRAME_NUMBER,-1)*setTimer(CYCLES_NUMBER,-1))>1){ + if (multiframe>1){ setFrameIndex(0); } else { setFrameIndex(-1); } - + cout <<"frame index:"<