diff --git a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h index 96d35eb28..7f82c9642 100644 --- a/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h +++ b/slsDetectorSoftware/multiSlsDetector/multiSlsDetector.h @@ -1353,7 +1353,7 @@ class multiSlsDetector : public slsDetectorUtils { /** Enable or disable streaming data from receiver to client * @param enable 0 to disable 1 to enable -1 to only get the value - * @returns data streaming to receiver enable + * @returns data streaming from receiver enable */ int enableDataStreamingFromReceiver(int enable=-1); diff --git a/slsDetectorSoftware/slsDetector/slsDetector.h b/slsDetectorSoftware/slsDetector/slsDetector.h index b6e3f7ac0..06fb35123 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.h +++ b/slsDetectorSoftware/slsDetector/slsDetector.h @@ -1783,7 +1783,7 @@ class slsDetector : public slsDetectorUtils, public energyConversion { /** Enable or disable streaming data from receiver to client * @param enable 0 to disable 1 to enable -1 to only get the value - * @returns data streaming to receiver enable + * @returns data streaming from receiver enable */ int enableDataStreamingFromReceiver(int enable=-1); diff --git a/slsDetectorSoftware/slsDetector/slsDetectorBase.h b/slsDetectorSoftware/slsDetector/slsDetectorBase.h index 7d8683fdc..f8a8b4626 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorBase.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorBase.h @@ -425,7 +425,6 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef */ int setHighVoltage(int val){return setDAC(val, HV_NEW, 0, -1);} \ - /** set dacs value \param val value diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp b/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp index 95d9369ec..828c9f65b 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorUsers.cpp @@ -227,6 +227,18 @@ int slsDetectorUsers::enableDataStreamingFromReceiver(int i){ return myDetector->enableDataStreamingFromReceiver(i); } +int slsDetectorUsers::enableDataStreamingToClient(int i){ + return myDetector->enableDataStreamingToClient(i); +} + +int slsDetectorUsers::setReceiverDataStreamingOutPort(int i, int imod){ + return myDetector->setReceiverDataStreamingOutPort(i, imod); +} + +int slsDetectorUsers::setClientDataStreamingInPort(int i, int imod){ + return myDetector->setClientDataStreamingInPort(i, imod); +} + int64_t slsDetectorUsers::getModuleFirmwareVersion(){ return myDetector->getModuleFirmwareVersion(); } diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h index ea8011326..f0cee1730 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h @@ -439,13 +439,38 @@ class slsDetectorUsers virtual void finalizeDataset(double *a, double *v, double *e, int &np); - /** - Enable data streaming from receiver (zmq) - \param i 1 to set, 0 to reset and -1 to get - \returns data streaming enable - */ + /** Enable or disable streaming data from receiver (creates transmitting sockets) + * @param enable 0 to disable 1 to enable -1 to only get the value + * @returns data streaming from receiver enable + */ int enableDataStreamingFromReceiver(int i=-1); + /** + * Enable data streaming to client (creates receiving sockets) + * @param i 0 to disable, 1 to enable, -1 to get the value + * @returns data streaming to client enable + */ + int enableDataStreamingToClient(int i=-1); + + /** + * Set/Get receiver streaming out ZMQ port + * If imod is -1, when setting it calculates and sets the port for all individual detectors + * and when getting it returns only the port of individual detector in first position + * @param i sets, -1 gets + * @param imod module index, -1 for all + * @returns receiver streaming out ZMQ port () + */ + int setReceiverDataStreamingOutPort(int i, int imod=-1); + + /** + * Set/Get client streaming in ZMQ port + * If imod is -1, when setting it calculates and sets the port for all individual detectors + * and when getting it returns only the port of individual detector in first position + * @param i sets, -1 gets + * @param imod module index, -1 for all + * @returns client streaming in ZMQ port + */ + int setClientDataStreamingInPort(int i, int imod=-1); /** get get Module Firmware Version diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h index faa4b473d..0a6bdafc8 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUtils.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUtils.h @@ -30,6 +30,7 @@ extern "C" { #include #include #include +#include using namespace std; @@ -88,6 +89,48 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing { int enableFlatFieldCorrection(int i=-1) {if (i>0) setFlatFieldCorrectionFile("default"); else if (i==0) setFlatFieldCorrectionFile(""); return getFlatFieldCorrection();}; int enablePixelMaskCorrection(int i=-1) {if (i>0) setBadChannelCorrection("default"); else if (i==0) setBadChannelCorrection(""); return getBadChannelCorrection();}; int enableCountRateCorrection(int i=-1) {if (i>0) setRateCorrection(i); else if (i==0) setRateCorrection(0); return getRateCorrection();}; + + /** + * Set/Get receiver streaming out ZMQ port + * @param i sets, -1 gets + * @param imod module index, -1 for all + * @returns receiver streaming out ZMQ port + */ + int setReceiverDataStreamingOutPort(int i, int imod) { \ + // single module + if (imod < 0) { \ + if (i >= 0) { \ + ostringstream ss; ss << i; string s = ss.str(); \ + getSlsDetector(imod)->setReceiverStreamingPort(RECEIVER_STREAMING_PORT, s); \ + } \ + return atoi(getSlsDetector(imod)->getReceiverStreamingPort().c_str()); \ + } \ + // multimodule + if (i >= 0) \ + setNetworkParameter(RECEIVER_STREAMING_PORT, s); \ + return atoi(getSlsDetector(0)->getNetworkParameter(RECEIVER_STREAMING_PORT).c_str());}; \ + + /** + * Set/Get client streaming in ZMQ port + * @param i sets, -1 gets + * @param imod module index, -1 for all + * @returns client streaming in ZMQ port + */ + int setClientDataStreamingInPort(int i, int imod=-1){ \ + // single module + if (imod < 0) { \ + if (i >= 0) { \ + ostringstream ss; ss << i; string s = ss.str(); \ + getSlsDetector(imod)->setReceiverStreamingPort(CLIENT_STREAMING_PORT, s); \ + } \ + return atoi(getSlsDetector(imod)->getReceiverStreamingPort().c_str()); \ + } \ + // multimodule + if (i >= 0) \ + setNetworkParameter(CLIENT_STREAMING_PORT, s); \ + return atoi(getSlsDetector(0)->getNetworkParameter(CLIENT_STREAMING_PORT).c_str());}; \ + }; + // string getFilePath(){return fileIO::getFilePath();};; // string setFilePath(string s){return fileIO::setFilePath(s);}; @@ -751,7 +794,7 @@ virtual int setReadReceiverFrequency(int getFromReceiver, int freq=-1)=0; /** Enable or disable streaming data from receiver to client * @param enable 0 to disable 1 to enable -1 to only get the value - * @returns data streaming to receiver enable + * @returns data streaming from receiver enable */ virtual int enableDataStreamingFromReceiver(int enable=-1)=0;