Some debugging concerning getRunStatus

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@704 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
bergamaschi 2013-12-03 15:04:11 +00:00
parent 64616be52d
commit 0df206e340
7 changed files with 38 additions and 10 deletions

View File

@ -1510,7 +1510,7 @@ slsDetectorDefs::runStatus multiSlsDetector::getRunStatus() {
setErrorMask(getErrorMask()|(1<<0));
}
for (int i=0; i<thisMultiDetector->numberOfDetectors; i++) {
for (int i=1; i<thisMultiDetector->numberOfDetectors; i++) {
s1=detectors[i]->getRunStatus();
if(detectors[i]->getErrorMask())
setErrorMask(getErrorMask()|(1<<i));

View File

@ -1012,6 +1012,9 @@ u_int32_t runState(void) {
write_status_sm("Running");
else
write_status_sm("Stopped");
write_istatus_sm(s);
#endif
#ifdef VERBOSE
printf("status %08x\n",s);

View File

@ -1805,15 +1805,16 @@ int get_run_status(int file_des) {
enum runStatus s;
sprintf(mess,"getting run status\n");
#ifdef VERBOSE
printf("Getting status\n");
#endif
//#ifdef VERBOSE
printf("********************************* Getting status\n");
//#endif
retval= runState();
if (retval&0x8000)
if (retval&0x8000) {
s=ERROR;
else if (retval&0x00000001)
printf("********* Status error %08x\n",retval);
} else if (retval&0x00000001)
if (retval&0x00010000)
s=TRANSMITTING;
else
@ -1829,8 +1830,15 @@ int get_run_status(int file_des) {
if (ret!=OK) {
printf("get status failed\n");
} else if (differentClients)
ret=FORCE_UPDATE;
} //else if (differentClients)
//ret=FORCE_UPDATE;
//#ifdef VERBOSE
printf("%d %08x %d\n", ret, retval, s);
//#endif
n = sendDataOnly(file_des,&ret,sizeof(ret));
if (ret==FAIL) {

View File

@ -30,6 +30,13 @@ void write_status_sm(char *status) {
strcpy(stdata->status,status);
}
void write_istatus_sm(int i) {
stdata->istatus=i;
}
int read_istatus_sm() {
return stdata->istatus;
}
void write_stop_sm(int v) {
stdata->stop=v;
}

View File

@ -33,6 +33,7 @@
struct statusdata {
int runnumber;
int stop;
int istatus;
char status[20];
} ;
@ -44,4 +45,8 @@ void write_status_sm(char *status);
void write_stop_sm(int v);
void write_runnumber_sm(int v);
void write_istatus_sm(int v);
int read_istatus_sm();
#endif

View File

@ -3191,6 +3191,7 @@ slsDetectorDefs::runStatus slsDetector::getRunStatus(){
int fnum=F_GET_RUN_STATUS;
int ret=FAIL;
char mess[100];
strcpy(mess,"aaaaa");
runStatus retval=ERROR;
#ifdef VERBOSE
std::cout<< "Getting status "<< std::endl;
@ -3199,12 +3200,16 @@ slsDetectorDefs::runStatus slsDetector::getRunStatus(){
if (stopSocket) {
if (stopSocket->Connect()>=0) {
stopSocket->SendDataOnly(&fnum,sizeof(fnum));
stopSocket->ReceiveDataOnly(&ret,sizeof(ret));
cout << stopSocket->ReceiveDataOnly(&ret,sizeof(ret)) ;
cout << "________:::____________" << ret << endl;
if (ret==FAIL) {
stopSocket->ReceiveDataOnly(mess,sizeof(mess));
std::cout<< "Detector returned error: " << mess << std::endl;
} else {
stopSocket->ReceiveDataOnly(&retval,sizeof(retval));
stopSocket->ReceiveDataOnly(&retval,sizeof(retval));
cout << "____________________" << retval << endl;
}
stopSocket->Disconnect();
}