mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 19:30:03 +02:00
fix old server version in 64 bits (#697)
* check server version before initial checks, catch old server version exception, get old server version as 64 bit and print it alon gwith exception
This commit is contained in:
parent
1bdf83e101
commit
c9215a6d9b
@ -33,6 +33,7 @@ This document describes the differences between v7.x.x and v7.0.0
|
||||
- eiger hardware version fx30 and fx70 (versions command)
|
||||
- fixed rx_arping error
|
||||
- fix hdf5 compilation (detspec fields)
|
||||
- print server version atleast in exception msg when connecting to an older server, also able to add hostname to shm
|
||||
|
||||
|
||||
|
||||
|
@ -73,8 +73,8 @@ void Module::setHostname(const std::string &hostname,
|
||||
auto client = DetectorSocket(shm()->hostname, shm()->controlPort);
|
||||
client.close();
|
||||
try {
|
||||
initialDetectorServerChecks();
|
||||
checkDetectorVersionCompatibility();
|
||||
initialDetectorServerChecks();
|
||||
LOG(logINFO) << "Module Version Compatibility - Success";
|
||||
} catch (const RuntimeError &e) {
|
||||
if (!initialChecks) {
|
||||
@ -99,9 +99,28 @@ Module::getFrontEndFirmwareVersion(const fpgaPosition fpgaPosition) const {
|
||||
}
|
||||
|
||||
std::string Module::getControlServerLongVersion() const {
|
||||
char retval[MAX_STR_LENGTH]{};
|
||||
sendToDetector(F_GET_SERVER_VERSION, nullptr, retval);
|
||||
return retval;
|
||||
try {
|
||||
char retval[MAX_STR_LENGTH]{};
|
||||
sendToDetector(F_GET_SERVER_VERSION, nullptr, retval);
|
||||
return retval;
|
||||
}
|
||||
// throw with old server version (sends 8 bytes)
|
||||
catch (RuntimeError &e) {
|
||||
std::string emsg = std::string(e.what());
|
||||
if (emsg.find(F_GET_SERVER_VERSION) && emsg.find("8 bytes")) {
|
||||
throwDeprecatedServerVersion();
|
||||
}
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
void Module::throwDeprecatedServerVersion() const {
|
||||
uint64_t res = sendToDetectorStop<int64_t>(F_GET_SERVER_VERSION);
|
||||
std::cout << std::endl;
|
||||
std::ostringstream os;
|
||||
os << "Detector Server (Control) version (0x" << std::hex << res
|
||||
<< ") is incompatible with this client. Please update detector server!";
|
||||
throw RuntimeError(os.str());
|
||||
}
|
||||
|
||||
std::string Module::getStopServerLongVersion() const {
|
||||
|
@ -93,6 +93,7 @@ class Module : public virtual slsDetectorDefs {
|
||||
int64_t getFrontEndFirmwareVersion(const fpgaPosition fpgaPosition) const;
|
||||
std::string getControlServerLongVersion() const;
|
||||
std::string getStopServerLongVersion() const;
|
||||
void throwDeprecatedServerVersion() const;
|
||||
std::string getDetectorServerVersion() const;
|
||||
std::string getHardwareVersion() const;
|
||||
std::string getKernelVersion() const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user