added silent mode in receiver during real time acquisition, doesnt print packet loss regularly or file name created each time

This commit is contained in:
Dhanya Maliakal
2017-09-27 10:09:02 +02:00
parent 7134d0d0ed
commit af98d2bb53
7 changed files with 81 additions and 0 deletions

View File

@ -81,6 +81,7 @@ using namespace std;
#define THRESHOLD_NOT_SET 0x0000000040000000ULL #define THRESHOLD_NOT_SET 0x0000000040000000ULL
#define RECEIVER_FILE_FORMAT 0x0000000080000000ULL #define RECEIVER_FILE_FORMAT 0x0000000080000000ULL
#define RECEIVER_SUBF_TIME_NOT_SET 0x0000000100000000ULL #define RECEIVER_SUBF_TIME_NOT_SET 0x0000000100000000ULL
#define RECEIVER_SILENT_MODE_NOT_SET 0x0000000200000000ULL
// 0x0000000FFFFFFFFFULL // 0x0000000FFFFFFFFFULL
/** @short class returning all error messages for error mask */ /** @short class returning all error messages for error mask */
@ -262,6 +263,8 @@ public:
if(slsErrorMask&RECEIVER_SUBF_TIME_NOT_SET) if(slsErrorMask&RECEIVER_SUBF_TIME_NOT_SET)
retval.append("Could not set sub exposure time in receiver.\n"); retval.append("Could not set sub exposure time in receiver.\n");
if(slsErrorMask&RECEIVER_SILENT_MODE_NOT_SET)
retval.append("Could not set silent mode in receiver.\n");
//------------------------------------------------------ length of message //------------------------------------------------------ length of message

View File

@ -6266,6 +6266,20 @@ int multiSlsDetector::setReceiverFifoDepth(int i){
} }
int multiSlsDetector::setReceiverSilentMode(int i){
int ret=-100,ret1;
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; ++idet)
if (detectors[idet]){
ret1=detectors[idet]->setReceiverSilentMode(i);
if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet));
if(ret==-100)
ret=ret1;
else if (ret!=ret1)
ret=-1;
}
return ret;
}

View File

@ -1374,6 +1374,12 @@ class multiSlsDetector : public slsDetectorUtils {
*/ */
int setReceiverFifoDepth(int i = -1); int setReceiverFifoDepth(int i = -1);
/** set/get receiver silent mode
* @param i is -1 to get, 0 unsets silent mode, 1 sets silent mode
/returns the receiver silent mode enable
*/
int setReceiverSilentMode(int i = -1);
/******** CTB funcs */ /******** CTB funcs */

View File

@ -8730,6 +8730,29 @@ int slsDetector::setReceiverFifoDepth(int i){
int slsDetector::setReceiverSilentMode(int i){
int fnum=F_SET_RECEIVER_SILENT_MODE;
int ret = FAIL;
int retval=-1;
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
#ifdef VERBOSE
if(i ==-1)
std::cout<< "Getting Receiver Silent Mode" << endl;
else
std::cout<< "Setting Receiver Silent Mode to " << i << endl;
#endif
if (connectData() == OK){
ret=thisReceiver->sendInt(fnum,retval,i);
disconnectData();
}
if(ret==FAIL)
setErrorMask((getErrorMask())|(RECEIVER_SILENT_MODE_NOT_SET));
}
return retval;
}
/******** CTB funcs */ /******** CTB funcs */

View File

@ -1812,6 +1812,12 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
*/ */
int setReceiverFifoDepth(int i = -1); int setReceiverFifoDepth(int i = -1);
/** set/get receiver silent mode
* @param i is -1 to get, 0 unsets silent mode, 1 sets silent mode
/returns the receiver silent mode enable
*/
int setReceiverSilentMode(int i = -1);
/******** CTB funcs */ /******** CTB funcs */
/** opens pattern file and sends pattern to CTB /** opens pattern file and sends pattern to CTB

View File

@ -2033,6 +2033,14 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) {
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdReceiver; descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdReceiver;
++i; ++i;
/*! \page receiver
- <b>r_silent [i]</b> sets/gets receiver in silent mode, ie. it will not print anything during real time acquisition. 1 sets, 0 unsets. \c Returns \c (int)
*/
descrToFuncMap[i].m_pFuncName="r_silent"; //
descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdReceiver;
++i;
/* pattern generator */ /* pattern generator */
@ -5983,6 +5991,19 @@ string slsDetectorCommand::cmdReceiver(int narg, char *args[], int action) {
} }
else if(cmd=="r_silent"){
if (action==PUT_ACTION){
if (!sscanf(args[1],"%d",&ival))
return string("Could not scan r_online input ")+string(args[1]);
if(ival>=0)
sprintf(answer,"%d",myDet->setReceiverSilentMode(ival));
}else
sprintf(answer,"%d",myDet->setReceiverSilentMode());
return string(answer);
}
return string("could not decode command"); return string("could not decode command");
} }
@ -5998,6 +6019,7 @@ string slsDetectorCommand::helpReceiver(int narg, char *args[], int action) {
os << "r_readfreq \t sets the gui read frequency of the receiver, 0 if gui requests frame, >0 if receiver sends every nth frame to gui" << std::endl; os << "r_readfreq \t sets the gui read frequency of the receiver, 0 if gui requests frame, >0 if receiver sends every nth frame to gui" << std::endl;
os << "tengiga \t sets system to be configure for 10Gbe if set to 1, else 1Gbe if set to 0" << std::endl; os << "tengiga \t sets system to be configure for 10Gbe if set to 1, else 1Gbe if set to 0" << std::endl;
os << "rx_fifodepth [val]\t sets receiver fifo depth to val" << std::endl; os << "rx_fifodepth [val]\t sets receiver fifo depth to val" << std::endl;
os << "r_silent [i]\t sets receiver in silent mode, ie. it will not print anything during real time acquisition. 1 sets, 0 unsets." << std::endl;
} }
if (action==GET_ACTION || action==HELP_ACTION){ if (action==GET_ACTION || action==HELP_ACTION){
os << "receiver \t returns the status of receiver - can be running or idle" << std::endl; os << "receiver \t returns the status of receiver - can be running or idle" << std::endl;
@ -6006,6 +6028,7 @@ string slsDetectorCommand::helpReceiver(int narg, char *args[], int action) {
os << "r_readfreq \t returns the gui read frequency of the receiver" << std::endl; os << "r_readfreq \t returns the gui read frequency of the receiver" << std::endl;
os << "tengiga \t returns 1 if the system is configured for 10Gbe else 0 for 1Gbe" << std::endl; os << "tengiga \t returns 1 if the system is configured for 10Gbe else 0 for 1Gbe" << std::endl;
os << "rx_fifodepth \t returns receiver fifo depth" << std::endl; os << "rx_fifodepth \t returns receiver fifo depth" << std::endl;
os << "r_silent \t returns receiver silent mode enable. 1 is silent, 0 not silent." << std::endl;
} }
return os.str(); return os.str();

View File

@ -774,6 +774,12 @@ virtual int enableTenGigabitEthernet(int i = -1)=0;
*/ */
virtual int setReceiverFifoDepth(int i = -1)=0; virtual int setReceiverFifoDepth(int i = -1)=0;
/** set/get receiver silent mode
* @param i is -1 to get, 0 unsets silent mode, 1 sets silent mode
/returns the receiver silent mode enable
*/
virtual int setReceiverSilentMode(int i = -1)=0;
/******** CTB funcs */ /******** CTB funcs */
/** opens pattern file and sends pattern to CTB /** opens pattern file and sends pattern to CTB