eiger server edited to include set timer, settingsand stop server for the time being

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@631 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2013-07-11 09:06:37 +00:00
parent 8720f960e7
commit 036d72fec8
6 changed files with 66 additions and 36 deletions

View File

@ -1,6 +1,6 @@
CC = powerpc-4xx-softfloat-gcc CC = powerpc-4xx-softfloat-gcc
CCX = powerpc-4xx-softfloat-g++ CCX = powerpc-4xx-softfloat-g++
CLAGS += -Wall -DDACS_INT -DEIGERD -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT #-DVERBOSE #-DVIRTUAL CLAGS += -Wall -DDACS_INT -DEIGERD -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSE #-DVIRTUAL
LDLIBS += -lm -lstdc++ LDLIBS += -lm -lstdc++
PROGS = eigerDetectorServer PROGS = eigerDetectorServer

View File

@ -42,7 +42,15 @@ extern int dataBytes;
const char* dacNames[16] = {"Svp","Svn","Vtr","Vrf","Vrs","Vtgstv","Vcmp_ll","Vcmp_lr","Cal","Vcmp_rl","Vcmp_rr","Rxb_rb","Rxb_lb","Vcp","Vcn","Vis"}; const char* dacNames[16] = {"Svp","Svn","Vtr","Vrf","Vrs","Vtgstv","Vcmp_ll","Vcmp_lr","Cal","Vcmp_rl","Vcmp_rr","Rxb_rb","Rxb_lb","Vcp","Vcn","Vis"};
//temporary storage on server for debugging until Ian implements
int dacvalues[NDAC]; int dacvalues[NDAC];
int framenum=0;
int trains=0;
int exposureTime=1e6;
int period=1e9;
int delay=0;
int gates=0;
/** temporary /** temporary
u_int32_t CSP0BASE; u_int32_t CSP0BASE;
@ -323,14 +331,14 @@ int getModule(sls_detector_module *myMod){
int getThresholdEnergy(int imod){ int getThresholdEnergy(int imod){
//template getThresholdEnergy() from mcb_funcs.c //template getThresholdEnergy() from mcb_funcs.c
//depending on settings //depending on settings
return FAIL; return 0;
} }
int setThresholdEnergy(int thr, int imod){ int setThresholdEnergy(int thr, int imod){
//template getThresholdEnergy() from mcb_funcs.c //template getThresholdEnergy() from mcb_funcs.c
//depending on settings //depending on settings
return FAIL; return 0;
} }
@ -385,16 +393,40 @@ char *readFrame(int *ret, char *mess){
int64_t setTimer(enum timerIndex ind, int64_t val){ int64_t setTimer(enum timerIndex ind, int64_t val){
//template setDelay() from firmware_funcs.c switch(ind){
//writes to reg case FRAME_NUMBER:
//FRAME_NUMBER if(val >= 0)
//ACQUISITION_TIME framenum = val;
//FRAME_PERIOD return framenum;
//DELAY_AFTER_TRIGGER case ACQUISITION_TIME:
//GATES_NUMBER if(val >= 0)
//PROBES_NUMBER exposureTime = val;
//CYCLES_NUMBER return exposureTime;
return 0; case FRAME_PERIOD:
if(val >= 0)
period = val;
return period;
case DELAY_AFTER_TRIGGER:
if(val >= 0)
delay = val;
return delay;
case GATES_NUMBER:
if(val >= 0)
gates = val;
return gates;
/* case PROBES_NUMBER:
if(val >= 0)
framenum = val;
return framenum;*/
case CYCLES_NUMBER:
if(val >= 0)
trains = val;
return trains;
default:
printf("unknown timer index: %d\n",ind);
break;
}
return -1;
} }
@ -414,7 +446,7 @@ int64_t getTimeLeft(enum timerIndex ind){
int setDynamicRange(int dr){ int setDynamicRange(int dr){
//template setDynamicRange() from firmware_funcs.c //template setDynamicRange() from firmware_funcs.c
return 0; return DYNAMIC_RANGE;
} }

View File

@ -14,7 +14,7 @@
#define GOODBYE -200 #define GOODBYE -200
#define MODULESERIALNUM 0xbeb045 //temporary should be in firmware
#define FIRMWAREREV 0xcaba //temporary should be in firmware #define FIRMWAREREV 0xcaba //temporary should be in firmware
/* examples*/ /* examples*/

View File

@ -3054,7 +3054,7 @@ int slsDetector::updateDetectorNoWait() {
thisDetector->timerValue[GATES_NUMBER]=retval; thisDetector->timerValue[GATES_NUMBER]=retval;
//retval=setProbes(tns); //retval=setProbes(tns);
if((thisDetector->myDetectorType!= GOTTHARD)&&(thisDetector->myDetectorType!= MOENCH)){ if (thisDetector->myDetectorType == MYTHEN){
n = controlSocket->ReceiveDataOnly( &retval,sizeof(int64_t)); n = controlSocket->ReceiveDataOnly( &retval,sizeof(int64_t));
thisDetector->timerValue[PROBES_NUMBER]=retval; thisDetector->timerValue[PROBES_NUMBER]=retval;
} }

View File

@ -362,37 +362,36 @@ int send_update(int file_des) {
int ret=OK; int ret=OK;
enum detectorSettings t; enum detectorSettings t;
int thr, n = 0; int n = 0, nm = 0;
// int it; int64_t retval = 0;
int64_t retval;/*, tns=-1;*/
int nm;
n += sendData(file_des,lastClientIP,sizeof(lastClientIP),OTHER); n += sendData(file_des,lastClientIP,sizeof(lastClientIP),OTHER);
/*nm=setNMod(-1,X);*/ nm=setNMod(GET_FLAG,X);
n += sendData(file_des,&nm,sizeof(nm),INT32); n += sendData(file_des,&nm,sizeof(nm),INT32);
/*nm=setNMod(-1,Y);*/ nm=setNMod(GET_FLAG,Y);
n += sendData(file_des,&nm,sizeof(nm),INT32); n += sendData(file_des,&nm,sizeof(nm),INT32);
/*nm=setDynamicRange(-1);*/ nm=setDynamicRange(GET_FLAG);
n += sendData(file_des,&nm,sizeof(nm),INT32); n += sendData(file_des,&nm,sizeof(nm),INT32);
n += sendData(file_des,&dataBytes,sizeof(dataBytes),INT32); n += sendData(file_des,&dataBytes,sizeof(dataBytes),INT32);
/*t=setSettings(GET_SETTINGS, -1);*/
t=setSettings(GET_SETTINGS, GET_FLAG);
n += sendData(file_des,&t,sizeof(t),INT32); n += sendData(file_des,&t,sizeof(t),INT32);
/*thr=getThresholdEnergy(-1);*/ nm=getThresholdEnergy(GET_FLAG);
n += sendData(file_des,&thr,sizeof(thr),INT32); n += sendData(file_des,&nm,sizeof(nm),INT32);
/*retval=setFrames(tns);*/
retval=setTimer(FRAME_NUMBER,GET_FLAG);
n += sendData(file_des,&retval,sizeof(int64_t),INT64); n += sendData(file_des,&retval,sizeof(int64_t),INT64);
/*retval=setExposureTime(tns);*/ retval=setTimer(ACQUISITION_TIME,GET_FLAG);
n += sendData(file_des,&retval,sizeof(int64_t),INT64); n += sendData(file_des,&retval,sizeof(int64_t),INT64);
/*retval=setPeriod(tns);*/ retval=setTimer(FRAME_PERIOD,GET_FLAG);
n += sendData(file_des,&retval,sizeof(int64_t),INT64); n += sendData(file_des,&retval,sizeof(int64_t),INT64);
/*retval=setDelay(tns);*/ retval=setTimer(DELAY_AFTER_TRIGGER,GET_FLAG);
n += sendData(file_des,&retval,sizeof(int64_t),INT64); n += sendData(file_des,&retval,sizeof(int64_t),INT64);
/*retval=setGates(tns);*/ retval=setTimer(GATES_NUMBER,GET_FLAG);
n += sendData(file_des,&retval,sizeof(int64_t),INT64); n += sendData(file_des,&retval,sizeof(int64_t),INT64);
/*retval=setProbes(tns);*/ /* retval=setTimer(PROBES_NUMBER,GET_FLAG);
n += sendData(file_des,&retval,sizeof(int64_t),INT64); n += sendData(file_des,&retval,sizeof(int64_t),INT64);*/
/*retval=setTrains(tns);*/ retval=setTimer(CYCLES_NUMBER,GET_FLAG);
n += sendData(file_des,&retval,sizeof(int64_t),INT64); n += sendData(file_des,&retval,sizeof(int64_t),INT64);
if (lockStatus==0) { if (lockStatus==0) {
@ -401,7 +400,6 @@ int send_update(int file_des) {
return ret; return ret;
} }