mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-24 15:20:02 +02:00
Merge branch 'refactor' of github.com:slsdetectorgroup/slsDetectorPackage into refactor
This commit is contained in:
commit
430e0e3fb5
@ -19,43 +19,56 @@ using sls::SocketError;
|
|||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
|
||||||
//Catch exception
|
|
||||||
try {
|
|
||||||
throw RuntimeError("something went wrong");
|
|
||||||
} catch (RuntimeError &e) {
|
|
||||||
std::cout << "Caught RuntimeError with message : " << e.what() << '\n';
|
|
||||||
}
|
|
||||||
|
|
||||||
//Catch base class
|
// const std::string hostname = "beb083";
|
||||||
try {
|
// auto type = slsDetector::getTypeFromDetector(hostname);
|
||||||
throw SharedMemoryError("Could not create shared memory");
|
// slsDetector d(type);
|
||||||
} catch (RuntimeError &e) {
|
// d.setHostname(hostname);
|
||||||
std::cout << "Caught: " << e.what() << '\n';
|
// d.setReceiverHostname("mpc2408");
|
||||||
}
|
// std::cout << "hostname: " << d.getHostname() << '\n';
|
||||||
|
// std::cout << "port: " << d.getControlPort() << '\n';
|
||||||
|
// d.setOnline(true);
|
||||||
|
// d.setReceiverOnline(true);
|
||||||
|
// std::cout << "reciver version: " << std::hex << d.getReceiverVersion() << '\n';
|
||||||
|
// // std::cout << "version: " << d.getId(slsDetectorDefs::CLIENT_RECEIVER_API_VERSION) << '\n';
|
||||||
|
// d.freeSharedMemory();
|
||||||
|
// //Catch exception
|
||||||
|
// try {
|
||||||
|
// throw RuntimeError("something went wrong");
|
||||||
|
// } catch (RuntimeError &e) {
|
||||||
|
// std::cout << "Caught RuntimeError with message : " << e.what() << '\n';
|
||||||
|
// }
|
||||||
|
|
||||||
//Catch base class after looking for something else
|
// //Catch base class
|
||||||
try {
|
// try {
|
||||||
throw SharedMemoryError("Could not create shared memory");
|
// throw SharedMemoryError("Could not create shared memory");
|
||||||
} catch (SocketError &e) {
|
// } catch (RuntimeError &e) {
|
||||||
|
// std::cout << "Caught: " << e.what() << '\n';
|
||||||
|
// }
|
||||||
|
|
||||||
std::cout << "Caught Socket error: " << e.what() << '\n';
|
// //Catch base class after looking for something else
|
||||||
|
// try {
|
||||||
|
// throw SharedMemoryError("Could not create shared memory");
|
||||||
|
// } catch (SocketError &e) {
|
||||||
|
|
||||||
} catch (RuntimeError &e) {
|
// std::cout << "Caught Socket error: " << e.what() << '\n';
|
||||||
std::cout << "Caught base class: " << e.what() << '\n';
|
|
||||||
}
|
|
||||||
|
|
||||||
//Catch any after looking for something else
|
// } catch (RuntimeError &e) {
|
||||||
try {
|
// std::cout << "Caught base class: " << e.what() << '\n';
|
||||||
throw SharedMemoryError("Could not create shared memory");
|
// }
|
||||||
} catch (SocketError &e) {
|
|
||||||
|
|
||||||
std::cout << "Caught Socket error: " << e.what() << '\n';
|
// //Catch any after looking for something else
|
||||||
|
// try {
|
||||||
|
// throw SharedMemoryError("Could not create shared memory");
|
||||||
|
// } catch (SocketError &e) {
|
||||||
|
|
||||||
} catch (...) {
|
// std::cout << "Caught Socket error: " << e.what() << '\n';
|
||||||
std::cout << "Caught Something else probably should have let me crash\n";
|
|
||||||
}
|
// } catch (...) {
|
||||||
|
// std::cout << "Caught Something else probably should have let me crash\n";
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
throw RuntimeError("This one we missed");
|
// throw RuntimeError("This one we missed");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -176,6 +176,15 @@ int64_t multiSlsDetector::getId(idMode mode, int detPos) {
|
|||||||
return sls::minusOneIfDifferent(r);
|
return sls::minusOneIfDifferent(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int64_t multiSlsDetector::getReceiverSoftwareVersion(int detPos) const {
|
||||||
|
if (detPos >= 0) {
|
||||||
|
return detectors[detPos]->getReceiverSoftwareVersion();
|
||||||
|
}
|
||||||
|
|
||||||
|
auto r = parallelCall(&slsDetector::getReceiverSoftwareVersion);
|
||||||
|
return sls::minusOneIfDifferent(r);
|
||||||
|
}
|
||||||
|
|
||||||
std::vector<int64_t> multiSlsDetector::getDetectorNumber() {
|
std::vector<int64_t> multiSlsDetector::getDetectorNumber() {
|
||||||
return parallelCall(&slsDetector::getId, slsDetectorDefs::DETECTOR_SERIAL_NUMBER);
|
return parallelCall(&slsDetector::getId, slsDetectorDefs::DETECTOR_SERIAL_NUMBER);
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "SharedMemory.h"
|
#include "SharedMemory.h"
|
||||||
#include "error_defs.h"
|
#include "error_defs.h"
|
||||||
|
#include "gitInfoLib.h"
|
||||||
#include "logger.h"
|
#include "logger.h"
|
||||||
#include "sls_detector_defs.h"
|
#include "sls_detector_defs.h"
|
||||||
class slsDetector;
|
class slsDetector;
|
||||||
@ -225,7 +226,13 @@ class multiSlsDetector : public virtual slsDetectorDefs,
|
|||||||
*/
|
*/
|
||||||
int64_t getId(idMode mode, int detPos = -1);
|
int64_t getId(idMode mode, int detPos = -1);
|
||||||
|
|
||||||
std::vector<int64_t> getDetectorNumber();
|
int64_t getClientSoftwareVersion() const {
|
||||||
|
return GITDATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
int64_t getReceiverSoftwareVersion(int detPos = -1) const;
|
||||||
|
|
||||||
|
std::vector<int64_t> getDetectorNumber();
|
||||||
/**
|
/**
|
||||||
* Free shared memory from the command line
|
* Free shared memory from the command line
|
||||||
* avoiding creating the constructor classes and mapping
|
* avoiding creating the constructor classes and mapping
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
using sls::NotImplementedError;
|
||||||
using sls::RuntimeError;
|
using sls::RuntimeError;
|
||||||
using sls::SharedMemory;
|
using sls::SharedMemory;
|
||||||
using sls::SharedMemoryError;
|
using sls::SharedMemoryError;
|
||||||
@ -63,7 +64,6 @@ slsDetector::~slsDetector() = default;
|
|||||||
int slsDetector::checkDetectorVersionCompatibility() {
|
int slsDetector::checkDetectorVersionCompatibility() {
|
||||||
int fnum = F_CHECK_VERSION;
|
int fnum = F_CHECK_VERSION;
|
||||||
int ret = FAIL;
|
int ret = FAIL;
|
||||||
// char mess[MAX_STR_LENGTH]{};
|
|
||||||
int64_t arg = 0;
|
int64_t arg = 0;
|
||||||
|
|
||||||
// get api version number for detector server
|
// get api version number for detector server
|
||||||
@ -153,39 +153,46 @@ int slsDetector::checkReceiverVersionCompatibility() {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t slsDetector::getId(idMode mode){
|
int64_t slsDetector::getId(idMode mode) {
|
||||||
int arg = (int)mode;
|
int arg = (int)mode;
|
||||||
int64_t retval = -1;
|
int64_t retval = -1;
|
||||||
FILE_LOG(logDEBUG1) << "Getting id type " << mode;
|
FILE_LOG(logDEBUG1) << "Getting id type " << mode;
|
||||||
|
|
||||||
if (mode == THIS_SOFTWARE_VERSION) {
|
//These four should not go to detector...
|
||||||
return GITDATE;
|
assert(mode != THIS_SOFTWARE_VERSION);
|
||||||
} else if (mode == RECEIVER_VERSION) {
|
assert(mode != RECEIVER_VERSION);
|
||||||
int ret = FAIL;
|
assert(mode != CLIENT_SOFTWARE_API_VERSION);
|
||||||
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
assert(mode != CLIENT_RECEIVER_API_VERSION);
|
||||||
int fnum = F_GET_RECEIVER_ID;
|
|
||||||
auto receiver = sls::ClientSocket(true, detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
|
int fnum = F_GET_ID;
|
||||||
ret = receiver.sendCommandThenRead(fnum, nullptr, 0, &retval, sizeof(retval));
|
int ret = FAIL;
|
||||||
}
|
if (detector_shm()->onlineFlag == ONLINE_FLAG) {
|
||||||
if (ret == FORCE_UPDATE) {
|
auto client = sls::ClientSocket(false, detector_shm()->hostname, detector_shm()->controlPort);
|
||||||
ret = updateReceiver();
|
ret = client.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
} else {
|
|
||||||
int fnum = F_GET_ID;
|
|
||||||
int ret = FAIL;
|
|
||||||
if (detector_shm()->onlineFlag == ONLINE_FLAG) {
|
|
||||||
auto client = sls::ClientSocket(false, detector_shm()->hostname, detector_shm()->controlPort);
|
|
||||||
ret = client.sendCommandThenRead(fnum, &arg, sizeof(arg), &retval, sizeof(retval));
|
|
||||||
}
|
|
||||||
if (ret != FAIL) {
|
|
||||||
FILE_LOG(logDEBUG1) << "Id (" << mode << "): 0x" << std::hex << retval << std::dec;
|
|
||||||
}
|
|
||||||
if (ret == FORCE_UPDATE) {
|
|
||||||
updateDetector();
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
}
|
}
|
||||||
|
if (ret != FAIL) {
|
||||||
|
FILE_LOG(logDEBUG1) << "Id (" << mode << "): 0x" << std::hex << retval << std::dec;
|
||||||
|
}
|
||||||
|
if (ret == FORCE_UPDATE) {
|
||||||
|
updateDetector();
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
int64_t slsDetector::getReceiverSoftwareVersion() const {
|
||||||
|
int ret = FAIL;
|
||||||
|
int arg = RECEIVER_VERSION;
|
||||||
|
int64_t retval = -1;
|
||||||
|
FILE_LOG(logDEBUG1) << "Getting id type " << arg;
|
||||||
|
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
||||||
|
int fnum = F_GET_RECEIVER_ID;
|
||||||
|
auto receiver = sls::ClientSocket(true, detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
|
||||||
|
ret = receiver.sendCommandThenRead(fnum, nullptr, 0, &retval, sizeof(retval));
|
||||||
|
}
|
||||||
|
if (ret == FORCE_UPDATE) {
|
||||||
|
ret = updateCachedReceiverVariables();
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
void slsDetector::freeSharedMemory(int multi_id, int slsId) {
|
void slsDetector::freeSharedMemory(int multi_id, int slsId) {
|
||||||
@ -224,8 +231,8 @@ void slsDetector::initSharedMemory(detectorType type,
|
|||||||
FILE_LOG(logERROR) << "Single shared memory "
|
FILE_LOG(logERROR) << "Single shared memory "
|
||||||
"("
|
"("
|
||||||
<< multi_id << "-" << detId << ":) "
|
<< multi_id << "-" << detId << ":) "
|
||||||
"version mismatch "
|
"version mismatch "
|
||||||
"(expected 0x"
|
"(expected 0x"
|
||||||
<< std::hex << SLS_SHMVERSION << " but got 0x" << detector_shm()->shmversion << ")" << std::dec;
|
<< std::hex << SLS_SHMVERSION << " but got 0x" << detector_shm()->shmversion << ")" << std::dec;
|
||||||
throw SharedMemoryError("Shared memory version mismatch (det)");
|
throw SharedMemoryError("Shared memory version mismatch (det)");
|
||||||
}
|
}
|
||||||
@ -531,7 +538,7 @@ int slsDetector::receiveModule(sls_detector_module *myMod, sls::ClientSocket &cl
|
|||||||
slsDetectorDefs::detectorType slsDetector::getDetectorTypeFromShm(int multi_id, bool verify) {
|
slsDetectorDefs::detectorType slsDetector::getDetectorTypeFromShm(int multi_id, bool verify) {
|
||||||
if (!detector_shm.IsExisting()) {
|
if (!detector_shm.IsExisting()) {
|
||||||
FILE_LOG(logERROR) << "Shared memory " << detector_shm.GetName() << " does not exist.\n"
|
FILE_LOG(logERROR) << "Shared memory " << detector_shm.GetName() << " does not exist.\n"
|
||||||
"Corrupted Multi Shared memory. Please free shared memory.";
|
"Corrupted Multi Shared memory. Please free shared memory.";
|
||||||
throw SharedMemoryError("Corrupted multi shared memory.");
|
throw SharedMemoryError("Corrupted multi shared memory.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -542,7 +549,7 @@ slsDetectorDefs::detectorType slsDetector::getDetectorTypeFromShm(int multi_id,
|
|||||||
FILE_LOG(logERROR) << "Single shared memory "
|
FILE_LOG(logERROR) << "Single shared memory "
|
||||||
"("
|
"("
|
||||||
<< multi_id << "-" << detId << ":)version mismatch "
|
<< multi_id << "-" << detId << ":)version mismatch "
|
||||||
"(expected 0x"
|
"(expected 0x"
|
||||||
<< std::hex << SLS_SHMVERSION << " but got 0x" << detector_shm()->shmversion << ")" << std::dec;
|
<< std::hex << SLS_SHMVERSION << " but got 0x" << detector_shm()->shmversion << ")" << std::dec;
|
||||||
// unmap and throw
|
// unmap and throw
|
||||||
detector_shm.UnmapSharedMemory();
|
detector_shm.UnmapSharedMemory();
|
||||||
@ -621,7 +628,7 @@ int slsDetector::setDetectorType(detectorType const type) {
|
|||||||
|
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
receiver.close(); //need to find a better solution
|
receiver.close(); //need to find a better solution
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -830,12 +837,12 @@ int slsDetector::setReceiverPort(int port_number) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return detector_shm()->receiverTCPPort;
|
return detector_shm()->receiverTCPPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetector::getReceiverPort() const{
|
int slsDetector::getReceiverPort() const {
|
||||||
return detector_shm()->receiverTCPPort;
|
return detector_shm()->receiverTCPPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -847,7 +854,6 @@ int slsDetector::getStopPort() const {
|
|||||||
return detector_shm()->stopPort;
|
return detector_shm()->stopPort;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int slsDetector::lockServer(int lock) {
|
int slsDetector::lockServer(int lock) {
|
||||||
int fnum = F_LOCK_SERVER;
|
int fnum = F_LOCK_SERVER;
|
||||||
int ret = FAIL;
|
int ret = FAIL;
|
||||||
@ -1395,8 +1401,6 @@ int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isetti
|
|||||||
// myMod = createModule();
|
// myMod = createModule();
|
||||||
// myMod->iodelay = myMod1->iodelay;
|
// myMod->iodelay = myMod1->iodelay;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//interpolate module
|
//interpolate module
|
||||||
myMod = interpolateTrim(myMod1, myMod2, e_eV, trim1, trim2, tb);
|
myMod = interpolateTrim(myMod1, myMod2, e_eV, trim1, trim2, tb);
|
||||||
if (myMod == nullptr) {
|
if (myMod == nullptr) {
|
||||||
@ -1912,7 +1916,7 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t) {
|
|||||||
}
|
}
|
||||||
} else if (ret == FORCE_UPDATE) {
|
} else if (ret == FORCE_UPDATE) {
|
||||||
receiver.close();
|
receiver.close();
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@ -2045,7 +2049,7 @@ int slsDetector::setDynamicRange(int n) {
|
|||||||
FILE_LOG(logDEBUG1) << "Receiver Dynamic range: " << retval;
|
FILE_LOG(logDEBUG1) << "Receiver Dynamic range: " << retval;
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
receiver.close();
|
receiver.close();
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2205,7 +2209,7 @@ int slsDetector::setReadOutFlags(readOutFlags flag) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2541,7 +2545,7 @@ void slsDetector::setReceiverStreamingPort(int port) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2617,7 +2621,7 @@ void slsDetector::setReceiverStreamingIP(std::string sourceIP) {
|
|||||||
sls::strcpy_safe(detector_shm()->receiver_zmqip, retvals);
|
sls::strcpy_safe(detector_shm()->receiver_zmqip, retvals);
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
receiver.close();
|
receiver.close();
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2673,7 +2677,7 @@ std::string slsDetector::setAdditionalJsonHeader(const std::string &jsonheader)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return std::string(detector_shm()->receiver_additionalJsonHeader);
|
return std::string(detector_shm()->receiver_additionalJsonHeader);
|
||||||
}
|
}
|
||||||
@ -2696,7 +2700,7 @@ std::string slsDetector::getAdditionalJsonHeader() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return std::string(detector_shm()->receiver_additionalJsonHeader);
|
return std::string(detector_shm()->receiver_additionalJsonHeader);
|
||||||
}
|
}
|
||||||
@ -2798,7 +2802,7 @@ int64_t slsDetector::setReceiverUDPSocketBufferSize(int64_t udpsockbufsize) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -2824,7 +2828,7 @@ int64_t slsDetector::getReceiverRealUDPSocketBufferSize() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -2879,7 +2883,7 @@ int slsDetector::setUDPConnection() {
|
|||||||
sls::strcpy_safe(detector_shm()->receiverUDPMAC, retvals);
|
sls::strcpy_safe(detector_shm()->receiverUDPMAC, retvals);
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
receiver.close();
|
receiver.close();
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
|
|
||||||
//configure detector with udp details
|
//configure detector with udp details
|
||||||
@ -3190,7 +3194,7 @@ int slsDetector::sendROI(int n, ROI roiLimits[]) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -3255,7 +3259,7 @@ int slsDetector::activate(int const enable) {
|
|||||||
setErrorMask((getErrorMask()) | (RECEIVER_ACTIVATE));
|
setErrorMask((getErrorMask()) | (RECEIVER_ACTIVATE));
|
||||||
} else if (ret == FORCE_UPDATE) {
|
} else if (ret == FORCE_UPDATE) {
|
||||||
receiver.close();
|
receiver.close();
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->activated;
|
return detector_shm()->activated;
|
||||||
@ -3280,7 +3284,7 @@ int slsDetector::setDeactivatedRxrPaddingMode(int padding) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_deactivatedPaddingEnable;
|
return detector_shm()->receiver_deactivatedPaddingEnable;
|
||||||
}
|
}
|
||||||
@ -3320,7 +3324,7 @@ int slsDetector::setFlippedData(dimension d, int value) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return detector_shm()->flippedData[d];
|
return detector_shm()->flippedData[d];
|
||||||
}
|
}
|
||||||
@ -3378,7 +3382,7 @@ int slsDetector::enableGapPixels(int val) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->gappixels;
|
return detector_shm()->gappixels;
|
||||||
@ -4075,7 +4079,7 @@ int slsDetector::lockReceiver(int lock) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4097,7 +4101,7 @@ std::string slsDetector::getReceiverLastClientIP() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4138,105 +4142,107 @@ int slsDetector::execReceiverCommand(const std::string &cmd) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int slsDetector::updateReceiverNoWait(sls::ClientSocket &receiver) {
|
int slsDetector::updateCachedReceiverVariables() const {
|
||||||
|
|
||||||
int n = 0, i32 = 0;
|
|
||||||
char cstring[MAX_STR_LENGTH] = {};
|
|
||||||
char lastClientIP[INET_ADDRSTRLEN] = {};
|
|
||||||
|
|
||||||
n += receiver.receiveData(lastClientIP, sizeof(lastClientIP));
|
|
||||||
FILE_LOG(logDEBUG1) << "Updating receiver last modified by " << lastClientIP;
|
|
||||||
|
|
||||||
// filepath
|
|
||||||
n += receiver.receiveData(cstring, sizeof(cstring));
|
|
||||||
sls::strcpy_safe(detector_shm()->receiver_filePath, cstring);
|
|
||||||
|
|
||||||
// filename
|
|
||||||
n += receiver.receiveData(cstring, sizeof(cstring));
|
|
||||||
sls::strcpy_safe(detector_shm()->receiver_fileName, cstring);
|
|
||||||
|
|
||||||
// index
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_fileIndex = i32;
|
|
||||||
|
|
||||||
//file format
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_fileFormatType = (fileFormat)i32;
|
|
||||||
|
|
||||||
// frames per file
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_framesPerFile = i32;
|
|
||||||
|
|
||||||
// frame discard policy
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_frameDiscardMode = (frameDiscardPolicy)i32;
|
|
||||||
|
|
||||||
// frame padding
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_framePadding = i32;
|
|
||||||
|
|
||||||
// file write enable
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_fileWriteEnable = i32;
|
|
||||||
|
|
||||||
// file overwrite enable
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_overWriteEnable = i32;
|
|
||||||
|
|
||||||
// gap pixels
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->gappixels = i32;
|
|
||||||
|
|
||||||
// receiver read frequency
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_read_freq = i32;
|
|
||||||
|
|
||||||
// receiver streaming port
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_zmqport = i32;
|
|
||||||
|
|
||||||
// streaming source ip
|
|
||||||
n += receiver.receiveData(cstring, sizeof(cstring));
|
|
||||||
sls::strcpy_safe(detector_shm()->receiver_zmqip, cstring);
|
|
||||||
|
|
||||||
// additional json header
|
|
||||||
n += receiver.receiveData(cstring, sizeof(cstring));
|
|
||||||
sls::strcpy_safe(detector_shm()->receiver_additionalJsonHeader, cstring);
|
|
||||||
|
|
||||||
// receiver streaming enable
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_upstream = i32;
|
|
||||||
|
|
||||||
// activate
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->activated = i32;
|
|
||||||
|
|
||||||
// deactivated padding enable
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_deactivatedPaddingEnable = i32;
|
|
||||||
|
|
||||||
// silent mode
|
|
||||||
n += receiver.receiveData(&i32, sizeof(i32));
|
|
||||||
detector_shm()->receiver_silentMode = i32;
|
|
||||||
|
|
||||||
if (!n) {
|
|
||||||
FILE_LOG(logERROR) << "Could not update receiver, received 0 bytes\n";
|
|
||||||
}
|
|
||||||
return OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
int slsDetector::updateReceiver() {
|
|
||||||
int fnum = F_UPDATE_RECEIVER_CLIENT;
|
int fnum = F_UPDATE_RECEIVER_CLIENT;
|
||||||
int ret = FAIL;
|
int ret = FAIL;
|
||||||
FILE_LOG(logDEBUG1) << "Sending update client to receiver server";
|
FILE_LOG(logDEBUG1) << "Sending update client to receiver server";
|
||||||
|
|
||||||
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
||||||
auto receiver = sls::ClientSocket(true, detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
|
auto receiver = sls::ClientSocket(true,
|
||||||
|
detector_shm()->receiver_hostname,
|
||||||
|
detector_shm()->receiverTCPPort);
|
||||||
ret = receiver.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0);
|
ret = receiver.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0);
|
||||||
if (ret == FAIL) {
|
if (ret == FAIL) {
|
||||||
setErrorMask((getErrorMask()) | (OTHER_ERROR_CODE));
|
std::string msg = "Could not update receiver: " + std::string(detector_shm()->receiver_hostname);
|
||||||
|
throw RuntimeError(msg);
|
||||||
} else {
|
} else {
|
||||||
updateReceiverNoWait(receiver);
|
int n = 0, i32 = 0;
|
||||||
|
char cstring[MAX_STR_LENGTH] = {};
|
||||||
|
char lastClientIP[INET_ADDRSTRLEN] = {};
|
||||||
|
|
||||||
|
n += receiver.receiveData(lastClientIP, sizeof(lastClientIP));
|
||||||
|
FILE_LOG(logDEBUG1) << "Updating receiver last modified by " << lastClientIP;
|
||||||
|
|
||||||
|
// filepath
|
||||||
|
n += receiver.receiveData(cstring, sizeof(cstring));
|
||||||
|
sls::strcpy_safe(detector_shm()->receiver_filePath, cstring);
|
||||||
|
|
||||||
|
// filename
|
||||||
|
n += receiver.receiveData(cstring, sizeof(cstring));
|
||||||
|
sls::strcpy_safe(detector_shm()->receiver_fileName, cstring);
|
||||||
|
|
||||||
|
// index
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_fileIndex = i32;
|
||||||
|
|
||||||
|
//file format
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_fileFormatType = (fileFormat)i32;
|
||||||
|
|
||||||
|
// frames per file
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_framesPerFile = i32;
|
||||||
|
|
||||||
|
// frame discard policy
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_frameDiscardMode = (frameDiscardPolicy)i32;
|
||||||
|
|
||||||
|
// frame padding
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_framePadding = i32;
|
||||||
|
|
||||||
|
// file write enable
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_fileWriteEnable = i32;
|
||||||
|
|
||||||
|
// file overwrite enable
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_overWriteEnable = i32;
|
||||||
|
|
||||||
|
// gap pixels
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->gappixels = i32;
|
||||||
|
|
||||||
|
// receiver read frequency
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_read_freq = i32;
|
||||||
|
|
||||||
|
// receiver streaming port
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_zmqport = i32;
|
||||||
|
|
||||||
|
// streaming source ip
|
||||||
|
n += receiver.receiveData(cstring, sizeof(cstring));
|
||||||
|
sls::strcpy_safe(detector_shm()->receiver_zmqip, cstring);
|
||||||
|
|
||||||
|
// additional json header
|
||||||
|
n += receiver.receiveData(cstring, sizeof(cstring));
|
||||||
|
sls::strcpy_safe(detector_shm()->receiver_additionalJsonHeader, cstring);
|
||||||
|
|
||||||
|
// receiver streaming enable
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_upstream = i32;
|
||||||
|
|
||||||
|
// activate
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->activated = i32;
|
||||||
|
|
||||||
|
// deactivated padding enable
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_deactivatedPaddingEnable = i32;
|
||||||
|
|
||||||
|
// silent mode
|
||||||
|
n += receiver.receiveData(&i32, sizeof(i32));
|
||||||
|
detector_shm()->receiver_silentMode = i32;
|
||||||
|
|
||||||
|
if (!n) {
|
||||||
|
std::string msg = "Could not update receiver: " +
|
||||||
|
std::string(detector_shm()->receiver_hostname) +
|
||||||
|
", received 0 bytes\n";
|
||||||
|
FILE_LOG(logERROR) << msg;
|
||||||
|
throw RuntimeError(msg);
|
||||||
|
}
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -4260,7 +4266,7 @@ void slsDetector::sendMultiDetectorSize() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4282,7 +4288,7 @@ void slsDetector::setDetectorId() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4305,7 +4311,7 @@ void slsDetector::setDetectorHostname() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4339,7 +4345,7 @@ std::string slsDetector::setFilePath(const std::string &path) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_filePath;
|
return detector_shm()->receiver_filePath;
|
||||||
@ -4370,7 +4376,7 @@ std::string slsDetector::setFileName(const std::string &fname) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_fileName;
|
return detector_shm()->receiver_fileName;
|
||||||
@ -4397,7 +4403,7 @@ int slsDetector::setReceiverFramesPerFile(int f) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_framesPerFile;
|
return detector_shm()->receiver_framesPerFile;
|
||||||
@ -4421,7 +4427,7 @@ slsDetectorDefs::frameDiscardPolicy slsDetector::setReceiverFramesDiscardPolicy(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_frameDiscardMode;
|
return detector_shm()->receiver_frameDiscardMode;
|
||||||
}
|
}
|
||||||
@ -4446,7 +4452,7 @@ int slsDetector::setReceiverPartialFramesPadding(int f) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_framePadding;
|
return detector_shm()->receiver_framePadding;
|
||||||
}
|
}
|
||||||
@ -4472,7 +4478,7 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return getFileFormat();
|
return getFileFormat();
|
||||||
@ -4507,7 +4513,7 @@ int slsDetector::setFileIndex(int i) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateReceiver();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_fileIndex;
|
return detector_shm()->receiver_fileIndex;
|
||||||
@ -4543,7 +4549,7 @@ int slsDetector::startReceiver() {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateReceiver();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4562,7 +4568,7 @@ int slsDetector::stopReceiver() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4585,7 +4591,7 @@ slsDetectorDefs::runStatus slsDetector::getReceiverStatus() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateReceiver(); //Do we need to handle this ret?
|
updateCachedReceiverVariables(); //Do we need to handle this ret?
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4606,7 +4612,7 @@ int slsDetector::getFramesCaughtByReceiver() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateReceiver();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4626,7 +4632,7 @@ int slsDetector::getReceiverCurrentFrameIndex() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateReceiver();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4644,7 +4650,7 @@ int slsDetector::resetFramesCaught() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateReceiver();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4667,7 +4673,7 @@ int slsDetector::enableWriteToFile(int enable) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_fileWriteEnable;
|
return detector_shm()->receiver_fileWriteEnable;
|
||||||
@ -4692,7 +4698,7 @@ int slsDetector::overwriteFile(int enable) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_overWriteEnable;
|
return detector_shm()->receiver_overWriteEnable;
|
||||||
@ -4717,7 +4723,7 @@ int slsDetector::setReceiverStreamingFrequency(int freq) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_read_freq;
|
return detector_shm()->receiver_read_freq;
|
||||||
@ -4740,7 +4746,7 @@ int slsDetector::setReceiverStreamingTimer(int time_in_ms) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4764,7 +4770,7 @@ int slsDetector::enableDataStreamingFromReceiver(int enable) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_upstream;
|
return detector_shm()->receiver_upstream;
|
||||||
@ -4809,7 +4815,7 @@ int slsDetector::enableTenGigabitEthernet(int i) {
|
|||||||
FILE_LOG(logDEBUG1) << "Receiver 10Gbe enable: " << retval;
|
FILE_LOG(logDEBUG1) << "Receiver 10Gbe enable: " << retval;
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
receiver.close();
|
receiver.close();
|
||||||
updateReceiver();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4835,7 +4841,7 @@ int slsDetector::setReceiverFifoDepth(int i) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
updateReceiver();
|
updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -4860,7 +4866,7 @@ int slsDetector::setReceiverSilentMode(int i) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return detector_shm()->receiver_silentMode;
|
return detector_shm()->receiver_silentMode;
|
||||||
}
|
}
|
||||||
@ -4880,7 +4886,7 @@ int slsDetector::restreamStopFromReceiver() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret == FORCE_UPDATE) {
|
if (ret == FORCE_UPDATE) {
|
||||||
ret = updateReceiver();
|
ret = updateCachedReceiverVariables();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -295,6 +295,9 @@ class slsDetector : public virtual slsDetectorDefs, public virtual errorDefs {
|
|||||||
*/
|
*/
|
||||||
int64_t getId(idMode mode);
|
int64_t getId(idMode mode);
|
||||||
|
|
||||||
|
|
||||||
|
int64_t getReceiverSoftwareVersion() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Free shared memory without creating objects
|
* Free shared memory without creating objects
|
||||||
* If this is called, must take care to update
|
* If this is called, must take care to update
|
||||||
@ -1318,13 +1321,13 @@ class slsDetector : public virtual slsDetectorDefs, public virtual errorDefs {
|
|||||||
updates the shared memory receiving the data from the detector (without asking and closing the connection
|
updates the shared memory receiving the data from the detector (without asking and closing the connection
|
||||||
/returns OK
|
/returns OK
|
||||||
*/
|
*/
|
||||||
int updateReceiverNoWait(sls::ClientSocket &receiver);
|
// int updateReceiverNoWait(sls::ClientSocket &receiver);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates the shared memory receiving the data from the detector
|
* Updates the shared memory receiving the data from the detector
|
||||||
* @returns OK or FAIL
|
* @returns OK or FAIL
|
||||||
*/
|
*/
|
||||||
int updateReceiver();
|
int updateCachedReceiverVariables() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Send the multi detector size to the detector
|
* Send the multi detector size to the detector
|
||||||
@ -1736,7 +1739,7 @@ class slsDetector : public virtual slsDetectorDefs, public virtual errorDefs {
|
|||||||
const int detId;
|
const int detId;
|
||||||
|
|
||||||
/** Shared Memory object */
|
/** Shared Memory object */
|
||||||
sls::SharedMemory<sharedSlsDetector> detector_shm{0,0};
|
mutable sls::SharedMemory<sharedSlsDetector> detector_shm{0,0};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3465,7 +3465,7 @@ std::string slsDetectorCommand::cmdSN(int narg, char *args[], int action, int de
|
|||||||
return helpSN(action);
|
return helpSN(action);
|
||||||
|
|
||||||
if (cmd == "thisversion") {
|
if (cmd == "thisversion") {
|
||||||
int64_t retval = myDet->getId(THIS_SOFTWARE_VERSION, detPos);
|
int64_t retval = myDet->getClientSoftwareVersion();
|
||||||
if (retval < 0)
|
if (retval < 0)
|
||||||
sprintf(answer, "%d", -1);
|
sprintf(answer, "%d", -1);
|
||||||
else
|
else
|
||||||
@ -3504,7 +3504,7 @@ std::string slsDetectorCommand::cmdSN(int narg, char *args[], int action, int de
|
|||||||
|
|
||||||
if (cmd == "receiverversion") {
|
if (cmd == "receiverversion") {
|
||||||
myDet->setReceiverOnline(ONLINE_FLAG, detPos);
|
myDet->setReceiverOnline(ONLINE_FLAG, detPos);
|
||||||
int64_t retval = myDet->getId(RECEIVER_VERSION, detPos);
|
int64_t retval = myDet->getReceiverSoftwareVersion(detPos);
|
||||||
if (retval < 0)
|
if (retval < 0)
|
||||||
sprintf(answer, "%d", -1);
|
sprintf(answer, "%d", -1);
|
||||||
else
|
else
|
||||||
|
@ -66,8 +66,8 @@ int64_t slsDetectorUsers::getDetectorSoftwareVersion(int detPos){
|
|||||||
return detector.getId(slsDetectorDefs::DETECTOR_SOFTWARE_VERSION, detPos);
|
return detector.getId(slsDetectorDefs::DETECTOR_SOFTWARE_VERSION, detPos);
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t slsDetectorUsers::getClientSoftwareVersion(int detPos){
|
int64_t slsDetectorUsers::getClientSoftwareVersion(){
|
||||||
return detector.getId(slsDetectorDefs::THIS_SOFTWARE_VERSION, detPos);
|
return detector.getClientSoftwareVersion();
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t slsDetectorUsers::getReceiverSoftwareVersion(int detPos){
|
int64_t slsDetectorUsers::getReceiverSoftwareVersion(int detPos){
|
||||||
|
@ -199,10 +199,9 @@ public:
|
|||||||
/**
|
/**
|
||||||
* (previously getThisSoftwareVersion)
|
* (previously getThisSoftwareVersion)
|
||||||
* Get client software version
|
* Get client software version
|
||||||
* @param detPos -1 for all detectors in list or specific detector position
|
|
||||||
* @returns client software version
|
* @returns client software version
|
||||||
*/
|
*/
|
||||||
int64_t getClientSoftwareVersion(int detPos = -1);
|
int64_t getClientSoftwareVersion();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get receiver software version
|
* Get receiver software version
|
||||||
|
@ -36,6 +36,11 @@ public:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct NotImplementedError : public RuntimeError {
|
||||||
|
public:
|
||||||
|
NotImplementedError(std::string msg):RuntimeError(msg) {}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user