diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index 88bf5162f..beed21c63 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -854,7 +854,7 @@ class Detector { // TODO! // int enableDataStreamingToClient(int enable = -1); - // int enableDataStreamingFromReceiver(int enable = -1, int detPos = -1) + void enableDataStreamingFromReceiver(bool enable, Positions pos = {}); /** [TODO! All?] */ void setTenGigaEnabled(bool value, Positions pos = {}); @@ -1257,7 +1257,38 @@ class Detector { Result getReceiverStreamingPort(Positions pos = {}) const; - // void setReceiverDataStreamingOutPort(int i = -1, int detPos = -1); + /** Single detector or all since ports are calculated*/ + void setReceiverDataStreamingOutPort(int port, int module_id = -1); + + Result getClientStreamingPort(Positions pos = {}) const; + + /** Single detector or all since ports are calculated*/ + void setClientDataStreamingInPort(int port, int module_id = -1); + + /** [Jungfrau] */ + Result getSelectedUDPInterface(Positions pos = {}) const; + + /** + * [Jungfrau] + * @param interface interface to select, either 1 or 2 + * */ + void selectUDPInterface(int interface, Positions pos = {}); + + Result getNumberofUDPInterfaces(Positions pos = {}) const; + + void setNumberofUDPInterfaces(int n, Positions pos = {}); + + /** [Eiger][Jungfrau] */ + Result getReceiverUDPPort2(Positions pos = {}) const; + + /** [Eiger][Jungfrau] */ + void setReceiverUDPPort2(int udpport, Positions pos = {}); + + /** [Eiger][Jungfrau] */ + Result getReceiverUDPPort(Positions pos = {}) const; + + /** [Eiger][Jungfrau] */ + void setReceiverUDPPort(int udpport, Positions pos = {}); }; } // namespace sls \ No newline at end of file diff --git a/slsDetectorSoftware/include/multiSlsDetector.h b/slsDetectorSoftware/include/multiSlsDetector.h index a74ba2862..73195e606 100755 --- a/slsDetectorSoftware/include/multiSlsDetector.h +++ b/slsDetectorSoftware/include/multiSlsDetector.h @@ -1120,14 +1120,14 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the receiver UDP port */ - int setReceiverUDPPort(int udpport, int detPos = -1); + int setReceiverUDPPort(int udpport, int detPos = -1); // /** * Returns the receiver UDP port * @param detPos -1 for all detectors in list or specific detector position * @returns the receiver UDP port */ - int getReceiverUDPPort(int detPos = -1) const; + int getReceiverUDPPort(int detPos = -1) const; // /** * Sets the receiver UDP port 2 (Eiger and Jungfrau only) @@ -1135,7 +1135,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the receiver UDP port 2 */ - int setReceiverUDPPort2(int udpport, int detPos = -1); + int setReceiverUDPPort2(int udpport, int detPos = -1); // /** * Returns the receiver UDP port 2 of same interface (Eiger and Jungfrau @@ -1143,7 +1143,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the receiver UDP port 2 of same interface */ - int getReceiverUDPPort2(int detPos = -1) const; + int getReceiverUDPPort2(int detPos = -1) const; // /** * Sets the number of UDP interfaces to stream data from detector (Jungfrau @@ -1152,7 +1152,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the number of interfaces */ - int setNumberofUDPInterfaces(int n, int detPos = -1); + int setNumberofUDPInterfaces(int n, int detPos = -1); // /** * Returns the number of UDP interfaces to stream data from detector @@ -1160,7 +1160,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the number of interfaces */ - int getNumberofUDPInterfaces(int detPos = -1) const; + int getNumberofUDPInterfaces(int detPos = -1) const; // /** * Selects the UDP interfaces to stream data from detector. Effective only @@ -1177,7 +1177,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the interface selected */ - int getSelectedUDPInterface(int detPos = -1) const; + int getSelectedUDPInterface(int detPos = -1) const; // /** * (advanced users) @@ -1196,7 +1196,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the client zmq port */ - int getClientStreamingPort(int detPos = -1); + int getClientStreamingPort(int detPos = -1); // /** * (advanced users) @@ -1206,7 +1206,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * individual detectors using i * @param detPos -1 for all detectors in list or specific detector position */ - void setReceiverDataStreamingOutPort(int i = -1, int detPos = -1); + void setReceiverDataStreamingOutPort(int i = -1, int detPos = -1); // /** * Returns the receiver zmq port @@ -1215,7 +1215,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @returns the receiver zmq port */ - int getReceiverStreamingPort(int detPos = -1); + int getReceiverStreamingPort(int detPos = -1); // /** * (advanced users) diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index 80e6f40d7..9825a9a14 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -468,7 +468,8 @@ Result Detector::getMeasuredSubFramePeriod(Positions pos) const { } Result Detector::getSpeed(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, -1, + 0); } void Detector::setSpeed(int value, Positions pos) { @@ -476,7 +477,8 @@ void Detector::setSpeed(int value, Positions pos) { } Result Detector::getADCPhase(bool inDeg, Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::ADC_PHASE, -1, inDeg); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::ADC_PHASE, -1, + inDeg); } void Detector::setADCPhase(int value, bool inDeg, Positions pos) { @@ -484,19 +486,23 @@ void Detector::setADCPhase(int value, bool inDeg, Positions pos) { } Result Detector::getMaxADCPhaseShift(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::MAX_ADC_PHASE_SHIFT, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, + defs::MAX_ADC_PHASE_SHIFT, -1, 0); } Result Detector::getDBITPhase(bool inDeg, Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_PHASE, -1, inDeg); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_PHASE, -1, + inDeg); } void Detector::setDBITPhase(int value, bool inDeg, Positions pos) { - pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_PHASE, value, inDeg); + pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_PHASE, value, + inDeg); } Result Detector::getMaxDBITPhaseShift(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::MAX_DBIT_PHASE_SHIFT, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, + defs::MAX_DBIT_PHASE_SHIFT, -1, 0); } Result Detector::getADCClock(Positions pos) const { @@ -508,7 +514,8 @@ void Detector::setADCClock(int value, Positions pos) { } Result Detector::getDBITClock(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_CLOCK, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_CLOCK, -1, + 0); } void Detector::setDBITClock(int value, Positions pos) { @@ -516,7 +523,8 @@ void Detector::setDBITClock(int value, Positions pos) { } Result Detector::getRUNClock(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::CLOCK_DIVIDER, -1, + 0); } void Detector::setRUNClock(int value, Positions pos) { @@ -524,11 +532,13 @@ void Detector::setRUNClock(int value, Positions pos) { } Result Detector::getSYNCClock(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::SYNC_CLOCK, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::SYNC_CLOCK, -1, + 0); } Result Detector::getADCPipeline(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::ADC_PIPELINE, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::ADC_PIPELINE, -1, + 0); } void Detector::setADCPipeline(int value, Positions pos) { @@ -536,7 +546,8 @@ void Detector::setADCPipeline(int value, Positions pos) { } Result Detector::getDBITPipeline(Positions pos) const { - return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_PIPELINE, -1, 0); + return pimpl->Parallel(&slsDetector::setSpeed, pos, defs::DBIT_PIPELINE, -1, + 0); } void Detector::setDBITPipeline(int value, Positions pos) { @@ -572,6 +583,11 @@ Result Detector::getReceiverStreamingTimer(Positions pos) const { return pimpl->Parallel(&slsDetector::setReceiverStreamingTimer, pos, -1); } +void Detector::enableDataStreamingFromReceiver(bool enable, Positions pos) { + pimpl->Parallel(&slsDetector::enableDataStreamingFromReceiver, pos, + static_cast(enable)); +} + void Detector::setTenGigaEnabled(bool value, Positions pos) { pimpl->Parallel(&slsDetector::enableTenGigabitEthernet, pos, static_cast(value)); @@ -1028,8 +1044,8 @@ void Detector::setReceiverDataStreamingOutIP(const std::string &ip, Positions pos) { // TODO! probably in one call pimpl->Parallel(&slsDetector::setReceiverStreamingIP, pos, ip); - pimpl->Parallel(&slsDetector::enableDataStreamingFromReceiver, pos, 0); - pimpl->Parallel(&slsDetector::enableDataStreamingFromReceiver, pos, 1); + enableDataStreamingFromReceiver(false, pos); + enableDataStreamingFromReceiver(true, pos); } Result Detector::getClientStreamingIP(Positions pos) const { @@ -1044,8 +1060,57 @@ void Detector::setClientDataStreamingInIP(const std::string &ip, pimpl->enableDataStreamingToClient(1); } -Result Detector::getReceiverStreamingPort(Positions pos) const{ +Result Detector::getReceiverStreamingPort(Positions pos) const { return pimpl->Parallel(&slsDetector::getReceiverStreamingPort, pos); } +void Detector::setReceiverDataStreamingOutPort(int port, int module_id) { + pimpl->setReceiverDataStreamingOutPort(port, module_id); +} + +Result Detector::getClientStreamingPort(Positions pos) const { + return pimpl->Parallel(&slsDetector::getClientStreamingPort, pos); +} + +void Detector::setClientDataStreamingInPort(int port, int module_id) { + pimpl->setClientDataStreamingInPort(port, module_id); +} + +Result Detector::getSelectedUDPInterface(Positions pos) const { + return pimpl->Parallel(&slsDetector::getSelectedUDPInterface, pos); +} + +void Detector::selectUDPInterface(int interface, Positions pos) { + pimpl->Parallel(&slsDetector::selectUDPInterface, pos, interface); +} + +Result Detector::getNumberofUDPInterfaces(Positions pos) const { + return pimpl->Parallel(&slsDetector::getNumberofUDPInterfaces, pos); +} + +void Detector::setNumberofUDPInterfaces(int n, Positions pos) { + pimpl->Parallel(&slsDetector::setNumberofUDPInterfaces, pos, n); + + pimpl->enableDataStreamingToClient(0); + pimpl->enableDataStreamingToClient(1); + enableDataStreamingFromReceiver(false, pos); + enableDataStreamingFromReceiver(true, pos); +} + +Result Detector::getReceiverUDPPort2(Positions pos) const{ + pimpl->Parallel(&slsDetector::getReceiverUDPPort2, pos); +} + +void Detector::setReceiverUDPPort2(int udpport, Positions pos){ + pimpl->Parallel(&slsDetector::setReceiverUDPPort2, pos, udpport); +} + +Result Detector::getReceiverUDPPort(Positions pos) const{ + pimpl->Parallel(&slsDetector::getReceiverUDPPort2, pos); +} + +void Detector::setReceiverUDPPort(int udpport, Positions pos){ + pimpl->Parallel(&slsDetector::setReceiverUDPPort2, pos, udpport); +} + } // namespace sls \ No newline at end of file