mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-26 08:10:02 +02:00
updated write config and write parameters list
This commit is contained in:
parent
536203b6dc
commit
d00c837977
@ -4780,7 +4780,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();
|
||||||
}
|
}
|
||||||
@ -4788,7 +4787,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();
|
||||||
@ -4898,11 +4897,9 @@ int multiSlsDetector::readConfigurationFile(string const fname){
|
|||||||
|
|
||||||
int multiSlsDetector::writeConfigurationFile(string const fname){
|
int multiSlsDetector::writeConfigurationFile(string const fname){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
string names[]={ \
|
string names[]={ \
|
||||||
"type", \
|
"detsizechan", \
|
||||||
|
"hostname", \
|
||||||
"master", \
|
"master", \
|
||||||
"sync", \
|
"sync", \
|
||||||
"outdir", \
|
"outdir", \
|
||||||
@ -4917,16 +4914,12 @@ int multiSlsDetector::writeConfigurationFile(string const fname){
|
|||||||
"binsize", \
|
"binsize", \
|
||||||
"threaded" };
|
"threaded" };
|
||||||
|
|
||||||
int nvar=14;
|
int nvar=15;
|
||||||
|
|
||||||
// char ext[100];
|
|
||||||
|
|
||||||
int iv=0;
|
|
||||||
char *args[100];
|
char *args[100];
|
||||||
for (int ia=0; ia<100; ++ia) {
|
for (int ia=0; ia<100; ++ia) {
|
||||||
args[ia]=new char[1000];
|
args[ia]=new char[1000];
|
||||||
}
|
}
|
||||||
int ret=OK;
|
int ret=OK,ret1=OK;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -4940,28 +4933,36 @@ int multiSlsDetector::writeConfigurationFile(string const fname){
|
|||||||
|
|
||||||
slsDetectorCommand *cmd=new slsDetectorCommand(this);
|
slsDetectorCommand *cmd=new slsDetectorCommand(this);
|
||||||
|
|
||||||
// detector types!!!
|
// complete size of detector
|
||||||
cout << iv << " " << names[iv] << endl;
|
cout << iline << " " << names[iline] << endl;
|
||||||
strcpy(args[0],names[iv].c_str());
|
strcpy(args[0],names[iline].c_str());
|
||||||
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
outfile << names[iline] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
||||||
++iline;
|
++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
|
// single detector configuration
|
||||||
for (int i=0; i<thisMultiDetector->numberOfDetectors; ++i) {
|
for (int i=0; i<thisMultiDetector->numberOfDetectors; ++i) {
|
||||||
// sprintf(ext,".det%d",i);
|
// sprintf(ext,".det%d",i);
|
||||||
if (detectors[i]) {
|
if (detectors[i]) {
|
||||||
iv+=detectors[i]->writeConfigurationFile(outfile,i);
|
ret1 = detectors[i]->writeConfigurationFile(outfile,i);
|
||||||
if(detectors[i]->getErrorMask())
|
if(detectors[i]->getErrorMask())
|
||||||
setErrorMask(getErrorMask()|(1<<i));
|
setErrorMask(getErrorMask()|(1<<i));
|
||||||
|
if (ret1 == FAIL)
|
||||||
|
ret = FAIL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//other configurations
|
//other configurations
|
||||||
for (iv=1; iv<nvar; ++iv) {
|
while (iline < nvar) {
|
||||||
|
cout << iline << " " << names[iline] << endl;
|
||||||
cout << iv << " " << names[iv] << endl;
|
strcpy(args[0],names[iline].c_str());
|
||||||
strcpy(args[0],names[iv].c_str());
|
outfile << names[iline] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
||||||
outfile << names[iv] << " " << cmd->executeLine(1,args,GET_ACTION) << std::endl;
|
|
||||||
++iline;
|
++iline;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4982,8 +4983,7 @@ int multiSlsDetector::writeConfigurationFile(string const fname){
|
|||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -6964,7 +6964,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;
|
||||||
@ -6992,56 +6991,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;
|
||||||
@ -7049,8 +7070,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];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -7073,6 +7092,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;
|
||||||
}
|
}
|
||||||
|
@ -730,11 +730,15 @@ 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;
|
||||||
|
detectorType type = getDetectorsType();
|
||||||
string names[100];
|
string names[100];
|
||||||
int nvar=0;
|
int nvar=0;
|
||||||
|
|
||||||
|
// common config
|
||||||
names[nvar++]="fname";
|
names[nvar++]="fname";
|
||||||
names[nvar++]="index";
|
names[nvar++]="index";
|
||||||
|
names[nvar++]="enablefwrite";
|
||||||
|
names[nvar++]="overwrite";
|
||||||
names[nvar++]="dr";
|
names[nvar++]="dr";
|
||||||
names[nvar++]="settings";
|
names[nvar++]="settings";
|
||||||
names[nvar++]="exptime";
|
names[nvar++]="exptime";
|
||||||
@ -743,20 +747,30 @@ int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
|||||||
names[nvar++]="cycles";
|
names[nvar++]="cycles";
|
||||||
names[nvar++]="measurements";
|
names[nvar++]="measurements";
|
||||||
names[nvar++]="timing";
|
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:
|
||||||
|
names[nvar++]="flags";
|
||||||
|
names[nvar++]="delay";
|
||||||
|
names[nvar++]="gates";
|
||||||
|
names[nvar++]="ratecorr";
|
||||||
|
break;
|
||||||
case JUNGFRAU:
|
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";
|
||||||
|
names[nvar++]="clkdivider";
|
||||||
break;
|
break;
|
||||||
case MYTHEN:
|
case MYTHEN:
|
||||||
names[nvar++]="flags";
|
names[nvar++]="flags";
|
||||||
@ -769,7 +783,6 @@ int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
|||||||
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";
|
||||||
@ -817,7 +830,6 @@ int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
names[nvar++]="startscript";
|
names[nvar++]="startscript";
|
||||||
names[nvar++]="startscriptpar";
|
names[nvar++]="startscriptpar";
|
||||||
names[nvar++]="stopscript";
|
names[nvar++]="stopscript";
|
||||||
@ -835,29 +847,6 @@ int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
|||||||
names[nvar++]="scan1prec";
|
names[nvar++]="scan1prec";
|
||||||
names[nvar++]="scan1steps";
|
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()) {
|
|
||||||
case EIGER:
|
|
||||||
case MYTHEN:
|
|
||||||
names[nvar++]="trimbits";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// char ext[100];
|
|
||||||
|
|
||||||
int iv=0;
|
int iv=0;
|
||||||
string fname1;
|
string fname1;
|
||||||
@ -871,9 +860,6 @@ int slsDetectorUtils::dumpDetectorSetup(string const fname, int level){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int nargs;
|
int nargs;
|
||||||
if (level==2)
|
if (level==2)
|
||||||
nargs=2;
|
nargs=2;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user