diff --git a/slsDetectorSoftware/src/Receiver.cpp b/slsDetectorSoftware/src/Receiver.cpp index f88a1c316..7f8a7c04b 100755 --- a/slsDetectorSoftware/src/Receiver.cpp +++ b/slsDetectorSoftware/src/Receiver.cpp @@ -79,7 +79,8 @@ template Ret Receiver::sendToReceiver(int fnum, const Arg &args){ LOG(logDEBUG1) << "Sending: [" << getFunctionNameFromEnum(static_cast(fnum)) - << ", " << args << ", " << sizeof(args) << ", " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; + << ", " << args << ", " << sizeof(args) << ", " << typeid(Ret).name() + << ", " << sizeof(Ret) << "]"; Ret retval{}; sendToReceiver(fnum, &args, sizeof(args), &retval, sizeof(retval)); LOG(logDEBUG1) << "Got back: " << retval; @@ -90,7 +91,8 @@ template Ret Receiver::sendToReceiver(int fnum, const Arg &args) const{ LOG(logDEBUG1) << "Sending: [" << getFunctionNameFromEnum(static_cast(fnum)) - << ", " << args << ", " << sizeof(args) << ", " << typeid(Ret).name() << ", " << sizeof(Ret) << "]"; + << ", " << args << ", " << sizeof(args) << ", " << typeid(Ret).name() + << ", " << sizeof(Ret) << "]"; Ret retval{}; sendToReceiver(fnum, &args, sizeof(args), &retval, sizeof(retval)); LOG(logDEBUG1) << "Got back: " << retval; @@ -104,12 +106,12 @@ Receiver::Receiver(int detector_id, int module_id, int interface_id, int zmq_port) : receiverId(receiver_id), interfaceId(interface_id), moduleId(module_id), shm(detector_id, module_id, interface_id, receiver_id) { + createIndexString(); // ensure shared memory was not created before if (shm.IsExisting()) { - LOG(logWARNING) << "This shared memory should have been " - "deleted before! " - << shm.GetName() << ". Freeing it again"; + LOG(logWARNING) << "This shared memory should have been deleted " + "before! " << shm.GetName() << ". Freeing it again"; shm.RemoveSharedMemory(); } shm = SharedMemory(detector_id, module_id, interface_id, @@ -141,10 +143,12 @@ Receiver::Receiver(int detector_id, int module_id, int interface_id, int receiver_id, bool verify) : receiverId(receiver_id), interfaceId(interface_id), moduleId(module_id), shm(detector_id, module_id, interface_id, receiver_id) { + createIndexString(); + shm.OpenSharedMemory(); if (verify && shm()->shmversion != RECEIVER_SHMVERSION) { std::ostringstream ss; - ss << "Receiver shared memory (" << detector_id << "-" << moduleId + ss << "Receiver shared memory (" << detector_id << "-" << indexString << ":" << receiverId << ") version mismatch (expected 0x" << std::hex << RECEIVER_SHMVERSION << " but got 0x" << shm()->shmversion << ")" << std::dec << ". Clear Shared memory to continue."; @@ -154,6 +158,12 @@ Receiver::Receiver(int detector_id, int module_id, int interface_id, Receiver::~Receiver() = default; +void Receiver::createIndexString() { + std::ostringstream oss; + oss << '(' << moduleId << (char)(interfaceId + 97) << "." << receiverId << ')'; + indexString = oss.str(); +} + /** Configuration */ void Receiver::freeSharedMemory() { @@ -214,7 +224,7 @@ sls::MacAddr Receiver::configure(slsDetectorDefs::rxParameters arg) { if (ip == 0) { ip = HostnameToIp(shm()->hostname); } - LOG(logINFO) << "Setting default receiver " << moduleId + LOG(logINFO) << "Setting default receiver " << indexString << " streaming zmq ip to " << ip; // if client zmqip is empty, update it if (shm()->zmqIp == 0) { @@ -280,10 +290,10 @@ sls::MacAddr Receiver::configure(slsDetectorDefs::rxParameters arg) { std::string Receiver::printConfiguration() { std::ostringstream os; - /* - os << "\n\nModuler " << moduleId - << "\nReceiver Hostname:\t"<< getReceiverHostname(); + os << "\n\nModuler " << indexString + << "\nReceiver Hostname:\t"<< shm()->hostname; + /* if (shm()->myDetectorType == JUNGFRAU) { os << "\nNumber of Interfaces:\t" << getNumberofUDPInterfaces() << "\nSelected Interface:\t" << getSelectedUDPInterface(); diff --git a/slsDetectorSoftware/src/Receiver.h b/slsDetectorSoftware/src/Receiver.h index e54c600a5..34c377e93 100755 --- a/slsDetectorSoftware/src/Receiver.h +++ b/slsDetectorSoftware/src/Receiver.h @@ -36,6 +36,8 @@ namespace sls { virtual ~Receiver(); + void createIndexString(); + /************************************************** * * * Configuration * @@ -149,6 +151,7 @@ namespace sls { const int receiverId{0}; const int interfaceId{0}; const int moduleId{0}; + std::string indexString; mutable sls::SharedMemory shm{0, 0, 0, 0}; };