mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-19 00:07:13 +02:00
transmission delay added
This commit is contained in:
@ -5366,8 +5366,13 @@ char* slsDetector::setNetworkParameter(networkParameter index, string value) {
|
||||
if(thisDetector->myDetectorType == EIGER)
|
||||
return getReceiverUDPPort2();
|
||||
return getReceiverUDPPort();
|
||||
case DETECTOR_TXN_DELAY_LEFT:
|
||||
case DETECTOR_TXN_DELAY_RIGHT:
|
||||
case DETECTOR_TXN_DELAY_FRAME:
|
||||
sscanf(value.c_str(),"%d",&i);
|
||||
return setTransmissionDelay(index, i);
|
||||
default:
|
||||
return ("unknown network parameter");
|
||||
return (char*)("unknown network parameter");
|
||||
}
|
||||
|
||||
}
|
||||
@ -5398,15 +5403,16 @@ char* slsDetector::getNetworkParameter(networkParameter index) {
|
||||
case RECEIVER_UDP_PORT2:
|
||||
return getReceiverUDPPort2();
|
||||
break;
|
||||
case DETECTOR_TXN_DELAY_LEFT:
|
||||
case DETECTOR_TXN_DELAY_RIGHT:
|
||||
case DETECTOR_TXN_DELAY_FRAME:
|
||||
return setTransmissionDelay(index, -1);
|
||||
default:
|
||||
return ("unknown network parameter");
|
||||
return (char*)("unknown network parameter");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
char* slsDetector::setDetectorMAC(string detectorMAC){
|
||||
if(detectorMAC.length()==17){
|
||||
if((detectorMAC[2]==':')&&(detectorMAC[5]==':')&&(detectorMAC[8]==':')&&
|
||||
@ -5587,6 +5593,43 @@ int slsDetector::setReceiverUDPPort2(int udpport){
|
||||
}
|
||||
|
||||
|
||||
char* slsDetector::setTransmissionDelay(networkParameter index, int delay){
|
||||
int fnum = F_SET_TRANSMISSION_DELAY;
|
||||
char* cretval = new char[MAX_STR_LENGTH];
|
||||
int ret = FAIL;
|
||||
int retval = -1;
|
||||
char mess[MAX_STR_LENGTH]="";
|
||||
|
||||
#ifdef VERBOSE
|
||||
std::cout<< "Setting Transmission delay of mode "<< index << " to " << delay << std::endl;
|
||||
#endif
|
||||
if (thisDetector->onlineFlag==ONLINE_FLAG) {
|
||||
if (connectControl() == OK){
|
||||
controlSocket->SendDataOnly(&fnum,sizeof(fnum));
|
||||
controlSocket->SendDataOnly(&index,sizeof(index));
|
||||
controlSocket->SendDataOnly(&delay,sizeof(delay));
|
||||
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||
if (ret==FAIL) {
|
||||
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||
std::cout<< "Detector returned error: " << mess << std::endl;
|
||||
setErrorMask((getErrorMask())|(TRANSMISSION_DELAY));
|
||||
} else
|
||||
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
||||
disconnectControl();
|
||||
if (ret==FORCE_UPDATE)
|
||||
updateDetector();
|
||||
}
|
||||
}
|
||||
#ifdef VERBOSE
|
||||
std::cout<< "Speed set to "<< retval << std::endl;
|
||||
#endif
|
||||
|
||||
|
||||
sprintf(cretval,"%d",retval);
|
||||
return cretval;
|
||||
}
|
||||
|
||||
|
||||
int slsDetector::setUDPConnection(){
|
||||
|
||||
int ret = FAIL;
|
||||
|
Reference in New Issue
Block a user