mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-22 14:38:14 +02:00
added a new function checkOnline to check individually if det is connected
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@243 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
parent
6902585e24
commit
ef8455ced6
@ -884,6 +884,26 @@ int multiSlsDetector::setOnline(int off) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int multiSlsDetector::checkOnline() {
|
||||||
|
int ret1=-100,ret;
|
||||||
|
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; idet++) {
|
||||||
|
if (detectors[idet]) {
|
||||||
|
ret=detectors[idet]->checkOnline();
|
||||||
|
cout<<"ret:"<<ret<<endl;
|
||||||
|
if (ret1==-100)
|
||||||
|
ret1=ret;
|
||||||
|
else if (ret!=ret1)
|
||||||
|
ret1=-1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret1;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int multiSlsDetector::exists() {
|
int multiSlsDetector::exists() {
|
||||||
return thisMultiDetector->alreadyExisting;
|
return thisMultiDetector->alreadyExisting;
|
||||||
}
|
}
|
||||||
@ -891,8 +911,6 @@ int multiSlsDetector::exists() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Initialization functions
|
// Initialization functions
|
||||||
|
|
||||||
|
|
||||||
@ -1941,15 +1959,15 @@ double multiSlsDetector::getRateCorrectionTau(){
|
|||||||
ret1=ret;
|
ret1=ret;
|
||||||
else if (ret!=ret1)
|
else if (ret!=ret1)
|
||||||
ret1=-1;
|
ret1=-1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
std::cout<< "Rate correction is disabled " << std::endl;
|
std::cout<< "Rate correction is disabled " << std::endl;
|
||||||
#endif
|
#endif
|
||||||
ret1=0;
|
ret1=0;
|
||||||
}
|
}
|
||||||
return ret1;
|
return ret1;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -356,6 +356,13 @@ class multiSlsDetector : public slsDetectorUtils {
|
|||||||
\returns online/offline status
|
\returns online/offline status
|
||||||
*/
|
*/
|
||||||
int setOnline(int const online=GET_ONLINE_FLAG);
|
int setOnline(int const online=GET_ONLINE_FLAG);
|
||||||
|
|
||||||
|
/** checks if each of the detectors are online
|
||||||
|
\returns online/offline status and -1 if any of the detector's online status is different from the other
|
||||||
|
*/
|
||||||
|
int checkOnline();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\returns 1 if the detector structure has already be initlialized with the given id and belongs to this multiDetector instance, 0 otherwise */
|
\returns 1 if the detector structure has already be initlialized with the given id and belongs to this multiDetector instance, 0 otherwise */
|
||||||
int exists();
|
int exists();
|
||||||
|
@ -908,6 +908,31 @@ int slsDetector::setOnline(int off) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int slsDetector::checkOnline() {
|
||||||
|
int retval=ONLINE_FLAG;
|
||||||
|
if(!controlSocket)
|
||||||
|
controlSocket= new MySocketTCP(thisDetector->hostname, thisDetector->controlPort);
|
||||||
|
if (controlSocket->Connect()<0) {
|
||||||
|
controlSocket->SetTimeOut(5);
|
||||||
|
thisDetector->onlineFlag=OFFLINE_FLAG;
|
||||||
|
delete controlSocket;
|
||||||
|
controlSocket=NULL;
|
||||||
|
retval=OFFLINE_FLAG;
|
||||||
|
#ifdef VERBOSE
|
||||||
|
std::cout<< "offline!" << std::endl;
|
||||||
|
#endif
|
||||||
|
} else {
|
||||||
|
thisDetector->onlineFlag=ONLINE_FLAG;
|
||||||
|
controlSocket->SetTimeOut(100);
|
||||||
|
controlSocket->Disconnect();
|
||||||
|
#ifdef VERBOSE
|
||||||
|
std::cout<< "online!" << std::endl;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
configure the socket communication and check that the server exists
|
configure the socket communication and check that the server exists
|
||||||
|
@ -284,6 +284,8 @@ typedef struct sharedSlsDetector {
|
|||||||
|
|
||||||
int setOnline(int const online=GET_ONLINE_FLAG);
|
int setOnline(int const online=GET_ONLINE_FLAG);
|
||||||
|
|
||||||
|
int checkOnline();
|
||||||
|
|
||||||
/** returns if the detector already existed
|
/** returns if the detector already existed
|
||||||
\returns 1 if the detector structure has already be initlialized, 0 otherwise */
|
\returns 1 if the detector structure has already be initlialized, 0 otherwise */
|
||||||
int exists() {return thisDetector->alreadyExisting;};
|
int exists() {return thisDetector->alreadyExisting;};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user