mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
eiger server: vcal=0, rx_fifodepth to greater than 32 bit, trimval argument range check, activate to both control and stop server, end of eiger server (if detectorip normal) set activate to 1 (for future eiger firmware), added setflippeddatax to users, removing warnings and check of detector size before accessing detector[0], updating subexptime also updated subperiod in master file, remove keeprunning in rxr that keeps it busy to semaphore
This commit is contained in:
@ -3689,7 +3689,7 @@ int* slsDetector::getDataFromDetector(int *retval) {
|
||||
|
||||
int nodatadetectortype = false;
|
||||
detectorType types = getDetectorsType();
|
||||
if(types == EIGER || types == JUNGFRAU || GOTTHARD || PROPIX){
|
||||
if(types == EIGER || types == JUNGFRAU || types == GOTTHARD || types == PROPIX){
|
||||
nodatadetectortype = true;
|
||||
}
|
||||
|
||||
@ -3906,7 +3906,9 @@ int slsDetector::configureMAC() {
|
||||
bzero(cword, 50);
|
||||
string s;
|
||||
while (getline(ss, s, '.')) {
|
||||
sprintf(cword,"%s%02x",cword,atoi(s.c_str()));
|
||||
char cnum[50]="";
|
||||
sprintf(cnum, "%02x", atoi(s.c_str()));
|
||||
strcat(cword, cnum);
|
||||
}
|
||||
bzero(arg[0], 50);
|
||||
strcpy(arg[0],cword);
|
||||
@ -3922,7 +3924,7 @@ int slsDetector::configureMAC() {
|
||||
bzero(cword, 50);
|
||||
string s;
|
||||
while (getline(ss, s, ':')) {
|
||||
sprintf(cword,"%s%s",cword,s.c_str());
|
||||
strcat(cword, s.c_str());
|
||||
}
|
||||
bzero(arg[1], 50);
|
||||
strcpy(arg[1],cword);
|
||||
@ -3941,7 +3943,7 @@ int slsDetector::configureMAC() {
|
||||
bzero(cword, 50);
|
||||
string s;
|
||||
while (getline(ss, s, ':')) {
|
||||
sprintf(cword,"%s%s",cword,s.c_str());
|
||||
strcat(cword, s.c_str());
|
||||
}
|
||||
bzero(arg[3], 50);
|
||||
strcpy(arg[3],cword);
|
||||
@ -3957,7 +3959,9 @@ int slsDetector::configureMAC() {
|
||||
bzero(cword, 50);
|
||||
string s;
|
||||
while (getline(ss, s, '.')) {
|
||||
sprintf(cword,"%s%02x",cword,atoi(s.c_str()));
|
||||
char cnum[50]="";
|
||||
sprintf(cnum, "%02x", atoi(s.c_str()));
|
||||
strcat(cword, cnum);
|
||||
}
|
||||
bzero(arg[4], 50);
|
||||
strcpy(arg[4],cword);
|
||||
@ -6122,6 +6126,19 @@ int slsDetector::activate(int const enable) {
|
||||
if (ret==FORCE_UPDATE)
|
||||
updateDetector();
|
||||
}
|
||||
if (connectStop() == OK){
|
||||
stopSocket->SendDataOnly(&fnum,sizeof(fnum));
|
||||
stopSocket->SendDataOnly(&arg,sizeof(arg));
|
||||
stopSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||
if (ret==FAIL) {
|
||||
stopSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||
std::cout<< "Detector (Stop server) returned error: " << mess << std::endl;
|
||||
setErrorMask((getErrorMask())|(DETECTOR_ACTIVATE));
|
||||
} else {
|
||||
stopSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
||||
}
|
||||
disconnectStop();
|
||||
}
|
||||
}
|
||||
#ifdef VERBOSE
|
||||
if(retval==1)
|
||||
|
@ -471,6 +471,14 @@ int slsDetectorActions::executeAction(int level) {
|
||||
case headerBefore:
|
||||
fName=getCurrentFileName();
|
||||
nowIndex=getFileIndexFromFileName(getCurrentFileName());
|
||||
// all other parameters should be taken using text client calls in the header scripts!
|
||||
|
||||
sprintf(cmd,"%s nrun=%d fn=%s par=%s", \
|
||||
getActionScript(level).c_str(), \
|
||||
nowIndex, \
|
||||
fName.c_str(), \
|
||||
getActionParameter(level).c_str());
|
||||
break;
|
||||
case headerAfter:
|
||||
|
||||
// all other parameters should be taken using text client calls in the header scripts!
|
||||
|
@ -3066,7 +3066,9 @@ string slsDetectorCommand::cmdTrimEn(int narg, char *args[], int action){
|
||||
npos = myDet->getTrimEn(opos);
|
||||
if (npos != -1) {
|
||||
for (int ip=0; ip<npos;++ip) {
|
||||
sprintf(answer,"%s %d",answer,opos[ip]);
|
||||
char cnum[50]="";
|
||||
sprintf(cnum, " %d", opos[ip]);
|
||||
strcat(answer, cnum);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3708,7 +3710,9 @@ string slsDetectorCommand::cmdPositions(int narg, char *args[], int action){
|
||||
double opos[npos];
|
||||
myDet->getPositions(opos);
|
||||
for (int ip=0; ip<npos;++ip) {
|
||||
sprintf(answer,"%s %f",answer,opos[ip]);
|
||||
char cnum[50]="";
|
||||
sprintf(cnum, " %f", opos[ip]);
|
||||
strcat(answer, cnum);
|
||||
}
|
||||
return string(answer);
|
||||
|
||||
@ -3887,9 +3891,11 @@ string slsDetectorCommand::cmdScans(int narg, char *args[], int action) {
|
||||
ns=myDet->getScanSteps(is, values);
|
||||
int p=myDet->getScanPrecision(is);
|
||||
char format[1000];
|
||||
sprintf(format, "%%s %%0.%df",p);
|
||||
sprintf(format, " %%0.%df",p);
|
||||
for (int i=0; i<ns; ++i) {
|
||||
sprintf(answer,format,answer,values[i]);
|
||||
char cnum[50]="";
|
||||
sprintf(cnum, format, values[i]);
|
||||
strcat(answer, cnum);
|
||||
}
|
||||
delete [] values;
|
||||
}
|
||||
@ -3954,10 +3960,11 @@ string slsDetectorCommand::cmdScans(int narg, char *args[], int action) {
|
||||
ns=myDet->getScanSteps(is, values);
|
||||
int p=myDet->getScanPrecision(is);
|
||||
char format[1000];
|
||||
sprintf(format, "%%s %%0.%df",p);
|
||||
sprintf(answer,"%d ",ns);
|
||||
sprintf(format, " %%0.%df",p);
|
||||
for (int i=0; i<ns; ++i) {
|
||||
sprintf(answer,format,answer,values[i]);
|
||||
char cnum[50]="";
|
||||
sprintf(cnum, format, values[i]);
|
||||
strcat(answer, cnum);
|
||||
}
|
||||
delete [] values;
|
||||
return string(answer);
|
||||
@ -5850,7 +5857,7 @@ string slsDetectorCommand::cmdTimeLeft(int narg, char *args[], int action) {
|
||||
|
||||
if ((ret!=-1) && (index==ACQUISITION_TIME || index==FRAME_PERIOD || index==DELAY_AFTER_TRIGGER
|
||||
|| index==ACTUAL_TIME || index==MEASUREMENT_TIME ||
|
||||
MEASURED_PERIOD || MEASURED_SUBPERIOD)) {
|
||||
index==MEASURED_PERIOD || index==MEASURED_SUBPERIOD)) {
|
||||
rval=(double)ret*1E-9;
|
||||
sprintf(answer,"%0.9f",rval);
|
||||
} else {
|
||||
|
@ -314,6 +314,10 @@ int slsDetectorUsers::enableGapPixels(int enable) {
|
||||
return myDetector->enableGapPixels(enable);
|
||||
}
|
||||
|
||||
int slsDetectorUsers::setFlippedDataX(int value) {
|
||||
return myDetector->setFlippedData(slsDetectorDefs::X, value);
|
||||
}
|
||||
|
||||
std::string slsDetectorUsers::setReceiverFramesDiscardPolicy(std::string f) {
|
||||
return myDetector->getReceiverFrameDiscardPolicy(
|
||||
myDetector->setReceiverFramesDiscardPolicy(
|
||||
|
@ -553,6 +553,12 @@ class slsDetectorUsers
|
||||
*/
|
||||
int enableGapPixels(int enable=-1);
|
||||
|
||||
/** sets the enable which determines if data will be flipped across x axis
|
||||
* @param value 0 or 1 to reset/set or -1 to get value
|
||||
* @return enable flipped data across x axis
|
||||
*/
|
||||
int setFlippedDataX(int value=-1);
|
||||
|
||||
/**
|
||||
* Sets the frames discard policy in receiver
|
||||
* frame discard policy options:
|
||||
|
Reference in New Issue
Block a user