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)); setErrorMask(getErrorMask()|(1<<0));
} }
for (int i=0; i<thisMultiDetector->numberOfDetectors; i++) { for (int i=1; i<thisMultiDetector->numberOfDetectors; i++) {
s1=detectors[i]->getRunStatus(); s1=detectors[i]->getRunStatus();
if(detectors[i]->getErrorMask()) if(detectors[i]->getErrorMask())
setErrorMask(getErrorMask()|(1<<i)); setErrorMask(getErrorMask()|(1<<i));

View File

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

View File

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

View File

@ -30,6 +30,13 @@ void write_status_sm(char *status) {
strcpy(stdata->status,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) { void write_stop_sm(int v) {
stdata->stop=v; stdata->stop=v;
} }

View File

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

View File

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