mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 19:30:03 +02:00
Merge branch '3.0.1' into developer
This commit is contained in:
commit
3b684c4662
@ -4859,7 +4859,6 @@ int multiSlsDetector::readConfigurationFile(string const fname){
|
|||||||
int nd=thisMultiDetector->numberOfDetectors;
|
int nd=thisMultiDetector->numberOfDetectors;
|
||||||
|
|
||||||
for (int i=0; i<nd; ++i) {
|
for (int i=0; i<nd; ++i) {
|
||||||
// sprintf(ext,".det%d",i);
|
|
||||||
if (detectors[i]) {
|
if (detectors[i]) {
|
||||||
detectors[i]->freeSharedMemory();
|
detectors[i]->freeSharedMemory();
|
||||||
}
|
}
|
||||||
@ -4867,7 +4866,7 @@ int multiSlsDetector::readConfigurationFile(string const fname){
|
|||||||
thisMultiDetector->numberOfDetectors=0;
|
thisMultiDetector->numberOfDetectors=0;
|
||||||
|
|
||||||
multiSlsDetectorClient *cmd;
|
multiSlsDetectorClient *cmd;
|
||||||
// char ext[100];
|
|
||||||
|
|
||||||
setAcquiringFlag(false);
|
setAcquiringFlag(false);
|
||||||
clearAllErrorMask();
|
clearAllErrorMask();
|
||||||
@ -4977,92 +4976,93 @@ int multiSlsDetector::readConfigurationFile(string const fname){
|
|||||||
|
|
||||||
int multiSlsDetector::writeConfigurationFile(string const fname){
|
int multiSlsDetector::writeConfigurationFile(string const fname){
|
||||||
|
|
||||||
|
string names[]={ \
|
||||||
|
"detsizechan", \
|
||||||
|
"hostname", \
|
||||||
|
"master", \
|
||||||
|
"sync", \
|
||||||
|
"outdir", \
|
||||||
|
"ffdir", \
|
||||||
|
"headerbefore", \
|
||||||
|
"headerafter", \
|
||||||
|
"headerbeforepar", \
|
||||||
|
"headerafterpar", \
|
||||||
|
"badchannels", \
|
||||||
|
"angconv", \
|
||||||
|
"globaloff", \
|
||||||
|
"binsize", \
|
||||||
|
"threaded" };
|
||||||
|
|
||||||
|
int nvar=15;
|
||||||
|
char *args[100];
|
||||||
|
for (int ia=0; ia<100; ++ia) {
|
||||||
|
args[ia]=new char[1000];
|
||||||
|
}
|
||||||
|
int ret=OK,ret1=OK;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
string names[]={ \
|
ofstream outfile;
|
||||||
"type", \
|
int iline = 0;
|
||||||
"master", \
|
|
||||||
"sync", \
|
|
||||||
"outdir", \
|
|
||||||
"ffdir", \
|
|
||||||
"headerbefore", \
|
|
||||||
"headerafter", \
|
|
||||||
"headerbeforepar", \
|
|
||||||
"headerafterpar", \
|
|
||||||
"badchannels", \
|
|
||||||
"angconv", \
|
|
||||||
"globaloff", \
|
|
||||||
"binsize", \
|
|
||||||
"threaded" };
|
|
||||||
|
|
||||||
int nvar=14;
|
outfile.open(fname.c_str(),ios_base::out);
|
||||||
|
if (outfile.is_open()) {
|
||||||
// char ext[100];
|
|
||||||
|
|
||||||
int iv=0;
|
|
||||||
char *args[100];
|
|
||||||
for (int ia=0; ia<100; ++ia) {
|
|
||||||
args[ia]=new char[1000];
|
|
||||||
}
|
|
||||||
int ret=OK;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ofstream outfile;
|
slsDetectorCommand *cmd=new slsDetectorCommand(this);
|
||||||
int iline = 0;
|
|
||||||
|
|
||||||
outfile.open(fname.c_str(),ios_base::out);
|
// complete size of detector
|
||||||
if (outfile.is_open()) {
|
cout << iline << " " << names[iline] << endl;
|
||||||
|
strcpy(args[0],names[iline].c_str());
|
||||||
|
outfile << names[iline] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
||||||
|
++iline;
|
||||||
|
|
||||||
|
// hostname of the detectors
|
||||||
|
cout << iline << " " << names[iline] << endl;
|
||||||
|
strcpy(args[0],names[iline].c_str());
|
||||||
|
outfile << names[iline] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
||||||
|
++iline;
|
||||||
|
|
||||||
|
// single detector configuration
|
||||||
|
for (int i=0; i<thisMultiDetector->numberOfDetectors; ++i) {
|
||||||
|
// sprintf(ext,".det%d",i);
|
||||||
|
if (detectors[i]) {
|
||||||
|
ret1 = detectors[i]->writeConfigurationFile(outfile,i);
|
||||||
|
if(detectors[i]->getErrorMask())
|
||||||
|
setErrorMask(getErrorMask()|(1<<i));
|
||||||
|
if (ret1 == FAIL)
|
||||||
|
ret = FAIL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//other configurations
|
||||||
|
while (iline < nvar) {
|
||||||
|
cout << iline << " " << names[iline] << endl;
|
||||||
|
strcpy(args[0],names[iline].c_str());
|
||||||
|
outfile << names[iline] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
||||||
|
++iline;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
slsDetectorCommand *cmd=new slsDetectorCommand(this);
|
delete cmd;
|
||||||
|
outfile.close();
|
||||||
// detector types!!!
|
|
||||||
cout << iv << " " << names[iv] << endl;
|
|
||||||
strcpy(args[0],names[iv].c_str());
|
|
||||||
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
|
||||||
++iline;
|
|
||||||
// single detector configuration
|
|
||||||
for (int i=0; i<thisMultiDetector->numberOfDetectors; ++i) {
|
|
||||||
// sprintf(ext,".det%d",i);
|
|
||||||
if (detectors[i]) {
|
|
||||||
iv+=detectors[i]->writeConfigurationFile(outfile,i);
|
|
||||||
if(detectors[i]->getErrorMask())
|
|
||||||
setErrorMask(getErrorMask()|(1<<i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//other configurations
|
|
||||||
for (iv=1; iv<nvar; ++iv) {
|
|
||||||
|
|
||||||
cout << iv << " " << names[iv] << endl;
|
|
||||||
strcpy(args[0],names[iv].c_str());
|
|
||||||
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
|
||||||
++iline;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
delete cmd;
|
|
||||||
outfile.close();
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
std::cout<< "wrote " <<iline << " lines to configuration file " << std::endl;
|
std::cout<< "wrote " <<iline << " lines to configuration file " << std::endl;
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
std::cout<< "Error opening configuration file " << fname << " for writing" << std::endl;
|
std::cout<< "Error opening configuration file " << fname << " for writing" << std::endl;
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int ia=0; ia<100; ++ia) {
|
for (int ia=0; ia<100; ++ia) {
|
||||||
delete [] args[ia];
|
delete [] args[ia];
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7179,7 +7179,6 @@ int slsDetector::readConfigurationFile(ifstream &infile){
|
|||||||
|
|
||||||
int slsDetector::writeConfigurationFile(string const fname){
|
int slsDetector::writeConfigurationFile(string const fname){
|
||||||
|
|
||||||
|
|
||||||
ofstream outfile;
|
ofstream outfile;
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
int ret;
|
int ret;
|
||||||
@ -7207,56 +7206,78 @@ int slsDetector::writeConfigurationFile(string const fname){
|
|||||||
|
|
||||||
|
|
||||||
int slsDetector::writeConfigurationFile(ofstream &outfile, int id){
|
int slsDetector::writeConfigurationFile(ofstream &outfile, int id){
|
||||||
|
;
|
||||||
slsDetectorCommand *cmd=new slsDetectorCommand(this);
|
slsDetectorCommand *cmd=new slsDetectorCommand(this);
|
||||||
int nvar=15;
|
detectorType type = thisDetector->myDetectorType;
|
||||||
|
string names[100];
|
||||||
|
int nvar=0;
|
||||||
|
|
||||||
string names[20]={ \
|
// common config
|
||||||
"hostname", \
|
names[nvar++] = "hostname";
|
||||||
"port", \
|
names[nvar++] = "port";
|
||||||
"stopport", \
|
names[nvar++] = "stopport";
|
||||||
"settingsdir", \
|
names[nvar++] = "settingsdir";
|
||||||
"outdir", \
|
names[nvar++] = "caldir";
|
||||||
"angdir", \
|
names[nvar++] = "ffdir";
|
||||||
"moveflag", \
|
names[nvar++] = "outdir";
|
||||||
"lock", \
|
names[nvar++] = "angdir";
|
||||||
"caldir", \
|
names[nvar++] = "moveflag";
|
||||||
"ffdir", \
|
names[nvar++] = "lock";
|
||||||
"nmod", \
|
|
||||||
"waitstates", \
|
|
||||||
"setlength", \
|
|
||||||
"clkdivider", \
|
|
||||||
"extsig" };
|
|
||||||
|
|
||||||
// to be added in the future
|
// receiver config
|
||||||
// "trimen",
|
if (type != MYTHEN) {
|
||||||
// "receiverTCPPort",
|
names[nvar++] = "detectormac";
|
||||||
|
names[nvar++] = "detectorip";
|
||||||
if ((thisDetector->myDetectorType==GOTTHARD)||
|
names[nvar++] = "zmqport";
|
||||||
(thisDetector->myDetectorType==PROPIX)||
|
names[nvar++] = "rx_zmqport";
|
||||||
(thisDetector->myDetectorType==JUNGFRAU)||
|
names[nvar++] = "rx_tcpport";
|
||||||
(thisDetector->myDetectorType==MOENCH)) {
|
names[nvar++] = "rx_udpport";
|
||||||
names[0]= "hostname";
|
names[nvar++] = "rx_udpport2";
|
||||||
names[1]= "port";
|
names[nvar++] = "rx_udpip";
|
||||||
names[2]= "stopport";
|
names[nvar++] = "rx_hostname";
|
||||||
names[3]= "settingsdir";
|
names[nvar++] = "r_readfreq";
|
||||||
names[4]= "angdir";
|
|
||||||
names[5]= "moveflag";
|
|
||||||
names[6]= "lock";
|
|
||||||
names[7]= "caldir";
|
|
||||||
names[8]= "ffdir";
|
|
||||||
names[9]= "extsig";
|
|
||||||
names[10]="detectormac";
|
|
||||||
names[11]="detectorip";
|
|
||||||
names[12]= "rx_tcpport";
|
|
||||||
names[13]= "rx_udpport";
|
|
||||||
names[14]="rx_udpip";
|
|
||||||
names[15]="rx_hostname";
|
|
||||||
names[16]="outdir";
|
|
||||||
names[17]="vhighvoltage";
|
|
||||||
nvar=18;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// detector specific config
|
||||||
|
switch (type) {
|
||||||
|
case MYTHEN:
|
||||||
|
names[nvar++] = "nmod";
|
||||||
|
names[nvar++] = "waitstates";
|
||||||
|
names[nvar++] = "setlength";
|
||||||
|
names[nvar++] = "clkdivider";
|
||||||
|
names[nvar++] = "extsig";
|
||||||
|
break;
|
||||||
|
case GOTTHARD:
|
||||||
|
case PROPIX:
|
||||||
|
names[nvar++] = "extsig";
|
||||||
|
names[nvar++] = "vhighvoltage";
|
||||||
|
break;
|
||||||
|
break;
|
||||||
|
case MOENCH:
|
||||||
|
names[nvar++] = "extsig";
|
||||||
|
names[nvar++] = "vhighvoltage";
|
||||||
|
break;
|
||||||
|
case EIGER:
|
||||||
|
names[nvar++] = "vhighvoltage";
|
||||||
|
names[nvar++] = "trimen";
|
||||||
|
names[nvar++] = "iodelay";
|
||||||
|
names[nvar++] = "tengiga";
|
||||||
|
break;
|
||||||
|
case JUNGFRAU:
|
||||||
|
names[nvar++] = "powerchip";
|
||||||
|
names[nvar++] = "vhighvoltage";
|
||||||
|
break;
|
||||||
|
case JUNGFRAUCTB:
|
||||||
|
names[nvar++] = "powerchip";
|
||||||
|
names[nvar++] = "vhighvoltage";
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
std::cout << "detector type " << getDetectorType(thisDetector->myDetectorType) << " not implemented in writing config file" << std::endl;
|
||||||
|
nvar = 0;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int nsig=4;//-1;
|
int nsig=4;//-1;
|
||||||
int iv=0;
|
int iv=0;
|
||||||
@ -7264,8 +7285,6 @@ int slsDetector::writeConfigurationFile(ofstream &outfile, int id){
|
|||||||
char myargs[100][1000];
|
char myargs[100][1000];
|
||||||
|
|
||||||
for (int ia=0; ia<100; ++ia) {
|
for (int ia=0; ia<100; ++ia) {
|
||||||
//args[ia]=new char[1000];
|
|
||||||
|
|
||||||
args[ia]=myargs[ia];
|
args[ia]=myargs[ia];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7288,6 +7307,7 @@ int slsDetector::writeConfigurationFile(ofstream &outfile, int id){
|
|||||||
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete cmd;
|
delete cmd;
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
@ -735,37 +735,51 @@ int slsDetectorUtils::retrieveDetectorSetup(string const fname1, int level){
|
|||||||
|
|
||||||
int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
||||||
|
|
||||||
slsDetectorCommand *cmd;
|
slsDetectorCommand *cmd;
|
||||||
string names[100];
|
detectorType type = getDetectorsType();
|
||||||
int nvar=0;
|
string names[100];
|
||||||
|
int nvar=0;
|
||||||
|
|
||||||
names[nvar++]="fname";
|
// common config
|
||||||
names[nvar++]="index";
|
names[nvar++]="fname";
|
||||||
names[nvar++]="dr";
|
names[nvar++]="index";
|
||||||
names[nvar++]="settings";
|
names[nvar++]="enablefwrite";
|
||||||
names[nvar++]="exptime";
|
names[nvar++]="overwrite";
|
||||||
names[nvar++]="period";
|
names[nvar++]="dr";
|
||||||
names[nvar++]="frames";
|
names[nvar++]="settings";
|
||||||
names[nvar++]="cycles";
|
names[nvar++]="exptime";
|
||||||
names[nvar++]="measurements";
|
names[nvar++]="period";
|
||||||
names[nvar++]="timing";
|
names[nvar++]="frames";
|
||||||
|
names[nvar++]="cycles";
|
||||||
|
names[nvar++]="measurements";
|
||||||
|
names[nvar++]="timing";
|
||||||
|
names[nvar++]="flatfield";
|
||||||
|
names[nvar++]="badchannels";
|
||||||
|
|
||||||
switch (getDetectorsType()) {
|
switch (type) {
|
||||||
case EIGER:
|
case EIGER:
|
||||||
names[nvar++]="flags";
|
names[nvar++]="flags";
|
||||||
|
names[nvar++]="clkdivider";
|
||||||
names[nvar++]="threshold";
|
names[nvar++]="threshold";
|
||||||
names[nvar++]="ratecorr";
|
names[nvar++]="ratecorr";
|
||||||
|
names[nvar++]="trimbits";
|
||||||
break;
|
break;
|
||||||
case GOTTHARD:
|
case GOTTHARD:
|
||||||
case PROPIX:
|
case PROPIX:
|
||||||
case JUNGFRAU:
|
names[nvar++]="flags";
|
||||||
names[nvar++]="flags";
|
|
||||||
names[nvar++]="delay";
|
names[nvar++]="delay";
|
||||||
names[nvar++]="gates";
|
names[nvar++]="gates";
|
||||||
names[nvar++]="ratecorr";
|
names[nvar++]="ratecorr";
|
||||||
break;
|
break;
|
||||||
case MYTHEN:
|
case JUNGFRAU:
|
||||||
names[nvar++]="flags";
|
names[nvar++]="flags";
|
||||||
|
names[nvar++]="delay";
|
||||||
|
names[nvar++]="gates";
|
||||||
|
names[nvar++]="ratecorr";
|
||||||
|
names[nvar++]="clkdivider";
|
||||||
|
break;
|
||||||
|
case MYTHEN:
|
||||||
|
names[nvar++]="flags";
|
||||||
names[nvar++]="threshold";
|
names[nvar++]="threshold";
|
||||||
names[nvar++]="delay";
|
names[nvar++]="delay";
|
||||||
names[nvar++]="gates";
|
names[nvar++]="gates";
|
||||||
@ -774,188 +788,160 @@ int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
|||||||
names[nvar++]="ratecorr";
|
names[nvar++]="ratecorr";
|
||||||
names[nvar++]="trimbits";
|
names[nvar++]="trimbits";
|
||||||
break;
|
break;
|
||||||
case JUNGFRAUCTB:
|
case JUNGFRAUCTB:
|
||||||
|
names[nvar++]="dac:0";
|
||||||
names[nvar++]="dac:0";
|
names[nvar++]="dac:1";
|
||||||
names[nvar++]="dac:1";
|
names[nvar++]="dac:2";
|
||||||
names[nvar++]="dac:2";
|
names[nvar++]="dac:3";
|
||||||
names[nvar++]="dac:3";
|
names[nvar++]="dac:4";
|
||||||
names[nvar++]="dac:4";
|
names[nvar++]="dac:5";
|
||||||
names[nvar++]="dac:5";
|
names[nvar++]="dac:6";
|
||||||
names[nvar++]="dac:6";
|
names[nvar++]="dac:7";
|
||||||
names[nvar++]="dac:7";
|
names[nvar++]="dac:8";
|
||||||
names[nvar++]="dac:8";
|
names[nvar++]="dac:9";
|
||||||
names[nvar++]="dac:9";
|
names[nvar++]="dac:10";
|
||||||
names[nvar++]="dac:10";
|
names[nvar++]="dac:11";
|
||||||
names[nvar++]="dac:11";
|
names[nvar++]="dac:12";
|
||||||
names[nvar++]="dac:12";
|
names[nvar++]="dac:13";
|
||||||
names[nvar++]="dac:13";
|
names[nvar++]="dac:14";
|
||||||
names[nvar++]="dac:14";
|
names[nvar++]="dac:15";
|
||||||
names[nvar++]="dac:15";
|
names[nvar++]="adcvpp";
|
||||||
names[nvar++]="adcvpp";
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
names[nvar++]="adcclk";
|
names[nvar++]="adcclk";
|
||||||
names[nvar++]="clkdivider";
|
names[nvar++]="clkdivider";
|
||||||
names[nvar++]="adcphase";
|
names[nvar++]="adcphase";
|
||||||
names[nvar++]="adcpipeline";
|
names[nvar++]="adcpipeline";
|
||||||
names[nvar++]="adcinvert"; //
|
names[nvar++]="adcinvert"; //
|
||||||
names[nvar++]="adcdisable";
|
names[nvar++]="adcdisable";
|
||||||
names[nvar++]="patioctrl";
|
names[nvar++]="patioctrl";
|
||||||
names[nvar++]="patclkctrl";
|
names[nvar++]="patclkctrl";
|
||||||
names[nvar++]="patlimits";
|
names[nvar++]="patlimits";
|
||||||
names[nvar++]="patloop0";
|
names[nvar++]="patloop0";
|
||||||
names[nvar++]="patnloop0";
|
names[nvar++]="patnloop0";
|
||||||
names[nvar++]="patwait0";
|
names[nvar++]="patwait0";
|
||||||
names[nvar++]="patwaittime0";
|
names[nvar++]="patwaittime0";
|
||||||
names[nvar++]="patloop1";
|
names[nvar++]="patloop1";
|
||||||
names[nvar++]="patnloop1";
|
names[nvar++]="patnloop1";
|
||||||
names[nvar++]="patwait1";
|
names[nvar++]="patwait1";
|
||||||
names[nvar++]="patwaittime1";
|
names[nvar++]="patwaittime1";
|
||||||
names[nvar++]="patloop2";
|
names[nvar++]="patloop2";
|
||||||
names[nvar++]="patnloop2";
|
names[nvar++]="patnloop2";
|
||||||
names[nvar++]="patwait2";
|
names[nvar++]="patwait2";
|
||||||
names[nvar++]="patwaittime2";
|
names[nvar++]="patwaittime2";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
names[nvar++]="startscript";
|
||||||
|
names[nvar++]="startscriptpar";
|
||||||
|
names[nvar++]="stopscript";
|
||||||
|
names[nvar++]="stopscriptpar";
|
||||||
|
names[nvar++]="scriptbefore";
|
||||||
|
names[nvar++]="scriptbeforepar";
|
||||||
|
names[nvar++]="scriptafter";
|
||||||
|
names[nvar++]="scriptafterpar";
|
||||||
|
names[nvar++]="scan0script";
|
||||||
|
names[nvar++]="scan0par";
|
||||||
|
names[nvar++]="scan0prec";
|
||||||
|
names[nvar++]="scan0steps";
|
||||||
|
names[nvar++]="scan1script";
|
||||||
|
names[nvar++]="scan1par";
|
||||||
|
names[nvar++]="scan1prec";
|
||||||
|
names[nvar++]="scan1steps";
|
||||||
|
|
||||||
|
|
||||||
|
int iv=0;
|
||||||
|
string fname1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
names[nvar++]="startscript";
|
ofstream outfile;
|
||||||
names[nvar++]="startscriptpar";
|
char *args[4];
|
||||||
names[nvar++]="stopscript";
|
for (int ia=0; ia<4; ia++) {
|
||||||
names[nvar++]="stopscriptpar";
|
args[ia]=new char[1000];
|
||||||
names[nvar++]="scriptbefore";
|
}
|
||||||
names[nvar++]="scriptbeforepar";
|
|
||||||
names[nvar++]="scriptafter";
|
|
||||||
names[nvar++]="scriptafterpar";
|
|
||||||
names[nvar++]="scan0script";
|
|
||||||
names[nvar++]="scan0par";
|
|
||||||
names[nvar++]="scan0prec";
|
|
||||||
names[nvar++]="scan0steps";
|
|
||||||
names[nvar++]="scan1script";
|
|
||||||
names[nvar++]="scan1par";
|
|
||||||
names[nvar++]="scan1prec";
|
|
||||||
names[nvar++]="scan1steps";
|
|
||||||
|
|
||||||
switch (getDetectorsType()) {
|
|
||||||
case EIGER:
|
|
||||||
case MYTHEN:
|
|
||||||
case GOTTHARD:
|
|
||||||
case PROPIX:
|
|
||||||
case JUNGFRAU:
|
|
||||||
names[nvar++]="flatfield";
|
|
||||||
names[nvar++]="badchannels";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (getDetectorsType()) {
|
int nargs;
|
||||||
case EIGER:
|
if (level==2)
|
||||||
case MYTHEN:
|
nargs=2;
|
||||||
names[nvar++]="trimbits";
|
else
|
||||||
break;
|
nargs=1;
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// char ext[100];
|
|
||||||
|
|
||||||
int iv=0;
|
if (level==2) {
|
||||||
string fname1;
|
fname1=fname+string(".config");
|
||||||
|
writeConfigurationFile(fname1);
|
||||||
|
fname1=fname+string(".det");
|
||||||
|
} else
|
||||||
|
fname1=fname;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ofstream outfile;
|
outfile.open(fname1.c_str(),ios_base::out);
|
||||||
char *args[4];
|
if (outfile.is_open()) {
|
||||||
for (int ia=0; ia<4; ia++) {
|
cmd=new slsDetectorCommand(this);
|
||||||
args[ia]=new char[1000];
|
for (iv=0; iv<nvar-3; iv++) {
|
||||||
}
|
strcpy(args[0],names[iv].c_str());
|
||||||
|
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
strcpy(args[0],names[iv].c_str());
|
||||||
|
if (level==2) {
|
||||||
|
fname1=fname+string(".ff");
|
||||||
|
strcpy(args[1],fname1.c_str());
|
||||||
|
}
|
||||||
|
outfile << names[iv] << " " << cmd->executeLine(nargs,args,GET_ACTION) << std::endl;
|
||||||
|
iv++;
|
||||||
|
|
||||||
|
strcpy(args[0],names[iv].c_str());
|
||||||
|
if (level==2) {
|
||||||
|
fname1=fname+string(".bad");
|
||||||
|
strcpy(args[1],fname1.c_str());
|
||||||
|
}
|
||||||
|
outfile << names[iv] << " " << cmd->executeLine(nargs,args,GET_ACTION) << std::endl;
|
||||||
|
iv++;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (level==2) {
|
||||||
|
strcpy(args[0],names[iv].c_str());
|
||||||
int nargs;
|
size_t c=fname.rfind('/');
|
||||||
if (level==2)
|
if (c<string::npos) {
|
||||||
nargs=2;
|
fname1=fname.substr(0,c+1)+string("trim_")+fname.substr(c+1);
|
||||||
else
|
} else {
|
||||||
nargs=1;
|
fname1=string("trim_")+fname;
|
||||||
|
}
|
||||||
|
strcpy(args[1],fname1.c_str());
|
||||||
if (level==2) {
|
|
||||||
fname1=fname+string(".config");
|
|
||||||
writeConfigurationFile(fname1);
|
|
||||||
fname1=fname+string(".det");
|
|
||||||
} else
|
|
||||||
fname1=fname;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
outfile.open(fname1.c_str(),ios_base::out);
|
|
||||||
if (outfile.is_open()) {
|
|
||||||
cmd=new slsDetectorCommand(this);
|
|
||||||
for (iv=0; iv<nvar-3; iv++) {
|
|
||||||
strcpy(args[0],names[iv].c_str());
|
|
||||||
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
strcpy(args[0],names[iv].c_str());
|
|
||||||
if (level==2) {
|
|
||||||
fname1=fname+string(".ff");
|
|
||||||
strcpy(args[1],fname1.c_str());
|
|
||||||
}
|
|
||||||
outfile << names[iv] << " " << cmd->executeLine(nargs,args,GET_ACTION) << std::endl;
|
|
||||||
iv++;
|
|
||||||
|
|
||||||
strcpy(args[0],names[iv].c_str());
|
|
||||||
if (level==2) {
|
|
||||||
fname1=fname+string(".bad");
|
|
||||||
strcpy(args[1],fname1.c_str());
|
|
||||||
}
|
|
||||||
outfile << names[iv] << " " << cmd->executeLine(nargs,args,GET_ACTION) << std::endl;
|
|
||||||
iv++;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (level==2) {
|
|
||||||
strcpy(args[0],names[iv].c_str());
|
|
||||||
size_t c=fname.rfind('/');
|
|
||||||
if (c<string::npos) {
|
|
||||||
fname1=fname.substr(0,c+1)+string("trim_")+fname.substr(c+1);
|
|
||||||
} else {
|
|
||||||
fname1=string("trim_")+fname;
|
|
||||||
}
|
|
||||||
strcpy(args[1],fname1.c_str());
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
std::cout<< "writing to file " << fname1 << std::endl;
|
std::cout<< "writing to file " << fname1 << std::endl;
|
||||||
#endif
|
#endif
|
||||||
outfile << names[iv] << " " << cmd->executeLine(nargs,args,GET_ACTION) << std::endl;
|
outfile << names[iv] << " " << cmd->executeLine(nargs,args,GET_ACTION) << std::endl;
|
||||||
iv++;
|
iv++;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
delete cmd;
|
delete cmd;
|
||||||
|
|
||||||
outfile.close();
|
outfile.close();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
std::cout<< "Error opening parameters file " << fname1 << " for writing" << std::endl;
|
std::cout<< "Error opening parameters file " << fname1 << " for writing" << std::endl;
|
||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
std::cout<< "wrote " <<iv << " lines to "<< fname1 << std::endl;
|
std::cout<< "wrote " <<iv << " lines to "<< fname1 << std::endl;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return OK;
|
return OK;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user