changing the mess return from acq finished eiger server:trial for 9m lag bug

This commit is contained in:
Dhanya Maliakal 2016-10-27 09:20:21 +02:00
parent d38989b340
commit 391ad67e8c
4 changed files with 31 additions and 33 deletions

View File

@ -858,8 +858,7 @@ enum runStatus getRunStatus(){
char *readFrame(int *ret, char *mess){ void readFrame(int *ret, char *mess){
//if(master){
if(!Feb_Control_WaitForFinishedFlag(5000)) if(!Feb_Control_WaitForFinishedFlag(5000))
cprintf(RED,"Error: Waiting for finished flag\n"); cprintf(RED,"Error: Waiting for finished flag\n");
cprintf(GREEN,"Acquisition finished***\n"); cprintf(GREEN,"Acquisition finished***\n");
@ -867,16 +866,14 @@ char *readFrame(int *ret, char *mess){
if(eiger_storeinmem){ if(eiger_storeinmem){
printf("requesting images after storing in memory\n"); printf("requesting images after storing in memory\n");
if(startReadOut() == FAIL){ if(startReadOut() == FAIL){
cprintf(RED, "Could not read out images\n"); strcpy(mess,"Could not execute read image requests\n");
*ret = (int)FAIL; *ret = (int)FAIL;
return NULL; return;
} }
} }
//usleep(1000000);
printf("*****Done Waiting...\n"); printf("*****Done Waiting...\n");
//}
*ret = (int)FINISHED; *ret = (int)FINISHED;
return NULL; strcpy(mess,"acquisition successfully finished\n");
} }

View File

@ -92,7 +92,7 @@ int startStateMachine();
int stopStateMachine(); int stopStateMachine();
int startReadOut(); int startReadOut();
enum runStatus getRunStatus(); enum runStatus getRunStatus();
char *readFrame(int *ret, char *mess); void readFrame(int *ret, char *mess);
int64_t setTimer(enum timerIndex ind, int64_t val); int64_t setTimer(enum timerIndex ind, int64_t val);

View File

@ -36,7 +36,6 @@ extern enum detectorSettings thisSettings;
//global variables for optimized readout //global variables for optimized readout
char mess[MAX_STR_LENGTH]; char mess[MAX_STR_LENGTH];
char *dataretval=NULL;
int dataret; int dataret;
//extern //extern
int dataBytes = 10; int dataBytes = 10;
@ -2527,9 +2526,8 @@ int start_and_read_all(int file_des) {
int read_frame(int file_des) { int read_frame(int file_des) {
dataret=OK;
int dataret1; int dataret1;
if (differentClients==1 && lockStatus==1) { if (differentClients==1 && lockStatus==1) {
dataret=FAIL; dataret=FAIL;
sprintf(mess,"Detector locked by %s\n",lastClientIP); sprintf(mess,"Detector locked by %s\n",lastClientIP);
@ -2538,24 +2536,27 @@ int read_frame(int file_des) {
dataret1 = dataret; dataret1 = dataret;
sendData(file_des,&dataret1,sizeof(dataret1),INT32); sendData(file_des,&dataret1,sizeof(dataret1),INT32);
sendData(file_des,mess,sizeof(mess),OTHER); sendData(file_des,mess,sizeof(mess),OTHER);
#ifdef VERBOSE
printf("dataret %d\n",dataret); printf("dataret %d\n",dataret);
#endif
return dataret; return dataret;
} }
#ifdef SLS_DETECTOR_FUNCTION_LIST #ifdef SLS_DETECTOR_FUNCTION_LIST
dataretval=readFrame(&dataret, mess); readFrame(&dataret, mess);
#endif #endif
if (differentClients)
dataret=FORCE_UPDATE;
//dataret could be swapped during sendData //dataret could be swapped during sendData
dataret1 = dataret; dataret1 = dataret;
sendData(file_des,&dataret1,sizeof(dataret1),INT32); sendData(file_des,&dataret1,sizeof(dataret1),INT32);
//always fail or finished
sendData(file_des,mess,sizeof(mess),OTHER);
if(dataret == FAIL) if(dataret == FAIL)
sendData(file_des,mess,sizeof(mess),OTHER);//sizeof(mess));//sizeof(mess)); cprintf(RED,"%s\n",mess);
else if(dataret==OK){printf("shouldnt be sending anything but i am\n"); else
sendData(file_des,dataretval,dataBytes,OTHER);} cprintf(GREEN,"%s",mess);
printf("dataret %d\n",dataret);
return dataret; return dataret;
} }