transmission delay added

This commit is contained in:
Dhanya Maliakal
2016-08-03 17:03:37 +02:00
parent 1db5ef4fd4
commit d28d737fb9
15 changed files with 243 additions and 52 deletions

View File

@ -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;