mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-29 01:20:02 +02:00
the functions setspeed, setflags and execute trimming should do nothing in the server and send back a fail to client
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@419 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
parent
16f74ebdf2
commit
1c275c28bd
@ -2317,87 +2317,18 @@ int get_roi(int file_des) {
|
||||
int set_speed(int file_des) {
|
||||
|
||||
enum speedVariable arg;
|
||||
int val, n;
|
||||
int ret=OK;
|
||||
int retval;
|
||||
int val;
|
||||
int ret=FAIL;
|
||||
|
||||
sprintf(mess,"can't set speed variable\n");
|
||||
receiveDataOnly(file_des,&arg,sizeof(arg));
|
||||
receiveDataOnly(file_des,&val,sizeof(val));
|
||||
|
||||
sprintf(mess,"can't set speed variable for gotthard\n");
|
||||
|
||||
|
||||
n = receiveDataOnly(file_des,&arg,sizeof(arg));
|
||||
if (n < 0) {
|
||||
sprintf(mess,"Error reading from socket\n");
|
||||
ret=FAIL;
|
||||
}
|
||||
n = receiveDataOnly(file_des,&val,sizeof(val));
|
||||
if (n < 0) {
|
||||
sprintf(mess,"Error reading from socket\n");
|
||||
ret=FAIL;
|
||||
}
|
||||
sendDataOnly(file_des,&ret,sizeof(ret));
|
||||
sendDataOnly(file_des,mess,sizeof(mess));
|
||||
|
||||
#ifdef VERBOSE
|
||||
printf("setting speed variable %d to %d\n",arg,val);
|
||||
#endif
|
||||
if (ret==OK) {
|
||||
|
||||
if (val>=0) {
|
||||
if (differentClients==1 && lockStatus==1 && val>=0) {
|
||||
ret=FAIL;
|
||||
sprintf(mess,"Detector locked by %s\n",lastClientIP);
|
||||
} else {
|
||||
switch (arg) {
|
||||
case CLOCK_DIVIDER:
|
||||
retval=setClockDivider(val);
|
||||
break;
|
||||
case WAIT_STATES:
|
||||
retval=setWaitStates(val);
|
||||
break;
|
||||
case SET_SIGNAL_LENGTH:
|
||||
retval=setSetLength(val);
|
||||
break;
|
||||
case TOT_CLOCK_DIVIDER:
|
||||
retval=setTotClockDivider(val);
|
||||
break;
|
||||
case TOT_DUTY_CYCLE:
|
||||
retval=setTotDutyCycle(val);
|
||||
break;
|
||||
default:
|
||||
ret=FAIL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
switch (arg) {
|
||||
case CLOCK_DIVIDER:
|
||||
retval=getClockDivider();
|
||||
break;
|
||||
case WAIT_STATES:
|
||||
retval=getWaitStates();
|
||||
break;
|
||||
case SET_SIGNAL_LENGTH:
|
||||
retval=getSetLength();
|
||||
break;
|
||||
case TOT_CLOCK_DIVIDER:
|
||||
retval=getTotClockDivider();
|
||||
break;
|
||||
case TOT_DUTY_CYCLE:
|
||||
retval=getTotDutyCycle();
|
||||
break;
|
||||
default:
|
||||
ret=FAIL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
n = sendDataOnly(file_des,&ret,sizeof(ret));
|
||||
if (ret==FAIL) {
|
||||
n = sendDataOnly(file_des,mess,sizeof(mess));
|
||||
} else {
|
||||
n = sendDataOnly(file_des,&retval,sizeof(retval));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2405,88 +2336,18 @@ int set_speed(int file_des) {
|
||||
|
||||
int set_readout_flags(int file_des) {
|
||||
|
||||
enum readOutFlags retval;
|
||||
enum readOutFlags arg;
|
||||
int n;
|
||||
int ret=OK;
|
||||
int regret=OK;
|
||||
int ret=FAIL;
|
||||
|
||||
|
||||
sprintf(mess,"can't set readout flags\n");
|
||||
receiveDataOnly(file_des,&arg,sizeof(arg));
|
||||
|
||||
sprintf(mess,"can't set readout flags for gotthard\n");
|
||||
|
||||
n = receiveDataOnly(file_des,&arg,sizeof(arg));
|
||||
if (n < 0) {
|
||||
sprintf(mess,"Error reading from socket\n");
|
||||
ret=FAIL;
|
||||
}
|
||||
sendDataOnly(file_des,&ret,sizeof(ret));
|
||||
sendDataOnly(file_des,mess,sizeof(mess));
|
||||
|
||||
|
||||
#ifdef VERBOSE
|
||||
printf("setting readout flags to %d\n",arg);
|
||||
#endif
|
||||
|
||||
if (differentClients==1 && lockStatus==1 && arg!=GET_READOUT_FLAGS) {
|
||||
ret=FAIL;
|
||||
sprintf(mess,"Detector locked by %s\n",lastClientIP);
|
||||
} else {
|
||||
//ret=setStoreInRAM(0);
|
||||
// initChipWithProbes(0,0,0, ALLMOD);
|
||||
switch(arg) {
|
||||
case GET_READOUT_FLAGS:
|
||||
break;
|
||||
case STORE_IN_RAM:
|
||||
if (setStoreInRAM(1)==OK)
|
||||
ret=OK;
|
||||
else
|
||||
ret=FAIL;
|
||||
break;
|
||||
case TOT_MODE:
|
||||
if(setToT(1))
|
||||
ret=OK;
|
||||
else
|
||||
ret=FAIL;
|
||||
break;
|
||||
case CONTINOUS_RO:
|
||||
if (setContinousReadOut(1))
|
||||
ret=OK;
|
||||
else
|
||||
ret=FAIL;
|
||||
break;
|
||||
// case PUMP_PROBE_MODE:
|
||||
//set number of probes
|
||||
//initChipWithProbes(0,0,2, ALLMOD);
|
||||
//break;
|
||||
default:
|
||||
ret=setStoreInRAM(0);
|
||||
regret=setConfigurationRegister(0);
|
||||
ret=OK;
|
||||
break;
|
||||
}
|
||||
}
|
||||
retval=NORMAL_READOUT;
|
||||
|
||||
if (storeInRAM)
|
||||
retval=STORE_IN_RAM;
|
||||
//else if (getProbes())
|
||||
// retval=PUMP_PROBE_MODE;
|
||||
//else
|
||||
if (setToT(-1))
|
||||
retval|=TOT_MODE;
|
||||
if (setContinousReadOut(-1))
|
||||
retval|=CONTINOUS_RO;
|
||||
if (ret!=OK) {
|
||||
printf("set readout flags failed\n");
|
||||
sprintf(mess,"Could not allocate RAM\n");
|
||||
} else if (differentClients)
|
||||
ret=FORCE_UPDATE;
|
||||
|
||||
n = sendDataOnly(file_des,&ret,sizeof(ret));
|
||||
if (ret==FAIL) {
|
||||
n = sendDataOnly(file_des,mess,sizeof(mess));
|
||||
} else {
|
||||
n = sendDataOnly(file_des,&retval,sizeof(retval));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -2497,91 +2358,17 @@ int set_readout_flags(int file_des) {
|
||||
int execute_trimming(int file_des) {
|
||||
|
||||
int arg[3];
|
||||
int n;
|
||||
int ret=OK;
|
||||
int imod, par1,par2;
|
||||
int ret=FAIL;
|
||||
enum trimMode mode;
|
||||
|
||||
sprintf(mess,"can't set execute trimming\n");
|
||||
sprintf(mess,"can't set execute trimming for gotthard\n");
|
||||
|
||||
n = receiveDataOnly(file_des,&mode,sizeof(mode));
|
||||
if (n < 0) {
|
||||
sprintf(mess,"Error reading from socket\n");
|
||||
printf("Error reading from socket (mode)\n");
|
||||
ret=FAIL;
|
||||
}
|
||||
|
||||
n = receiveDataOnly(file_des,arg,sizeof(arg));
|
||||
if (n < 0) {
|
||||
sprintf(mess,"Error reading from socket\n");
|
||||
printf("Error reading from socket (args)\n");
|
||||
ret=FAIL;
|
||||
}
|
||||
|
||||
imod=arg[0];
|
||||
|
||||
if (imod>=getNModBoard())
|
||||
ret=FAIL;
|
||||
|
||||
if (imod<0)
|
||||
imod=ALLMOD;
|
||||
|
||||
par1=arg[1];
|
||||
par2=arg[2];
|
||||
|
||||
#ifdef VERBOSE
|
||||
printf("trimming module %d mode %d, parameters %d %d \n",imod,mode, par1, par2);
|
||||
#endif
|
||||
|
||||
if (differentClients==1 && lockStatus==1 ) {
|
||||
ret=FAIL;
|
||||
sprintf(mess,"Detector locked by %s\n",lastClientIP);
|
||||
} else {
|
||||
|
||||
if (ret==OK) {
|
||||
switch(mode) {
|
||||
case NOISE_TRIMMING:
|
||||
// par1 is countlim; par2 is nsigma
|
||||
ret=trim_with_noise(par1, par2, imod);
|
||||
break;
|
||||
case BEAM_TRIMMING:
|
||||
// par1 is countlim; par2 is nsigma
|
||||
ret=trim_with_beam(par1,par2,imod);
|
||||
break;
|
||||
case IMPROVE_TRIMMING:
|
||||
// par1 is maxit; if par2!=0 vthresh will be optimized
|
||||
ret=trim_improve(par1, par2,imod);
|
||||
break;
|
||||
case FIXEDSETTINGS_TRIMMING:
|
||||
// par1 is countlim; if par2<0 then trimwithlevel else trim with median
|
||||
ret=trim_fixed_settings(par1,par2,imod);
|
||||
break;
|
||||
// case OFFLINE_TRIMMING:
|
||||
|
||||
//break;
|
||||
default:
|
||||
printf("Unknown trimming mode\n");
|
||||
sprintf(mess,"Unknown trimming mode\n");
|
||||
ret=FAIL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
receiveDataOnly(file_des,&mode,sizeof(mode));
|
||||
receiveDataOnly(file_des,arg,sizeof(arg));
|
||||
|
||||
|
||||
if (ret<0) {
|
||||
sprintf(mess,"can't set execute trimming\n");
|
||||
ret=FAIL;
|
||||
} else if (ret>0) {
|
||||
sprintf(mess,"Could not trim %d channels\n", ret);
|
||||
ret=FAIL;
|
||||
} else if (differentClients)
|
||||
ret=FORCE_UPDATE;
|
||||
|
||||
n = sendDataOnly(file_des,&ret,sizeof(ret));
|
||||
if (ret==FAIL) {
|
||||
n = sendDataOnly(file_des,mess,sizeof(mess));
|
||||
}
|
||||
sendDataOnly(file_des,&ret,sizeof(ret));
|
||||
sendDataOnly(file_des,mess,sizeof(mess));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user