mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-24 07:20:01 +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() {
|
||||
|
||||
//Catch exception
|
||||
try {
|
||||
throw RuntimeError("something went wrong");
|
||||
} catch (RuntimeError &e) {
|
||||
std::cout << "Caught RuntimeError with message : " << e.what() << '\n';
|
||||
}
|
||||
|
||||
//Catch base class
|
||||
try {
|
||||
throw SharedMemoryError("Could not create shared memory");
|
||||
} catch (RuntimeError &e) {
|
||||
std::cout << "Caught: " << e.what() << '\n';
|
||||
}
|
||||
// const std::string hostname = "beb083";
|
||||
// auto type = slsDetector::getTypeFromDetector(hostname);
|
||||
// slsDetector d(type);
|
||||
// d.setHostname(hostname);
|
||||
// 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
|
||||
try {
|
||||
throw SharedMemoryError("Could not create shared memory");
|
||||
} catch (SocketError &e) {
|
||||
// //Catch base class
|
||||
// try {
|
||||
// throw SharedMemoryError("Could not create shared memory");
|
||||
// } 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 base class: " << e.what() << '\n';
|
||||
}
|
||||
// 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 (RuntimeError &e) {
|
||||
// std::cout << "Caught base class: " << e.what() << '\n';
|
||||
// }
|
||||
|
||||
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 Something else probably should have let me crash\n";
|
||||
}
|
||||
// std::cout << "Caught Socket error: " << e.what() << '\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;
|
||||
}
|
||||
|
@ -176,6 +176,15 @@ int64_t multiSlsDetector::getId(idMode mode, int detPos) {
|
||||
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() {
|
||||
return parallelCall(&slsDetector::getId, slsDetectorDefs::DETECTOR_SERIAL_NUMBER);
|
||||
}
|
||||
|
@ -9,6 +9,7 @@
|
||||
*/
|
||||
#include "SharedMemory.h"
|
||||
#include "error_defs.h"
|
||||
#include "gitInfoLib.h"
|
||||
#include "logger.h"
|
||||
#include "sls_detector_defs.h"
|
||||
class slsDetector;
|
||||
@ -225,6 +226,12 @@ class multiSlsDetector : public virtual slsDetectorDefs,
|
||||
*/
|
||||
int64_t getId(idMode mode, int detPos = -1);
|
||||
|
||||
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
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
using sls::NotImplementedError;
|
||||
using sls::RuntimeError;
|
||||
using sls::SharedMemory;
|
||||
using sls::SharedMemoryError;
|
||||
@ -63,7 +64,6 @@ slsDetector::~slsDetector() = default;
|
||||
int slsDetector::checkDetectorVersionCompatibility() {
|
||||
int fnum = F_CHECK_VERSION;
|
||||
int ret = FAIL;
|
||||
// char mess[MAX_STR_LENGTH]{};
|
||||
int64_t arg = 0;
|
||||
|
||||
// get api version number for detector server
|
||||
@ -153,25 +153,17 @@ int slsDetector::checkReceiverVersionCompatibility() {
|
||||
return ret;
|
||||
}
|
||||
|
||||
int64_t slsDetector::getId(idMode mode){
|
||||
int64_t slsDetector::getId(idMode mode) {
|
||||
int arg = (int)mode;
|
||||
int64_t retval = -1;
|
||||
FILE_LOG(logDEBUG1) << "Getting id type " << mode;
|
||||
|
||||
if (mode == THIS_SOFTWARE_VERSION) {
|
||||
return GITDATE;
|
||||
} else if (mode == RECEIVER_VERSION) {
|
||||
int ret = FAIL;
|
||||
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 = updateReceiver();
|
||||
}
|
||||
return retval;
|
||||
} else {
|
||||
//These four should not go to detector...
|
||||
assert(mode != THIS_SOFTWARE_VERSION);
|
||||
assert(mode != RECEIVER_VERSION);
|
||||
assert(mode != CLIENT_SOFTWARE_API_VERSION);
|
||||
assert(mode != CLIENT_RECEIVER_API_VERSION);
|
||||
|
||||
int fnum = F_GET_ID;
|
||||
int ret = FAIL;
|
||||
if (detector_shm()->onlineFlag == ONLINE_FLAG) {
|
||||
@ -185,7 +177,22 @@ int64_t slsDetector::getId(idMode mode){
|
||||
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) {
|
||||
@ -621,7 +628,7 @@ int slsDetector::setDetectorType(detectorType const type) {
|
||||
|
||||
if (ret == FORCE_UPDATE) {
|
||||
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) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return detector_shm()->receiverTCPPort;
|
||||
}
|
||||
|
||||
int slsDetector::getReceiverPort() const{
|
||||
int slsDetector::getReceiverPort() const {
|
||||
return detector_shm()->receiverTCPPort;
|
||||
}
|
||||
|
||||
@ -847,7 +854,6 @@ int slsDetector::getStopPort() const {
|
||||
return detector_shm()->stopPort;
|
||||
}
|
||||
|
||||
|
||||
int slsDetector::lockServer(int lock) {
|
||||
int fnum = F_LOCK_SERVER;
|
||||
int ret = FAIL;
|
||||
@ -1395,8 +1401,6 @@ int slsDetector::setThresholdEnergyAndSettings(int e_eV, detectorSettings isetti
|
||||
// myMod = createModule();
|
||||
// myMod->iodelay = myMod1->iodelay;
|
||||
|
||||
|
||||
|
||||
//interpolate module
|
||||
myMod = interpolateTrim(myMod1, myMod2, e_eV, trim1, trim2, tb);
|
||||
if (myMod == nullptr) {
|
||||
@ -1912,7 +1916,7 @@ int64_t slsDetector::setTimer(timerIndex index, int64_t t) {
|
||||
}
|
||||
} else if (ret == FORCE_UPDATE) {
|
||||
receiver.close();
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
|
||||
break;
|
||||
@ -2045,7 +2049,7 @@ int slsDetector::setDynamicRange(int n) {
|
||||
FILE_LOG(logDEBUG1) << "Receiver Dynamic range: " << retval;
|
||||
if (ret == FORCE_UPDATE) {
|
||||
receiver.close();
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2205,7 +2209,7 @@ int slsDetector::setReadOutFlags(readOutFlags flag) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
|
||||
@ -2541,7 +2545,7 @@ void slsDetector::setReceiverStreamingPort(int port) {
|
||||
}
|
||||
}
|
||||
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);
|
||||
if (ret == FORCE_UPDATE) {
|
||||
receiver.close();
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2673,7 +2677,7 @@ std::string slsDetector::setAdditionalJsonHeader(const std::string &jsonheader)
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return std::string(detector_shm()->receiver_additionalJsonHeader);
|
||||
}
|
||||
@ -2696,7 +2700,7 @@ std::string slsDetector::getAdditionalJsonHeader() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return std::string(detector_shm()->receiver_additionalJsonHeader);
|
||||
}
|
||||
@ -2798,7 +2802,7 @@ int64_t slsDetector::setReceiverUDPSocketBufferSize(int64_t udpsockbufsize) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -2824,7 +2828,7 @@ int64_t slsDetector::getReceiverRealUDPSocketBufferSize() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -2879,7 +2883,7 @@ int slsDetector::setUDPConnection() {
|
||||
sls::strcpy_safe(detector_shm()->receiverUDPMAC, retvals);
|
||||
if (ret == FORCE_UPDATE) {
|
||||
receiver.close();
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
|
||||
//configure detector with udp details
|
||||
@ -3190,7 +3194,7 @@ int slsDetector::sendROI(int n, ROI roiLimits[]) {
|
||||
}
|
||||
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
@ -3255,7 +3259,7 @@ int slsDetector::activate(int const enable) {
|
||||
setErrorMask((getErrorMask()) | (RECEIVER_ACTIVATE));
|
||||
} else if (ret == FORCE_UPDATE) {
|
||||
receiver.close();
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->activated;
|
||||
@ -3280,7 +3284,7 @@ int slsDetector::setDeactivatedRxrPaddingMode(int padding) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return detector_shm()->receiver_deactivatedPaddingEnable;
|
||||
}
|
||||
@ -3320,7 +3324,7 @@ int slsDetector::setFlippedData(dimension d, int value) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return detector_shm()->flippedData[d];
|
||||
}
|
||||
@ -3378,7 +3382,7 @@ int slsDetector::enableGapPixels(int val) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->gappixels;
|
||||
@ -4075,7 +4079,7 @@ int slsDetector::lockReceiver(int lock) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -4097,7 +4101,7 @@ std::string slsDetector::getReceiverLastClientIP() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -4138,8 +4142,20 @@ int slsDetector::execReceiverCommand(const std::string &cmd) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
int slsDetector::updateReceiverNoWait(sls::ClientSocket &receiver) {
|
||||
int slsDetector::updateCachedReceiverVariables() const {
|
||||
int fnum = F_UPDATE_RECEIVER_CLIENT;
|
||||
int ret = FAIL;
|
||||
FILE_LOG(logDEBUG1) << "Sending update client to receiver server";
|
||||
|
||||
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
||||
auto receiver = sls::ClientSocket(true,
|
||||
detector_shm()->receiver_hostname,
|
||||
detector_shm()->receiverTCPPort);
|
||||
ret = receiver.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0);
|
||||
if (ret == FAIL) {
|
||||
std::string msg = "Could not update receiver: " + std::string(detector_shm()->receiver_hostname);
|
||||
throw RuntimeError(msg);
|
||||
} else {
|
||||
int n = 0, i32 = 0;
|
||||
char cstring[MAX_STR_LENGTH] = {};
|
||||
char lastClientIP[INET_ADDRSTRLEN] = {};
|
||||
@ -4220,23 +4236,13 @@ int slsDetector::updateReceiverNoWait(sls::ClientSocket &receiver) {
|
||||
detector_shm()->receiver_silentMode = i32;
|
||||
|
||||
if (!n) {
|
||||
FILE_LOG(logERROR) << "Could not update receiver, received 0 bytes\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;
|
||||
}
|
||||
|
||||
int slsDetector::updateReceiver() {
|
||||
int fnum = F_UPDATE_RECEIVER_CLIENT;
|
||||
int ret = FAIL;
|
||||
FILE_LOG(logDEBUG1) << "Sending update client to receiver server";
|
||||
|
||||
if (detector_shm()->receiverOnlineFlag == ONLINE_FLAG) {
|
||||
auto receiver = sls::ClientSocket(true, detector_shm()->receiver_hostname, detector_shm()->receiverTCPPort);
|
||||
ret = receiver.sendCommandThenRead(fnum, nullptr, 0, nullptr, 0);
|
||||
if (ret == FAIL) {
|
||||
setErrorMask((getErrorMask()) | (OTHER_ERROR_CODE));
|
||||
} else {
|
||||
updateReceiverNoWait(receiver);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
@ -4260,7 +4266,7 @@ void slsDetector::sendMultiDetectorSize() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
|
||||
@ -4282,7 +4288,7 @@ void slsDetector::setDetectorId() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
|
||||
@ -4305,7 +4311,7 @@ void slsDetector::setDetectorHostname() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
|
||||
@ -4339,7 +4345,7 @@ std::string slsDetector::setFilePath(const std::string &path) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_filePath;
|
||||
@ -4370,7 +4376,7 @@ std::string slsDetector::setFileName(const std::string &fname) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_fileName;
|
||||
@ -4397,7 +4403,7 @@ int slsDetector::setReceiverFramesPerFile(int f) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_framesPerFile;
|
||||
@ -4421,7 +4427,7 @@ slsDetectorDefs::frameDiscardPolicy slsDetector::setReceiverFramesDiscardPolicy(
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return detector_shm()->receiver_frameDiscardMode;
|
||||
}
|
||||
@ -4446,7 +4452,7 @@ int slsDetector::setReceiverPartialFramesPadding(int f) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return detector_shm()->receiver_framePadding;
|
||||
}
|
||||
@ -4472,7 +4478,7 @@ slsDetectorDefs::fileFormat slsDetector::setFileFormat(fileFormat f) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return getFileFormat();
|
||||
@ -4507,7 +4513,7 @@ int slsDetector::setFileIndex(int i) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateReceiver();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_fileIndex;
|
||||
@ -4543,7 +4549,7 @@ int slsDetector::startReceiver() {
|
||||
// }
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateReceiver();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -4562,7 +4568,7 @@ int slsDetector::stopReceiver() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -4585,7 +4591,7 @@ slsDetectorDefs::runStatus slsDetector::getReceiverStatus() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateReceiver(); //Do we need to handle this ret?
|
||||
updateCachedReceiverVariables(); //Do we need to handle this ret?
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -4606,7 +4612,7 @@ int slsDetector::getFramesCaughtByReceiver() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateReceiver();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -4626,7 +4632,7 @@ int slsDetector::getReceiverCurrentFrameIndex() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateReceiver();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -4644,7 +4650,7 @@ int slsDetector::resetFramesCaught() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateReceiver();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -4667,7 +4673,7 @@ int slsDetector::enableWriteToFile(int enable) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_fileWriteEnable;
|
||||
@ -4692,7 +4698,7 @@ int slsDetector::overwriteFile(int enable) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_overWriteEnable;
|
||||
@ -4717,7 +4723,7 @@ int slsDetector::setReceiverStreamingFrequency(int freq) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_read_freq;
|
||||
@ -4740,7 +4746,7 @@ int slsDetector::setReceiverStreamingTimer(int time_in_ms) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -4764,7 +4770,7 @@ int slsDetector::enableDataStreamingFromReceiver(int enable) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
return detector_shm()->receiver_upstream;
|
||||
@ -4809,7 +4815,7 @@ int slsDetector::enableTenGigabitEthernet(int i) {
|
||||
FILE_LOG(logDEBUG1) << "Receiver 10Gbe enable: " << retval;
|
||||
if (ret == FORCE_UPDATE) {
|
||||
receiver.close();
|
||||
updateReceiver();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -4835,7 +4841,7 @@ int slsDetector::setReceiverFifoDepth(int i) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
updateReceiver();
|
||||
updateCachedReceiverVariables();
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
@ -4860,7 +4866,7 @@ int slsDetector::setReceiverSilentMode(int i) {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return detector_shm()->receiver_silentMode;
|
||||
}
|
||||
@ -4880,7 +4886,7 @@ int slsDetector::restreamStopFromReceiver() {
|
||||
}
|
||||
}
|
||||
if (ret == FORCE_UPDATE) {
|
||||
ret = updateReceiver();
|
||||
ret = updateCachedReceiverVariables();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -295,6 +295,9 @@ class slsDetector : public virtual slsDetectorDefs, public virtual errorDefs {
|
||||
*/
|
||||
int64_t getId(idMode mode);
|
||||
|
||||
|
||||
int64_t getReceiverSoftwareVersion() const;
|
||||
|
||||
/**
|
||||
* Free shared memory without creating objects
|
||||
* 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
|
||||
/returns OK
|
||||
*/
|
||||
int updateReceiverNoWait(sls::ClientSocket &receiver);
|
||||
// int updateReceiverNoWait(sls::ClientSocket &receiver);
|
||||
|
||||
/**
|
||||
* Updates the shared memory receiving the data from the detector
|
||||
* @returns OK or FAIL
|
||||
*/
|
||||
int updateReceiver();
|
||||
int updateCachedReceiverVariables() const;
|
||||
|
||||
/**
|
||||
* Send the multi detector size to the detector
|
||||
@ -1736,7 +1739,7 @@ class slsDetector : public virtual slsDetectorDefs, public virtual errorDefs {
|
||||
const int detId;
|
||||
|
||||
/** 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);
|
||||
|
||||
if (cmd == "thisversion") {
|
||||
int64_t retval = myDet->getId(THIS_SOFTWARE_VERSION, detPos);
|
||||
int64_t retval = myDet->getClientSoftwareVersion();
|
||||
if (retval < 0)
|
||||
sprintf(answer, "%d", -1);
|
||||
else
|
||||
@ -3504,7 +3504,7 @@ std::string slsDetectorCommand::cmdSN(int narg, char *args[], int action, int de
|
||||
|
||||
if (cmd == "receiverversion") {
|
||||
myDet->setReceiverOnline(ONLINE_FLAG, detPos);
|
||||
int64_t retval = myDet->getId(RECEIVER_VERSION, detPos);
|
||||
int64_t retval = myDet->getReceiverSoftwareVersion(detPos);
|
||||
if (retval < 0)
|
||||
sprintf(answer, "%d", -1);
|
||||
else
|
||||
|
@ -66,8 +66,8 @@ int64_t slsDetectorUsers::getDetectorSoftwareVersion(int detPos){
|
||||
return detector.getId(slsDetectorDefs::DETECTOR_SOFTWARE_VERSION, detPos);
|
||||
}
|
||||
|
||||
int64_t slsDetectorUsers::getClientSoftwareVersion(int detPos){
|
||||
return detector.getId(slsDetectorDefs::THIS_SOFTWARE_VERSION, detPos);
|
||||
int64_t slsDetectorUsers::getClientSoftwareVersion(){
|
||||
return detector.getClientSoftwareVersion();
|
||||
}
|
||||
|
||||
int64_t slsDetectorUsers::getReceiverSoftwareVersion(int detPos){
|
||||
|
@ -199,10 +199,9 @@ public:
|
||||
/**
|
||||
* (previously getThisSoftwareVersion)
|
||||
* Get client software version
|
||||
* @param detPos -1 for all detectors in list or specific detector position
|
||||
* @returns client software version
|
||||
*/
|
||||
int64_t getClientSoftwareVersion(int detPos = -1);
|
||||
int64_t getClientSoftwareVersion();
|
||||
|
||||
/**
|
||||
* 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