Merge branch 'developer' of git.psi.ch:sls_detectors_software/sls_detector_software into developer

This commit is contained in:
bergamaschi 2017-11-22 12:34:28 +01:00
commit 400585be6a
3 changed files with 44 additions and 32 deletions

View File

@ -3730,20 +3730,16 @@ string multiSlsDetector::setNetworkParameter(networkParameter p, string s){
// disable data streaming before changing zmq port (but only if they were on)
int prev_streaming = 0;
switch (p) {
case RECEIVER_STREAMING_PORT:
case CLIENT_STREAMING_PORT:
case CLIENT_STREAMING_SRC_IP:
prev_streaming = enableDataStreamingFromReceiver();
enableDataStreamingFromReceiver(0);
break;
case CLIENT_STREAMING_PORT:
prev_streaming = enableDataStreamingToClient();
enableDataStreamingToClient(0);
break;
case RECEIVER_STREAMING_PORT:
case RECEIVER_STREAMING_SRC_IP:
prev_streaming = enableDataStreamingFromReceiver();
enableDataStreamingFromReceiver(0);
break;
case CLIENT_STREAMING_SRC_IP:
prev_streaming = enableDataStreamingToClient();
enableDataStreamingToClient(0);
break;
default: break;
@ -3806,15 +3802,10 @@ string multiSlsDetector::setNetworkParameter(networkParameter p, string s){
if (prev_streaming) {
switch (p) {
case RECEIVER_STREAMING_PORT:
enableDataStreamingFromReceiver(1);
break;
case CLIENT_STREAMING_PORT:
enableDataStreamingToClient(1);
break;
case RECEIVER_STREAMING_SRC_IP:
enableDataStreamingFromReceiver(1);
break;
case CLIENT_STREAMING_SRC_IP:
enableDataStreamingFromReceiver(1);
enableDataStreamingToClient(1);
break;
default: break;

View File

@ -8774,31 +8774,35 @@ int slsDetector::setReceiverReadTimer(int time_in_ms){
int slsDetector::enableDataStreamingFromReceiver(int enable){
int fnum=F_STREAM_DATA_FROM_RECEIVER;
int ret = FAIL;
int retval=-1;
int arg = enable;
if (enable >= 0) {
int fnum=F_STREAM_DATA_FROM_RECEIVER;
int ret = FAIL;
int retval=-1;
int arg = enable;
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
if(thisDetector->receiverOnlineFlag==ONLINE_FLAG){
#ifdef VERBOSE
std::cout << "***************Sending Data Streaming in Receiver " << arg << std::endl;
std::cout << "***************Sending Data Streaming in Receiver " << arg << std::endl;
#endif
if (connectData() == OK){
ret=thisReceiver->sendInt(fnum,retval,arg);
disconnectData();
if (connectData() == OK){
ret=thisReceiver->sendInt(fnum,retval,arg);
disconnectData();
}
if(ret==FAIL) {
retval = -1;
cout << "could not set data streaming in receiver to " << enable <<" Returned:" << retval << endl;
setErrorMask((getErrorMask())|(DATA_STREAMING));
} else {
thisDetector->receiver_datastream = retval;
if(ret==FORCE_UPDATE)
updateReceiver();
}
}
if(ret==FAIL)
retval = -1;
if(ret==FORCE_UPDATE)
updateReceiver();
}
if ((enable > 0) && (retval != enable)){
cout << "could not set data streaming in receiver to " << enable <<" Returned:" << retval << endl;
setErrorMask((getErrorMask())|(DATA_STREAMING));
}
return retval;
return thisDetector->receiver_datastream;
}

View File

@ -2338,6 +2338,15 @@ string slsDetectorCommand::cmdAcquire(int narg, char *args[], int action) {
myDet->setOnline(ONLINE_FLAG);
int r_online = myDet->setReceiverOnline(ONLINE_FLAG);
// switch off data streaming to prevent extra images in zmq gui buffer
if (r_online == ONLINE_FLAG) {
if (myDet->enableDataStreamingFromReceiver() != 0) {
if (myDet->enableDataStreamingFromReceiver(0) != 0) {
std::cout << "Error: Unable to switch off data streaming in receiver. If GUI on, extra image(s) in zmq GUI buffer" << std::endl;
}
}
}
if(myDet->acquire() == FAIL)
return string("acquire unsuccessful");
if(r_online){
@ -5934,10 +5943,18 @@ string slsDetectorCommand::cmdReceiver(int narg, char *args[], int action) {
myDet->setOnline(ONLINE_FLAG);
myDet->setReceiverOnline(ONLINE_FLAG);
int r_online = myDet->setReceiverOnline(ONLINE_FLAG);
if(cmd=="receiver"){
if (action==PUT_ACTION) {
// switch off data streaming to prevent extra images in zmq gui buffer
if (r_online == ONLINE_FLAG) {
if (myDet->enableDataStreamingFromReceiver() != 0) {
if (myDet->enableDataStreamingFromReceiver(0) != 0) {
std::cout << "Error: Unable to switch off data streaming in receiver. If GUI on, extra image(s) in zmq GUI buffer" << std::endl;
}
}
}
if(!strcasecmp(args[1],"start"))
myDet->startReceiver();
else if(!strcasecmp(args[1],"stop"))