changed transmission delay commands to go through network parameters and included 10g flow control

This commit is contained in:
Dhanya Maliakal
2016-08-04 17:21:16 +02:00
parent 1e30a6a16a
commit 29ba1f4042
15 changed files with 81 additions and 53 deletions

View File

@ -5369,8 +5369,9 @@ char* slsDetector::setNetworkParameter(networkParameter index, string value) {
case DETECTOR_TXN_DELAY_LEFT:
case DETECTOR_TXN_DELAY_RIGHT:
case DETECTOR_TXN_DELAY_FRAME:
case FLOW_CONTROL_10G:
sscanf(value.c_str(),"%d",&i);
return setTransmissionDelay(index, i);
return setDetectorNetworkParameter(index, i);
default:
return (char*)("unknown network parameter");
}
@ -5406,7 +5407,8 @@ char* slsDetector::getNetworkParameter(networkParameter index) {
case DETECTOR_TXN_DELAY_LEFT:
case DETECTOR_TXN_DELAY_RIGHT:
case DETECTOR_TXN_DELAY_FRAME:
return setTransmissionDelay(index, -1);
case FLOW_CONTROL_10G:
return setDetectorNetworkParameter(index, -1);
default:
return (char*)("unknown network parameter");
}
@ -5593,8 +5595,8 @@ int slsDetector::setReceiverUDPPort2(int udpport){
}
char* slsDetector::setTransmissionDelay(networkParameter index, int delay){
int fnum = F_SET_TRANSMISSION_DELAY;
char* 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;
@ -5612,7 +5614,7 @@ char* slsDetector::setTransmissionDelay(networkParameter index, int delay){
if (ret==FAIL) {
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
std::cout<< "Detector returned error: " << mess << std::endl;
setErrorMask((getErrorMask())|(TRANSMISSION_DELAY));
setErrorMask((getErrorMask())|(DETECTOR_NETWORK_PARAMETER));
} else
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
disconnectControl();

View File

@ -1674,7 +1674,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
/** sets the receiver udp port2 for Eiger \sa sharedSlsDetector */
int setReceiverUDPPort2(int udpport);
/** sets the transmission delay for left or right port or for an entire frame*/
char* setTransmissionDelay(networkParameter index, int delay);
char* setDetectorNetworkParameter(networkParameter index, int delay);
/** Sets the read receiver frequency
if Receiver read upon gui request, readRxrFrequency=0,

View File

@ -375,6 +375,10 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdNetworkParameter;
i++;
descrToFuncMap[i].m_pFuncName="flowcontrol_10g"; //
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdNetworkParameter;
i++;
descrToFuncMap[i].m_pFuncName="configuremac"; //
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdConfigureMac;
i++;
@ -2709,7 +2713,13 @@ string slsDetectorCommand::cmdNetworkParameter(int narg, char *args[], int actio
if (!(sscanf(args[1],"%d",&i)))
return ("cannot parse argument") + string(args[1]);
}
} else return ("unknown network parameter")+cmd;
} else if (cmd=="flowcontrol_10g") {
t=FLOW_CONTROL_10G;
if (action==PUT_ACTION){
if (!(sscanf(args[1],"%d",&i)))
return ("cannot parse argument") + string(args[1]);
}
}else return ("unknown network parameter")+cmd;
if (action==PUT_ACTION)
myDet->setNetworkParameter(t, args[1]);
@ -2734,6 +2744,7 @@ string slsDetectorCommand::helpNetworkParameter(int narg, char *args[], int acti
os << "txndelay_left port \n sets detector transmission delay of the left port"<< std::endl;
os << "txndelay_right port \n sets detector transmission delay of the right port"<< std::endl;
os << "txndelay_frame port \n sets detector transmission delay of the entire frame"<< std::endl;
os << "flowcontrol_10g port \n sets flow control for 10g for eiger"<< std::endl;
}
if (action==GET_ACTION || action==HELP_ACTION) {
os << "detectormac \n gets detector mac "<< std::endl;
@ -2745,6 +2756,7 @@ string slsDetectorCommand::helpNetworkParameter(int narg, char *args[], int acti
os << "txndelay_left \n gets detector transmission delay of the left port"<< std::endl;
os << "txndelay_right \n gets detector transmission delay of the right port"<< std::endl;
os << "txndelay_frame \n gets detector transmission delay of the entire frame"<< std::endl;
os << "flowcontrol_10g \n sets flow control for 10g for eiger"<< std::endl;
}
return os.str();