mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-20 08:38:00 +02:00
Merge branch 'developer' of git.psi.ch:sls_detectors_software/sls_detector_software into developer
This commit is contained in:
@ -144,7 +144,9 @@ int slsDetector::freeSharedMemory() {
|
||||
perror("shmdt failed\n");
|
||||
return FAIL;
|
||||
}
|
||||
#ifdef VERBOSE
|
||||
printf("Shared memory %d detached\n", shmId);
|
||||
#endif
|
||||
// remove shared memory
|
||||
if (shmctl(shmId, IPC_RMID, 0) == -1) {
|
||||
perror("shmctl(IPC_RMID) failed\n");
|
||||
@ -247,7 +249,9 @@ slsDetector::slsDetector(int pos, detectorType type, int id, multiSlsDetector *p
|
||||
|
||||
/**Initializes the detector stucture \sa initializeDetectorSize
|
||||
*/
|
||||
#ifdef VERBOSE
|
||||
cout << "init det size"<< endl;
|
||||
#endif
|
||||
initializeDetectorSize(type);
|
||||
|
||||
|
||||
@ -261,9 +265,11 @@ slsDetector::~slsDetector(){
|
||||
if (shmdt(thisDetector) == -1) {
|
||||
perror("shmdt failed\n");
|
||||
printf("Could not detach shared memory %d\n", shmId);
|
||||
} else
|
||||
}
|
||||
#ifdef VERBOSE
|
||||
else
|
||||
printf("Shared memory %d detached\n", shmId);
|
||||
|
||||
#endif
|
||||
delete thisReceiver;
|
||||
};
|
||||
|
||||
@ -539,14 +545,19 @@ int slsDetector::initializeDetectorSize(detectorType type) {
|
||||
/** set receiver udp port for Eiger */
|
||||
thisDetector->receiverUDPPort2=DEFAULT_UDP_PORTNO+1;
|
||||
/** set receiver ip address/hostname */
|
||||
memset(thisDetector->receiver_hostname,0,MAX_STR_LENGTH);
|
||||
strcpy(thisDetector->receiver_hostname,"none");
|
||||
/** set receiver udp ip address */
|
||||
memset(thisDetector->receiverUDPIP,0,MAX_STR_LENGTH);
|
||||
strcpy(thisDetector->receiverUDPIP,"none");
|
||||
/** set receiver udp mac address */
|
||||
memset(thisDetector->receiverUDPMAC,0,MAX_STR_LENGTH);
|
||||
strcpy(thisDetector->receiverUDPMAC,"none");
|
||||
/** set detector mac address */
|
||||
memset(thisDetector->detectorMAC,0,MAX_STR_LENGTH);
|
||||
strcpy(thisDetector->detectorMAC,DEFAULT_DET_MAC);
|
||||
/** set detector ip address */
|
||||
memset(thisDetector->detectorIP,0,MAX_STR_LENGTH);
|
||||
strcpy(thisDetector->detectorIP,DEFAULT_DET_IP);
|
||||
|
||||
/** sets onlineFlag to OFFLINE_FLAG */
|
||||
@ -5814,7 +5825,7 @@ int slsDetector::exitServer(){
|
||||
};
|
||||
|
||||
|
||||
char* slsDetector::setNetworkParameter(networkParameter index, string value) {
|
||||
string slsDetector::setNetworkParameter(networkParameter index, string value) {
|
||||
int i;
|
||||
|
||||
switch (index) {
|
||||
@ -5855,7 +5866,7 @@ char* slsDetector::setNetworkParameter(networkParameter index, string value) {
|
||||
|
||||
|
||||
|
||||
char* slsDetector::getNetworkParameter(networkParameter index) {
|
||||
string slsDetector::getNetworkParameter(networkParameter index) {
|
||||
|
||||
switch (index) {
|
||||
case DETECTOR_MAC:
|
||||
@ -5890,13 +5901,17 @@ char* slsDetector::getNetworkParameter(networkParameter index) {
|
||||
|
||||
}
|
||||
|
||||
char* slsDetector::setDetectorMAC(string detectorMAC){
|
||||
string slsDetector::setDetectorMAC(string detectorMAC){
|
||||
if(detectorMAC.length()==17){
|
||||
if((detectorMAC[2]==':')&&(detectorMAC[5]==':')&&(detectorMAC[8]==':')&&
|
||||
(detectorMAC[11]==':')&&(detectorMAC[14]==':')){
|
||||
strcpy(thisDetector->detectorMAC,detectorMAC.c_str());
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none"))
|
||||
#ifdef VERBOSE
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#else
|
||||
;
|
||||
#endif
|
||||
else if(setUDPConnection()==FAIL)
|
||||
std::cout<< "Warning: UDP connection set up failed" << std::endl;
|
||||
}else{
|
||||
@ -5909,12 +5924,12 @@ char* slsDetector::setDetectorMAC(string detectorMAC){
|
||||
std::cout << "Warning: server MAC Address should be in xx:xx:xx:xx:xx:xx format" << std::endl;
|
||||
}
|
||||
|
||||
return thisDetector->detectorMAC;
|
||||
return string(thisDetector->detectorMAC);
|
||||
};
|
||||
|
||||
|
||||
|
||||
char* slsDetector::setDetectorIP(string detectorIP){
|
||||
string slsDetector::setDetectorIP(string detectorIP){
|
||||
struct sockaddr_in sa;
|
||||
//taking function arguments into consideration
|
||||
if(detectorIP.length()){
|
||||
@ -5923,7 +5938,11 @@ char* slsDetector::setDetectorIP(string detectorIP){
|
||||
if(result!=0){
|
||||
strcpy(thisDetector->detectorIP,detectorIP.c_str());
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none"))
|
||||
#ifdef VERBOSE
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#else
|
||||
;
|
||||
#endif
|
||||
else if(setUDPConnection()==FAIL)
|
||||
std::cout<< "Warning: UDP connection set up failed" << std::endl;
|
||||
}else{
|
||||
@ -5932,12 +5951,12 @@ char* slsDetector::setDetectorIP(string detectorIP){
|
||||
}
|
||||
}
|
||||
}
|
||||
return thisDetector->detectorIP;
|
||||
return string(thisDetector->detectorIP);
|
||||
}
|
||||
|
||||
|
||||
|
||||
char* slsDetector::setReceiver(string receiverIP){
|
||||
string slsDetector::setReceiver(string receiverIP){
|
||||
if(getRunStatus()==RUNNING){
|
||||
cprintf(RED,"Acquisition already running, Stopping it.\n");
|
||||
stopAcquisition();
|
||||
@ -6003,16 +6022,18 @@ char* slsDetector::setReceiver(string receiverIP){
|
||||
setUDPConnection();
|
||||
if(thisDetector->myDetectorType == EIGER)
|
||||
enableTenGigabitEthernet(thisDetector->tenGigaEnable);
|
||||
//datastreamenable
|
||||
//fifodepth
|
||||
}
|
||||
}
|
||||
|
||||
return thisDetector->receiver_hostname;
|
||||
return string(thisDetector->receiver_hostname);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
char* slsDetector::setReceiverUDPIP(string udpip){
|
||||
string slsDetector::setReceiverUDPIP(string udpip){
|
||||
struct sockaddr_in sa;
|
||||
//taking function arguments into consideration
|
||||
if(udpip.length()){
|
||||
@ -6023,21 +6044,26 @@ char* slsDetector::setReceiverUDPIP(string udpip){
|
||||
std::cout << "Warning: Receiver UDP IP Address should be VALID and in xxx.xxx.xxx.xxx format" << std::endl;
|
||||
}else{
|
||||
strcpy(thisDetector->receiverUDPIP,udpip.c_str());
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none"))
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none")) {
|
||||
#ifdef VERBOSE
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#else
|
||||
;
|
||||
#endif
|
||||
}
|
||||
else if(setUDPConnection()==FAIL){
|
||||
std::cout<< "Warning: UDP connection set up failed" << std::endl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return thisDetector->receiverUDPIP;
|
||||
return string(thisDetector->receiverUDPIP);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
char* slsDetector::setReceiverUDPMAC(string udpmac){
|
||||
string slsDetector::setReceiverUDPMAC(string udpmac){
|
||||
if(udpmac.length()!=17){
|
||||
setErrorMask((getErrorMask())|(COULDNOT_SET_NETWORK_PARAMETER));
|
||||
std::cout << "Warning: receiver udp mac address should be in xx:xx:xx:xx:xx:xx format" << std::endl;
|
||||
@ -6047,7 +6073,11 @@ char* slsDetector::setReceiverUDPMAC(string udpmac){
|
||||
(udpmac[11]==':')&&(udpmac[14]==':')){
|
||||
strcpy(thisDetector->receiverUDPMAC,udpmac.c_str());
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none"))
|
||||
#ifdef VERBOSE
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#else
|
||||
;
|
||||
#endif
|
||||
else if(setUDPConnection()==FAIL){
|
||||
std::cout<< "Warning: UDP connection set up failed" << std::endl;
|
||||
}
|
||||
@ -6058,7 +6088,7 @@ char* slsDetector::setReceiverUDPMAC(string udpmac){
|
||||
}
|
||||
|
||||
|
||||
return thisDetector->receiverUDPMAC;
|
||||
return string(thisDetector->receiverUDPMAC);
|
||||
}
|
||||
|
||||
|
||||
@ -6066,7 +6096,11 @@ char* slsDetector::setReceiverUDPMAC(string udpmac){
|
||||
int slsDetector::setReceiverUDPPort(int udpport){
|
||||
thisDetector->receiverUDPPort = udpport;
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none"))
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#ifdef VERBOSE
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#else
|
||||
;
|
||||
#endif
|
||||
else if(setUDPConnection()==FAIL){
|
||||
std::cout<< "Warning: UDP connection set up failed" << std::endl;
|
||||
}
|
||||
@ -6076,7 +6110,11 @@ int slsDetector::setReceiverUDPPort(int udpport){
|
||||
int slsDetector::setReceiverUDPPort2(int udpport){
|
||||
thisDetector->receiverUDPPort2 = udpport;
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none"))
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#ifdef VERBOSE
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#else
|
||||
;
|
||||
#endif
|
||||
else if(setUDPConnection()==FAIL){
|
||||
std::cout<< "Warning: UDP connection set up failed" << std::endl;
|
||||
}
|
||||
@ -6084,9 +6122,8 @@ int slsDetector::setReceiverUDPPort2(int udpport){
|
||||
}
|
||||
|
||||
|
||||
char* slsDetector::setDetectorNetworkParameter(networkParameter index, int delay){
|
||||
string slsDetector::setDetectorNetworkParameter(networkParameter index, int delay){
|
||||
int fnum = F_SET_NETWORK_PARAMETER;
|
||||
char* cretval = new char[MAX_STR_LENGTH];
|
||||
int ret = FAIL;
|
||||
int retval = -1;
|
||||
char mess[MAX_STR_LENGTH]="";
|
||||
@ -6115,9 +6152,10 @@ char* slsDetector::setDetectorNetworkParameter(networkParameter index, int delay
|
||||
std::cout<< "Speed set to "<< retval << std::endl;
|
||||
#endif
|
||||
|
||||
|
||||
sprintf(cretval,"%d",retval);
|
||||
return cretval;
|
||||
ostringstream ss;
|
||||
ss << retval;
|
||||
string s = ss.str();
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
@ -6130,7 +6168,9 @@ int slsDetector::setUDPConnection(){
|
||||
|
||||
//called before set up
|
||||
if(!strcmp(thisDetector->receiver_hostname,"none")){
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#ifdef VERBOSE
|
||||
std::cout << "Warning: Receiver hostname not set yet." << endl;
|
||||
#endif
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
@ -6188,9 +6228,9 @@ int slsDetector::setUDPConnection(){
|
||||
}
|
||||
}else
|
||||
ret=FAIL;
|
||||
|
||||
#ifdef VERBOSE
|
||||
printReceiverConfiguration();
|
||||
|
||||
#endif
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -6610,12 +6650,10 @@ int slsDetector::printReceiverConfiguration(){
|
||||
std::cout << "Receiver Hostname:\t" << getNetworkParameter(RECEIVER_HOSTNAME) << std::endl;
|
||||
std::cout << "Receiver UDP IP:\t" << getNetworkParameter(RECEIVER_UDP_IP) << std::endl;
|
||||
std::cout << "Receiver UDP MAC:\t" << getNetworkParameter(RECEIVER_UDP_MAC) << std::endl;
|
||||
|
||||
|
||||
std::cout << "Receiver UDP Port:\t" << getNetworkParameter(RECEIVER_UDP_PORT) << std::endl;
|
||||
if(thisDetector->myDetectorType == EIGER)
|
||||
std::cout << "Receiver UDP Port2:\t" << getNetworkParameter(RECEIVER_UDP_PORT2) << std::endl;
|
||||
|
||||
if(thisDetector->myDetectorType == EIGER)
|
||||
std::cout << "Receiver UDP Port2:\t" << getNetworkParameter(RECEIVER_UDP_PORT2) << std::endl;
|
||||
std::cout << std::endl;
|
||||
|
||||
return OK;
|
||||
|
Reference in New Issue
Block a user