mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 13:27:14 +02:00
merge solved
This commit is contained in:
@ -206,7 +206,6 @@ multiSlsDetector::multiSlsDetector(int id) : slsDetectorUtils(), shmId(-1)
|
|||||||
thisMultiDetector->scanPrecision[iscan]=0;
|
thisMultiDetector->scanPrecision[iscan]=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
thisMultiDetector->receiver_read_freq = 0;
|
|
||||||
thisMultiDetector->acquiringFlag = false;
|
thisMultiDetector->acquiringFlag = false;
|
||||||
thisMultiDetector->externalgui = false;
|
thisMultiDetector->externalgui = false;
|
||||||
thisMultiDetector->receiver_datastream = false;
|
thisMultiDetector->receiver_datastream = false;
|
||||||
@ -3696,11 +3695,11 @@ string multiSlsDetector::setNetworkParameter(networkParameter p, string s){
|
|||||||
switch (p) {
|
switch (p) {
|
||||||
case CLIENT_STREAMING_PORT:
|
case CLIENT_STREAMING_PORT:
|
||||||
prev_streaming = enableDataStreamingToClient();
|
prev_streaming = enableDataStreamingToClient();
|
||||||
enableDataStreamingToClient(0);
|
if (enableDataStreamingToClient()) enableDataStreamingToClient(0);
|
||||||
break;
|
break;
|
||||||
case RECEIVER_STREAMING_PORT:
|
case RECEIVER_STREAMING_PORT:
|
||||||
prev_streaming = enableDataStreamingFromReceiver();
|
prev_streaming = enableDataStreamingFromReceiver();
|
||||||
enableDataStreamingFromReceiver(0);
|
if (enableDataStreamingFromReceiver()) enableDataStreamingFromReceiver(0);
|
||||||
break;
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
@ -6138,15 +6137,12 @@ int multiSlsDetector::calibratePedestal(int frames){
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){
|
int multiSlsDetector::setReadReceiverFrequency(int freq){
|
||||||
int ret=-100, ret1;
|
int ret=-100, ret1;
|
||||||
|
|
||||||
if(!getFromReceiver)
|
|
||||||
return thisMultiDetector->receiver_read_freq;
|
|
||||||
|
|
||||||
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; ++idet) {
|
for (int idet=0; idet<thisMultiDetector->numberOfDetectors; ++idet) {
|
||||||
if (detectors[idet]) {
|
if (detectors[idet]) {
|
||||||
ret1=detectors[idet]->setReadReceiverFrequency(getFromReceiver,freq);
|
ret1=detectors[idet]->setReadReceiverFrequency(freq);
|
||||||
if(detectors[idet]->getErrorMask())
|
if(detectors[idet]->getErrorMask())
|
||||||
setErrorMask(getErrorMask()|(1<<idet));
|
setErrorMask(getErrorMask()|(1<<idet));
|
||||||
if (ret==-100)
|
if (ret==-100)
|
||||||
@ -6156,8 +6152,6 @@ int multiSlsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
thisMultiDetector->receiver_read_freq = ret;
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,9 +195,6 @@ class multiSlsDetector : public slsDetectorUtils {
|
|||||||
mysteps scanSteps[MAX_SCAN_LEVELS];
|
mysteps scanSteps[MAX_SCAN_LEVELS];
|
||||||
int scanPrecision[MAX_SCAN_LEVELS];
|
int scanPrecision[MAX_SCAN_LEVELS];
|
||||||
|
|
||||||
/* Receiver read frequency */
|
|
||||||
int receiver_read_freq;
|
|
||||||
|
|
||||||
/** flag for acquiring */
|
/** flag for acquiring */
|
||||||
bool acquiringFlag;
|
bool acquiringFlag;
|
||||||
|
|
||||||
@ -1328,12 +1325,10 @@ class multiSlsDetector : public slsDetectorUtils {
|
|||||||
/** Sets the read receiver frequency
|
/** Sets the read receiver frequency
|
||||||
if data required from receiver randomly readRxrFrequency=0,
|
if data required from receiver randomly readRxrFrequency=0,
|
||||||
else every nth frame to be sent to gui
|
else every nth frame to be sent to gui
|
||||||
@param getFromReceiver is 1 if it should ask the receiver,
|
|
||||||
0 if it can get it from multi structure
|
|
||||||
@param freq is the receiver read frequency
|
@param freq is the receiver read frequency
|
||||||
/returns read receiver frequency
|
/returns read receiver frequency
|
||||||
*/
|
*/
|
||||||
int setReadReceiverFrequency(int getFromReceiver, int freq=-1);
|
int setReadReceiverFrequency(int freq=-1);
|
||||||
|
|
||||||
/** Sets the read receiver timer
|
/** Sets the read receiver timer
|
||||||
if data required from receiver randomly readRxrFrequency=0,
|
if data required from receiver randomly readRxrFrequency=0,
|
||||||
|
@ -780,6 +780,7 @@ int slsDetector::initializeDetectorSize(detectorType type) {
|
|||||||
thisDetector->zmqport = 0;
|
thisDetector->zmqport = 0;
|
||||||
thisDetector->receiver_zmqport = 0;
|
thisDetector->receiver_zmqport = 0;
|
||||||
thisDetector->receiver_datastream = false;
|
thisDetector->receiver_datastream = false;
|
||||||
|
thisDetector->receiver_read_freq = 0;
|
||||||
|
|
||||||
for (int ia=0; ia<MAX_ACTIONS; ++ia) {
|
for (int ia=0; ia<MAX_ACTIONS; ++ia) {
|
||||||
strcpy(thisDetector->actionScript[ia],"none");
|
strcpy(thisDetector->actionScript[ia],"none");
|
||||||
@ -6077,6 +6078,7 @@ string slsDetector::setReceiver(string receiverIP){
|
|||||||
std::cout << "dynamic range:" << thisDetector->dynamicRange << endl << endl;
|
std::cout << "dynamic range:" << thisDetector->dynamicRange << endl << endl;
|
||||||
std::cout << "flippeddatax:" << thisDetector->flippedData[d] << endl;
|
std::cout << "flippeddatax:" << thisDetector->flippedData[d] << endl;
|
||||||
std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl;
|
std::cout << "10GbE:" << thisDetector->tenGigaEnable << endl << endl;
|
||||||
|
std::cout << "r_readfreq:" << thisDetector->receiver_read_freq << endl << endl;
|
||||||
std::cout << "rx streaming port:" << thisDetector->receiver_zmqport << endl;
|
std::cout << "rx streaming port:" << thisDetector->receiver_zmqport << endl;
|
||||||
|
|
||||||
//std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl;
|
//std::cout << "dataStreaming:" << enableDataStreamingFromReceiver(-1) << endl << endl;
|
||||||
@ -6122,6 +6124,7 @@ string slsDetector::setReceiver(string receiverIP){
|
|||||||
enableTenGigabitEthernet(thisDetector->tenGigaEnable);
|
enableTenGigabitEthernet(thisDetector->tenGigaEnable);
|
||||||
|
|
||||||
// data streaming
|
// data streaming
|
||||||
|
setReadReceiverFrequency(thisDetector->receiver_read_freq);
|
||||||
setReceiverStreamingPort(getReceiverStreamingPort());
|
setReceiverStreamingPort(getReceiverStreamingPort());
|
||||||
enableDataStreamingFromReceiver(enableDataStreamingFromReceiver(-1));
|
enableDataStreamingFromReceiver(enableDataStreamingFromReceiver(-1));
|
||||||
}
|
}
|
||||||
@ -6259,6 +6262,8 @@ string slsDetector::setReceiverStreamingPort(string port) {
|
|||||||
else
|
else
|
||||||
sscanf(port.c_str(),"%d",&arg);
|
sscanf(port.c_str(),"%d",&arg);
|
||||||
|
|
||||||
|
thisDetector->receiver_zmqport = arg;
|
||||||
|
|
||||||
// send to receiver
|
// send to receiver
|
||||||
int fnum=F_SET_RECEIVER_STREAMING_PORT;
|
int fnum=F_SET_RECEIVER_STREAMING_PORT;
|
||||||
int ret = FAIL;
|
int ret = FAIL;
|
||||||
@ -6271,8 +6276,10 @@ string slsDetector::setReceiverStreamingPort(string port) {
|
|||||||
ret=thisReceiver->sendInt(fnum,retval,arg);
|
ret=thisReceiver->sendInt(fnum,retval,arg);
|
||||||
disconnectData();
|
disconnectData();
|
||||||
}
|
}
|
||||||
if(ret!=FAIL)
|
if (ret==FAIL) {
|
||||||
thisDetector->receiver_zmqport = retval;
|
setErrorMask((getErrorMask())|(COULDNOT_SET_NETWORK_PARAMETER));
|
||||||
|
std::cout << "Warning: Could not set receiver zmq port" << std::endl;
|
||||||
|
}
|
||||||
if(ret==FORCE_UPDATE)
|
if(ret==FORCE_UPDATE)
|
||||||
updateReceiver();
|
updateReceiver();
|
||||||
}
|
}
|
||||||
@ -8266,6 +8273,10 @@ int slsDetector::updateReceiverNoWait() {
|
|||||||
parentDet->enableOverwriteMask(ind);
|
parentDet->enableOverwriteMask(ind);
|
||||||
pthread_mutex_unlock(&ms);
|
pthread_mutex_unlock(&ms);
|
||||||
|
|
||||||
|
// receiver read frequency
|
||||||
|
n += dataSocket->ReceiveDataOnly(&ind,sizeof(ind));
|
||||||
|
thisDetector->receiver_read_freq = ind;
|
||||||
|
|
||||||
// receiver streaming port
|
// receiver streaming port
|
||||||
n += dataSocket->ReceiveDataOnly(&ind,sizeof(ind));
|
n += dataSocket->ReceiveDataOnly(&ind,sizeof(ind));
|
||||||
thisDetector->receiver_zmqport = ind;
|
thisDetector->receiver_zmqport = ind;
|
||||||
@ -8506,34 +8517,35 @@ int64_t slsDetector::clearAllErrorMask(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
int slsDetector::setReadReceiverFrequency(int getFromReceiver, int freq){
|
int slsDetector::setReadReceiverFrequency(int freq){
|
||||||
int fnum=F_READ_RECEIVER_FREQUENCY;
|
|
||||||
int ret = FAIL;
|
|
||||||
int retval=-1;
|
|
||||||
int arg = freq;
|
|
||||||
|
|
||||||
if(!getFromReceiver)
|
if (freq >= 0) {
|
||||||
return retval;
|
thisDetector->receiver_read_freq = freq;
|
||||||
|
|
||||||
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
|
int fnum=F_READ_RECEIVER_FREQUENCY;
|
||||||
|
int ret = FAIL;
|
||||||
|
int retval=-1;
|
||||||
|
int arg = freq;
|
||||||
|
|
||||||
|
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
std::cout << "Sending read frequency to receiver " << arg << std::endl;
|
std::cout << "Sending read frequency to receiver " << arg << std::endl;
|
||||||
#endif
|
#endif
|
||||||
if (connectData() == OK){
|
if (connectData() == OK){
|
||||||
ret=thisReceiver->sendInt(fnum,retval,arg);
|
ret=thisReceiver->sendInt(fnum,retval,arg);
|
||||||
disconnectData();
|
disconnectData();
|
||||||
|
}
|
||||||
|
if((ret == FAIL) || (retval != freq)) {
|
||||||
|
cout << "could not set receiver read frequency to " << freq <<" Returned:" << retval << endl;
|
||||||
|
setErrorMask((getErrorMask())|(RECEIVER_READ_FREQUENCY));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(ret==FORCE_UPDATE)
|
||||||
|
updateReceiver();
|
||||||
}
|
}
|
||||||
if(ret==FAIL)
|
|
||||||
retval = -1;
|
|
||||||
if(ret==FORCE_UPDATE)
|
|
||||||
updateReceiver();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((freq > 0) && (retval != freq)){
|
return thisDetector->receiver_read_freq;
|
||||||
cout << "could not set receiver read frequency to " << freq <<" Returned:" << retval << endl;
|
|
||||||
setErrorMask((getErrorMask())|(RECEIVER_READ_FREQUENCY));
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -275,6 +275,8 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
|
|||||||
int receiver_zmqport;
|
int receiver_zmqport;
|
||||||
/** data streaming (up stream) enable in receiver */
|
/** data streaming (up stream) enable in receiver */
|
||||||
bool receiver_datastream;
|
bool receiver_datastream;
|
||||||
|
/* Receiver read frequency */
|
||||||
|
int receiver_read_freq;
|
||||||
|
|
||||||
} sharedSlsDetector;
|
} sharedSlsDetector;
|
||||||
|
|
||||||
@ -1766,12 +1768,10 @@ class slsDetector : public slsDetectorUtils, public energyConversion {
|
|||||||
/** Sets the read receiver frequency
|
/** Sets the read receiver frequency
|
||||||
if data required from receiver randomly readRxrFrequency=0,
|
if data required from receiver randomly readRxrFrequency=0,
|
||||||
else every nth frame to be sent to gui
|
else every nth frame to be sent to gui
|
||||||
@param getFromReceiver is 1 if it should ask the receiver,
|
|
||||||
0 if it can get it from multi structure
|
|
||||||
@param freq is the receiver read frequency
|
@param freq is the receiver read frequency
|
||||||
/returns read receiver frequency
|
/returns read receiver frequency
|
||||||
*/
|
*/
|
||||||
int setReadReceiverFrequency(int getFromReceiver, int freq=-1);
|
int setReadReceiverFrequency(int freq=-1);
|
||||||
|
|
||||||
/** Sets the read receiver timer
|
/** Sets the read receiver timer
|
||||||
if data required from receiver randomly readRxrFrequency=0,
|
if data required from receiver randomly readRxrFrequency=0,
|
||||||
|
@ -580,12 +580,10 @@ virtual void readFrameFromReceiver()=0;
|
|||||||
/** Sets the read receiver frequency
|
/** Sets the read receiver frequency
|
||||||
if data required from receiver randomly readRxrFrequency=0,
|
if data required from receiver randomly readRxrFrequency=0,
|
||||||
else every nth frame to be sent to gui
|
else every nth frame to be sent to gui
|
||||||
@param getFromReceiver is 1 if it should ask the receiver,
|
|
||||||
0 if it can get it from multi structure
|
|
||||||
@param freq is the receiver read frequency
|
@param freq is the receiver read frequency
|
||||||
/returns read receiver frequency
|
/returns read receiver frequency
|
||||||
*/
|
*/
|
||||||
virtual int setReadReceiverFrequency(int getFromReceiver, int freq=-1)=0;
|
virtual int setReadReceiverFrequency(int freq=-1)=0;
|
||||||
|
|
||||||
/** Sets the receiver to start any readout remaining in the fifo and
|
/** Sets the receiver to start any readout remaining in the fifo and
|
||||||
* change status to transmitting.
|
* change status to transmitting.
|
||||||
|
@ -5949,9 +5949,9 @@ string slsDetectorCommand::cmdReceiver(int narg, char *args[], int action) {
|
|||||||
if (!sscanf(args[1],"%d",&ival))
|
if (!sscanf(args[1],"%d",&ival))
|
||||||
return string("Could not scan read frequency mode ")+string(args[1]);
|
return string("Could not scan read frequency mode ")+string(args[1]);
|
||||||
if(ival>=0)
|
if(ival>=0)
|
||||||
myDet->setReadReceiverFrequency(1,ival);
|
myDet->setReadReceiverFrequency(ival);
|
||||||
}
|
}
|
||||||
sprintf(answer,"%d",myDet->setReadReceiverFrequency(1));
|
sprintf(answer,"%d",myDet->setReadReceiverFrequency());
|
||||||
return string(answer);
|
return string(answer);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -224,7 +224,7 @@ void slsDetectorUsers::finalizeDataset(double *a, double *v, double *e, int &np)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::setReceiverMode(int n){
|
int slsDetectorUsers::setReceiverMode(int n){
|
||||||
return myDetector->setReadReceiverFrequency(1,n);
|
return myDetector->setReadReceiverFrequency(n);
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetectorUsers::enableDataStreamingFromReceiver(int i){
|
int slsDetectorUsers::enableDataStreamingFromReceiver(int i){
|
||||||
|
@ -768,12 +768,10 @@ virtual ROI* getROI(int &n)=0;
|
|||||||
/** Sets the read receiver frequency
|
/** Sets the read receiver frequency
|
||||||
if data required from receiver randomly readRxrFrequency=0,
|
if data required from receiver randomly readRxrFrequency=0,
|
||||||
else every nth frame to be sent to gui
|
else every nth frame to be sent to gui
|
||||||
@param getFromReceiver is 1 if it should ask the receiver,
|
|
||||||
0 if it can get it from multi structure
|
|
||||||
@param freq is the receiver read frequency
|
@param freq is the receiver read frequency
|
||||||
/returns read receiver frequency
|
/returns read receiver frequency
|
||||||
*/
|
*/
|
||||||
virtual int setReadReceiverFrequency(int getFromReceiver, int freq=-1)=0;
|
virtual int setReadReceiverFrequency(int freq=-1)=0;
|
||||||
|
|
||||||
/** Enable or disable streaming data from receiver to client
|
/** Enable or disable streaming data from receiver to client
|
||||||
* @param enable 0 to disable 1 to enable -1 to only get the value
|
* @param enable 0 to disable 1 to enable -1 to only get the value
|
||||||
|
Reference in New Issue
Block a user