diff --git a/slsDetectorSoftware/src/CmdParser.cpp b/slsDetectorSoftware/src/CmdParser.cpp index c9f47bd9b..66bce155d 100755 --- a/slsDetectorSoftware/src/CmdParser.cpp +++ b/slsDetectorSoftware/src/CmdParser.cpp @@ -45,9 +45,7 @@ void CmdParser::Parse(const std::string &s) { auto old_size = arguments_.size(); arguments_.erase(std::remove_if(begin(arguments_), end(arguments_), [](const std::string &item) { - if (item == "-h" || item == "--help") - return true; - return false; + return (item == "-h" || item == "--help"); }), end(arguments_)); if (old_size - arguments_.size() > 0) diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index c2520215c..1a16de091 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -1288,7 +1288,7 @@ std::string CmdProxy::Counters(int action) { std::vector result; for (size_t i = 0; i < 32; ++i) { if (mask & (1 << i)) { - result.push_back((int)i); + result.push_back(static_cast(i)); } } os << sls::ToString(result) << '\n'; diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index bf4866f3c..c9b23ca1e 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -148,7 +148,7 @@ Result Detector::getSettings(Positions pos) const { return pimpl->Parallel(&slsDetector::getSettings, pos); } -void Detector::setSettings(defs::detectorSettings value, Positions pos) { +void Detector::setSettings(const defs::detectorSettings value, Positions pos) { pimpl->Parallel(&slsDetector::setSettings, pos, value); } diff --git a/slsDetectorSoftware/src/DetectorImpl.cpp b/slsDetectorSoftware/src/DetectorImpl.cpp index a756db4db..3ba4b5aca 100755 --- a/slsDetectorSoftware/src/DetectorImpl.cpp +++ b/slsDetectorSoftware/src/DetectorImpl.cpp @@ -43,93 +43,6 @@ void DetectorImpl::setupMultiDetector(bool verify, bool update) { } } -template -std::vector -DetectorImpl::serialCall(RT (slsDetector::*somefunc)(CT...), - typename NonDeduced::type... Args) { - std::vector result; - result.reserve(detectors.size()); - for (auto &d : detectors) { - result.push_back((d.get()->*somefunc)(Args...)); - } - return result; -} - -template -std::vector -DetectorImpl::serialCall(RT (slsDetector::*somefunc)(CT...) const, - typename NonDeduced::type... Args) const { - std::vector result; - result.reserve(detectors.size()); - for (auto &d : detectors) { - result.push_back((d.get()->*somefunc)(Args...)); - } - return result; -} - -template -std::vector -DetectorImpl::parallelCall(RT (slsDetector::*somefunc)(CT...), - typename NonDeduced::type... Args) { - std::vector> futures; - for (auto &d : detectors) { - futures.push_back( - std::async(std::launch::async, somefunc, d.get(), Args...)); - } - std::vector result; - result.reserve(detectors.size()); - for (auto &i : futures) { - result.push_back(i.get()); - } - return result; -} - -template -std::vector -DetectorImpl::parallelCall(RT (slsDetector::*somefunc)(CT...) const, - typename NonDeduced::type... Args) const { - std::vector> futures; - for (auto &d : detectors) { - futures.push_back( - std::async(std::launch::async, somefunc, d.get(), Args...)); - } - std::vector result; - result.reserve(detectors.size()); - for (auto &i : futures) { - result.push_back(i.get()); - } - return result; -} - -template -void DetectorImpl::parallelCall(void (slsDetector::*somefunc)(CT...), - typename NonDeduced::type... Args) { - std::vector> futures; - for (auto &d : detectors) { - futures.push_back( - std::async(std::launch::async, somefunc, d.get(), Args...)); - } - for (auto &i : futures) { - i.get(); - } - return; -} - -template -void DetectorImpl::parallelCall( - void (slsDetector::*somefunc)(CT...) const, - typename NonDeduced::type... Args) const { - std::vector> futures; - for (auto &d : detectors) { - futures.push_back( - std::async(std::launch::async, somefunc, d.get(), Args...)); - } - for (auto &i : futures) { - i.get(); - } - return; -} - void DetectorImpl::setAcquiringFlag(bool flag) { multi_shm()->acquiringFlag = flag; } @@ -212,7 +125,6 @@ std::string DetectorImpl::getUserDetails() { return sstream.str(); } - bool DetectorImpl::getInitialChecks() const { return multi_shm()->initialChecks; } @@ -270,8 +182,8 @@ void DetectorImpl::initializeMembers(bool verify) { void DetectorImpl::updateUserdetails() { multi_shm()->lastPID = getpid(); - memset(multi_shm()->lastUser, 0, SHORT_STRING_LENGTH); - memset(multi_shm()->lastDate, 0, SHORT_STRING_LENGTH); + memset(multi_shm()->lastUser, 0, sizeof(multi_shm()->lastUser)); + memset(multi_shm()->lastDate, 0, sizeof(multi_shm()->lastDate)); try { sls::strcpy_safe(multi_shm()->lastUser, exec("whoami").c_str()); sls::strcpy_safe(multi_shm()->lastDate, exec("date").c_str()); @@ -316,8 +228,7 @@ std::string DetectorImpl::exec(const char *cmd) { return result; } -void DetectorImpl::setVirtualDetectorServers(const int numdet, - const int port) { +void DetectorImpl::setVirtualDetectorServers(const int numdet, const int port) { std::vector hostnames; for (int i = 0; i < numdet; ++i) { // * 2 is for control and stop port @@ -369,15 +280,17 @@ void DetectorImpl::addSlsDetector(const std::string &hostname) { // get type by connecting detectorType type = slsDetector::getTypeFromDetector(host, port); - int pos = (int)detectors.size(); - detectors.push_back( + auto pos = detectors.size(); + detectors.emplace_back( sls::make_unique(type, multiId, pos, false)); multi_shm()->numberOfDetectors = detectors.size(); detectors[pos]->setControlPort(port); detectors[pos]->setStopPort(port + 1); detectors[pos]->setHostname(host, multi_shm()->initialChecks); // detector type updated by now - multi_shm()->multiDetectorType = Parallel(&slsDetector::getDetectorType, {}).tsquash("Inconsistent detector types."); + multi_shm()->multiDetectorType = + Parallel(&slsDetector::getDetectorType, {}) + .tsquash("Inconsistent detector types."); } void DetectorImpl::updateDetectorSize() { @@ -464,7 +377,8 @@ int DetectorImpl::createReceivingDataSockets(const bool destroy) { if (multi_shm()->multiDetectorType == EIGER) { numSocketsPerDetector = 2; } - if (Parallel(&slsDetector::getNumberofUDPInterfacesFromShm, {}).squash() == 2) { + if (Parallel(&slsDetector::getNumberofUDPInterfacesFromShm, {}).squash() == + 2) { numSocketsPerDetector = 2; } numSockets *= numSocketsPerDetector; @@ -476,7 +390,8 @@ int DetectorImpl::createReceivingDataSockets(const bool destroy) { try { zmqSocket.push_back(sls::make_unique( detectors[iSocket / numSocketsPerDetector] - ->getClientStreamingIP().str() + ->getClientStreamingIP() + .str() .c_str(), portnum)); FILE_LOG(logINFO) << "Zmq Client[" << iSocket << "] at " @@ -503,7 +418,9 @@ void DetectorImpl::readFrameFromReceiver() { bool gappixelsenable = false; bool quadEnable = false; bool eiger = false; - bool numInterfaces = Parallel(&slsDetector::getNumberofUDPInterfacesFromShm, {}).squash(); // cannot pick up from zmq + bool numInterfaces = + Parallel(&slsDetector::getNumberofUDPInterfacesFromShm, {}) + .squash(); // cannot pick up from zmq bool runningList[zmqSocket.size()], connectList[zmqSocket.size()]; int numRunning = 0; @@ -530,7 +447,7 @@ void DetectorImpl::readFrameFromReceiver() { uint32_t size = 0, nPixelsX = 0, nPixelsY = 0, dynamicRange = 0; float bytesPerPixel = 0; // header info every header - std::string currentFileName = ""; + std::string currentFileName; uint64_t currentAcquisitionIndex = -1, currentFrameIndex = -1, currentFileIndex = -1; uint32_t currentSubFrameIndex = -1, coordX = -1, coordY = -1, @@ -657,18 +574,18 @@ void DetectorImpl::readFrameFromReceiver() { if (eiger && (flippedDataX != 0U)) { for (uint32_t i = 0; i < nPixelsY; ++i) { - memcpy(((char *)multiframe) + + memcpy((multiframe) + ((yoffset + (nPixelsY - 1 - i)) * rowoffset) + xoffset, - (char *)image + (i * singledetrowoffset), + image + (i * singledetrowoffset), singledetrowoffset); } } else { for (uint32_t i = 0; i < nPixelsY; ++i) { - memcpy(((char *)multiframe) + - ((yoffset + i) * rowoffset) + xoffset, - (char *)image + (i * singledetrowoffset), + memcpy((multiframe) + ((yoffset + i) * rowoffset) + + xoffset, + image + (i * singledetrowoffset), singledetrowoffset); } } @@ -699,21 +616,22 @@ void DetectorImpl::readFrameFromReceiver() { << "\n\t nDetPixelsX: " << nDetPixelsX << "\n\t nDetPixelsY: " << nDetPixelsY << "\n\t databytes: " << n; - thisData = new detectorData( - getCurrentProgress(), currentFileName.c_str(), nDetPixelsX, - nDetPixelsY, multigappixels, n, dynamicRange, - currentFileIndex); + thisData = + new detectorData(getCurrentProgress(), currentFileName, + nDetPixelsX, nDetPixelsY, multigappixels, + n, dynamicRange, currentFileIndex); } // normal pixels else { - thisData = new detectorData( - getCurrentProgress(), currentFileName.c_str(), nDetPixelsX, - nDetPixelsY, multiframe, multisize, dynamicRange, - currentFileIndex); + thisData = + new detectorData(getCurrentProgress(), currentFileName, + nDetPixelsX, nDetPixelsY, multiframe, + multisize, dynamicRange, currentFileIndex); } - dataReady(thisData, currentFrameIndex, - ((dynamicRange == 32 && eiger) ? currentSubFrameIndex : -1), - pCallbackArg); + dataReady( + thisData, currentFrameIndex, + ((dynamicRange == 32 && eiger) ? currentSubFrameIndex : -1), + pCallbackArg); delete thisData; } @@ -755,7 +673,7 @@ void DetectorImpl::readFrameFromReceiver() { } int DetectorImpl::processImageWithGapPixels(char *image, char *&gpImage, - bool quadEnable) { + bool quadEnable) { // eiger 4 bit mode int nxb = multi_shm()->numberOfDetector.x * (512 + 3); //(divided by 2 already) @@ -904,7 +822,6 @@ bool DetectorImpl::enableDataStreamingToClient(int enable) { return client_downstream; } - void DetectorImpl::savePattern(const std::string &fname) { // std::ofstream outfile; // outfile.open(fname.c_str(), std::ios_base::out); @@ -923,7 +840,7 @@ void DetectorImpl::savePattern(const std::string &fname) { // } // // rest of pattern file // const std::vector commands{ - // "patioctrl", + // "patioctrl", // "patclkctrl", // "patlimits", // "patloop0", @@ -945,35 +862,36 @@ void DetectorImpl::savePattern(const std::string &fname) { // multiSlsDetectorClient(cmd, GET_ACTION, this, outfile); } - - -void DetectorImpl::registerAcquisitionFinishedCallback( - void (*func)(double, int, void *), void *pArg) { +void DetectorImpl::registerAcquisitionFinishedCallback(void (*func)(double, int, + void *), + void *pArg) { acquisition_finished = func; acqFinished_p = pArg; } -void DetectorImpl::registerDataCallback( - void (*userCallback)(detectorData *, uint64_t, uint32_t, void *), - void *pArg) { +void DetectorImpl::registerDataCallback(void (*userCallback)(detectorData *, + uint64_t, uint32_t, + void *), + void *pArg) { dataReady = userCallback; pCallbackArg = pArg; - enableDataStreamingToClient(dataReady == nullptr ? 0 : 1); + enableDataStreamingToClient(dataReady == nullptr ? 0 : 1); } double DetectorImpl::setTotalProgress() { int64_t nf = Parallel(&slsDetector::getNumberOfFramesFromShm, {}) - .tsquash("Inconsistent number of frames"); + .tsquash("Inconsistent number of frames"); int64_t nc = Parallel(&slsDetector::getNumberOfTriggersFromShm, {}) - .tsquash("Inconsistent number of triggers"); + .tsquash("Inconsistent number of triggers"); if (nf == 0 || nc == 0) { throw RuntimeError("Number of frames or triggers is 0"); } int ns = 1; if (multi_shm()->multiDetectorType == JUNGFRAU) { - ns = Parallel(&slsDetector::getNumberOfAdditionalStorageCellsFromShm, {}) - .tsquash("Inconsistent number of additional storage cells"); + ns = + Parallel(&slsDetector::getNumberOfAdditionalStorageCellsFromShm, {}) + .tsquash("Inconsistent number of additional storage cells"); ++ns; } @@ -992,8 +910,7 @@ void DetectorImpl::incrementProgress() { std::lock_guard lock(mp); progressIndex += 1; std::cout << std::fixed << std::setprecision(2) << std::setw(6) - << 100. * progressIndex / totalProgress - << " \%"; + << 100. * progressIndex / totalProgress << " \%"; std::cout << '\r' << std::flush; } @@ -1001,8 +918,7 @@ void DetectorImpl::setCurrentProgress(int64_t i) { std::lock_guard lock(mp); progressIndex = (double)i; std::cout << std::fixed << std::setprecision(2) << std::setw(6) - << 100. * progressIndex / totalProgress - << " \%"; + << 100. * progressIndex / totalProgress << " \%"; std::cout << '\r' << std::flush; } @@ -1016,21 +932,23 @@ int DetectorImpl::acquire() { struct timespec begin, end; clock_gettime(CLOCK_REALTIME, &begin); - // in the real time acquisition loop, processing thread will wait for a post - // each time + // in the real time acquisition loop, processing thread will wait for a + // post each time sem_init(&sem_newRTAcquisition, 1, 0); - // in the real time acquistion loop, main thread will wait for processing - // thread to be done each time (which in turn waits for receiver/ext - // process) + // in the real time acquistion loop, main thread will wait for + // processing thread to be done each time (which in turn waits for + // receiver/ext process) sem_init(&sem_endRTAcquisition, 1, 0); - bool receiver = Parallel(&slsDetector::getUseReceiverFlag, {}).squash(false); + bool receiver = + Parallel(&slsDetector::getUseReceiverFlag, {}).squash(false); progressIndex = 0; setJoinThreadFlag(false); // verify receiver is idle if (receiver) { - if (Parallel(&slsDetector::getReceiverStatus, {}).squash(ERROR) != IDLE) { + if (Parallel(&slsDetector::getReceiverStatus, {}).squash(ERROR) != + IDLE) { Parallel(&slsDetector::stopReceiver, {}); } } @@ -1079,8 +997,7 @@ int DetectorImpl::acquire() { auto t = Parallel(&slsDetector::getRunStatus, {}); if (t.equal()) status = t.front(); - acquisition_finished(getCurrentProgress(), status, - acqFinished_p); + acquisition_finished(getCurrentProgress(), status, acqFinished_p); } sem_destroy(&sem_newRTAcquisition); @@ -1122,7 +1039,8 @@ void DetectorImpl::processData() { } } // get progress - caught = Parallel(&slsDetector::getFramesCaughtByReceiver, {0}).squash(); + caught = Parallel(&slsDetector::getFramesCaughtByReceiver, {0}) + .squash(); // updating progress if (caught != -1) { @@ -1164,28 +1082,27 @@ std::vector DetectorImpl::readProgrammingFile(const std::string &fname) { // validate type of file bool isPof = false; switch (multi_shm()->multiDetectorType) { - case JUNGFRAU: - case CHIPTESTBOARD: - if (fname.find(".pof") == std::string::npos) { - throw RuntimeError("Programming file must be a pof file."); - } - isPof = true; - break; - case MYTHEN3: - case GOTTHARD2: - if (fname.find(".rbf") == std::string::npos) { - throw RuntimeError("Programming file must be an rbf file."); - } - break; - default: - throw RuntimeError("Not implemented for this detector"); + case JUNGFRAU: + case CHIPTESTBOARD: + if (fname.find(".pof") == std::string::npos) { + throw RuntimeError("Programming file must be a pof file."); + } + isPof = true; + break; + case MYTHEN3: + case GOTTHARD2: + if (fname.find(".rbf") == std::string::npos) { + throw RuntimeError("Programming file must be an rbf file."); + } + break; + default: + throw RuntimeError("Not implemented for this detector"); } FILE_LOG(logINFO) << "Updating Firmware. This can take awhile. Please be patient..."; FILE_LOG(logDEBUG1) << "Programming FPGA with file name:" << fname; - size_t filesize = 0; // check if it exists struct stat st; @@ -1215,22 +1132,20 @@ std::vector DetectorImpl::readProgrammingFile(const std::string &fname) { // convert src to dst rawbin FILE_LOG(logDEBUG1) << "Converting " << fname << " to " << destfname; { - const int pofNumHeaderBytes = 0x11C; - const int pofNumPadding = 0x80; - const int pofFooterOfst = 0x1000000; - int dstFilePos = 0; + constexpr int pofNumHeaderBytes = 0x11C; + constexpr int pofFooterOfst = 0x1000000; + int dstFilePos = 0; if (isPof) { // Read header and discard for (int i = 0; i < pofNumHeaderBytes; ++i) { fgetc(src); } // Write 0xFF to destination 0x80 times (padding) - { - char c = 0xFF; - while (dstFilePos < pofNumPadding) { - write(dst, &c, 1); - ++dstFilePos; - } + constexpr int pofNumPadding{0x80}; + constexpr uint8_t c{0xFF}; + while (dstFilePos < pofNumPadding) { + write(dst, &c, sizeof(c)); + ++dstFilePos; } } // Swap bits from source and write to dest @@ -1243,12 +1158,11 @@ std::vector DetectorImpl::readProgrammingFile(const std::string &fname) { int s = fgetc(src); if (s < 0) { break; - } - // swap bits + } + // swap bits int d = 0; for (int i = 0; i < 8; ++i) { - d = d | - (((s & (1 << i)) >> i) << (7 - i)); + d = d | (((s & (1 << i)) >> i) << (7 - i)); } write(dst, &d, 1); ++dstFilePos; @@ -1258,7 +1172,6 @@ std::vector DetectorImpl::readProgrammingFile(const std::string &fname) { throw RuntimeError( "Could not convert programming file. EOF before end of flash"); } - } if (fclose(src) != 0) { throw RuntimeError("Program FPGA: Could not close source file"); diff --git a/slsDetectorSoftware/src/DetectorImpl.h b/slsDetectorSoftware/src/DetectorImpl.h index 25b598e5c..f2bc44270 100755 --- a/slsDetectorSoftware/src/DetectorImpl.h +++ b/slsDetectorSoftware/src/DetectorImpl.h @@ -19,7 +19,6 @@ class detectorData; #define MULTI_SHMAPIVERSION 0x190809 #define MULTI_SHMVERSION 0x200131 #define SHORT_STRING_LENGTH 50 -#define DATE_LENGTH 30 #include #include @@ -193,44 +192,6 @@ class DetectorImpl : public virtual slsDetectorDefs { } } - /** - * Loop through the detectors serially and return the result as a vector - */ - - template - std::vector serialCall(RT (slsDetector::*somefunc)(CT...), - typename NonDeduced::type... Args); - - /** - * Loop through the detectors serially and return the result as a vector - * Const qualified version - */ - template - std::vector serialCall(RT (slsDetector::*somefunc)(CT...) const, - typename NonDeduced::type... Args) const; - - /** - * Loop through the detectors in parallel and return the result as a vector - */ - template - std::vector parallelCall(RT (slsDetector::*somefunc)(CT...), - typename NonDeduced::type... Args); - - /** - * Loop through the detectors in parallel and return the result as a vector - * Const qualified version - */ - template - std::vector parallelCall(RT (slsDetector::*somefunc)(CT...) const, - typename NonDeduced::type... Args) const; - - template - void parallelCall(void (slsDetector::*somefunc)(CT...), - typename NonDeduced::type... Args); - - template - void parallelCall(void (slsDetector::*somefunc)(CT...) const, - typename NonDeduced::type... Args) const; /** set acquiring flag in shared memory */ void setAcquiringFlag(bool flag); diff --git a/slsReceiverSoftware/src/ClientInterface.cpp b/slsReceiverSoftware/src/ClientInterface.cpp index 15234295a..2bd2be3c6 100755 --- a/slsReceiverSoftware/src/ClientInterface.cpp +++ b/slsReceiverSoftware/src/ClientInterface.cpp @@ -18,7 +18,7 @@ using sls::RuntimeError; using sls::SocketError; -using Interface = sls::ServerInterface2; +using Interface = sls::ServerInterface; ClientInterface::~ClientInterface() { killTcpThread = true; @@ -217,7 +217,7 @@ void ClientInterface::modeNotImplemented(const std::string &modename, } template -void ClientInterface::validate(T arg, T retval, std::string modename, +void ClientInterface::validate(T arg, T retval, const std::string& modename, numberMode hex) { if (ret == OK && arg != -1 && retval != arg) { auto format = (hex == HEX) ? std::hex : std::dec; diff --git a/slsReceiverSoftware/src/ClientInterface.h b/slsReceiverSoftware/src/ClientInterface.h index 96e117e13..ef6d9e317 100755 --- a/slsReceiverSoftware/src/ClientInterface.h +++ b/slsReceiverSoftware/src/ClientInterface.h @@ -41,85 +41,85 @@ class ClientInterface : private virtual slsDetectorDefs { private: void startTCPServer(); int functionTable(); - int decodeFunction(sls::ServerInterface2 &socket); + int decodeFunction(sls::ServerInterface &socket); void functionNotImplemented(); void modeNotImplemented(const std::string& modename, int mode); template - void validate(T arg, T retval, std::string modename, numberMode hex); + void validate(T arg, T retval, const std::string& modename, numberMode hex); void verifyLock(); - void verifyIdle(sls::ServerInterface2 &socket); + void verifyIdle(sls::ServerInterface &socket); - int exec_command(sls::ServerInterface2 &socket); - int exit_server(sls::ServerInterface2 &socket); - int lock_receiver(sls::ServerInterface2 &socket); - int get_last_client_ip(sls::ServerInterface2 &socket); - int set_port(sls::ServerInterface2 &socket); - int update_client(sls::ServerInterface2 &socket); - int send_update(sls::ServerInterface2 &socket); - int get_version(sls::ServerInterface2 &socket); - int set_detector_type(sls::ServerInterface2 &socket); - int set_detector_hostname(sls::ServerInterface2 &socket); - int set_roi(sls::ServerInterface2 &socket); - int set_num_frames(sls::ServerInterface2 &socket); - int set_num_analog_samples(sls::ServerInterface2 &socket); - int set_num_digital_samples(sls::ServerInterface2 &socket); - int set_exptime(sls::ServerInterface2 &socket); - int set_period(sls::ServerInterface2 &socket); - int set_subexptime(sls::ServerInterface2 &socket); - int set_subdeadtime(sls::ServerInterface2 &socket); - int set_dynamic_range(sls::ServerInterface2 &socket); - int set_streaming_frequency(sls::ServerInterface2 &socket); - int get_status(sls::ServerInterface2 &socket); - int start_receiver(sls::ServerInterface2 &socket); - int stop_receiver(sls::ServerInterface2 &socket); - int set_file_dir(sls::ServerInterface2 &socket); - int set_file_name(sls::ServerInterface2 &socket); - int set_file_index(sls::ServerInterface2 &socket); - int get_frame_index(sls::ServerInterface2 &socket); - int get_missing_packets(sls::ServerInterface2 &socket); - int get_frames_caught(sls::ServerInterface2 &socket); - int enable_file_write(sls::ServerInterface2 &socket); - int enable_master_file_write(sls::ServerInterface2 &socket); - int enable_compression(sls::ServerInterface2 &socket); - int enable_overwrite(sls::ServerInterface2 &socket); - int enable_tengiga(sls::ServerInterface2 &socket); - int set_fifo_depth(sls::ServerInterface2 &socket); - int set_activate(sls::ServerInterface2 &socket); - int set_data_stream_enable(sls::ServerInterface2 &socket); - int set_streaming_timer(sls::ServerInterface2 &socket); - int set_flipped_data(sls::ServerInterface2 &socket); - int set_file_format(sls::ServerInterface2 &socket); - int set_detector_posid(sls::ServerInterface2 &socket); - int set_multi_detector_size(sls::ServerInterface2 &socket); - int set_streaming_port(sls::ServerInterface2 &socket); - int set_streaming_source_ip(sls::ServerInterface2 &socket); - int set_silent_mode(sls::ServerInterface2 &socket); - int enable_gap_pixels(sls::ServerInterface2 &socket); - int restream_stop(sls::ServerInterface2 &socket); - int set_additional_json_header(sls::ServerInterface2 &socket); - int get_additional_json_header(sls::ServerInterface2 &socket); - int set_udp_socket_buffer_size(sls::ServerInterface2 &socket); - int get_real_udp_socket_buffer_size(sls::ServerInterface2 &socket); - int set_frames_per_file(sls::ServerInterface2 &socket); - int check_version_compatibility(sls::ServerInterface2 &socket); - int set_discard_policy(sls::ServerInterface2 &socket); - int set_padding_enable(sls::ServerInterface2 &socket); - int set_deactivated_padding_enable(sls::ServerInterface2 &socket); - int set_readout_mode(sls::ServerInterface2 &socket); - int set_adc_mask(sls::ServerInterface2 &socket); - int set_dbit_list(sls::ServerInterface2 &socket); - int get_dbit_list(sls::ServerInterface2 &socket); - int set_dbit_offset(sls::ServerInterface2 &socket); - int set_quad_type(sls::ServerInterface2 &socket); - int set_read_n_lines(sls::ServerInterface2 &socket); - int set_udp_ip(sls::ServerInterface2 &socket); - int set_udp_ip2(sls::ServerInterface2 &socket); - int set_udp_port(sls::ServerInterface2 &socket); - int set_udp_port2(sls::ServerInterface2 &socket); - int set_num_interfaces(sls::ServerInterface2 &socket); - int set_adc_mask_10g(sls::ServerInterface2 &socket); - int set_num_counters(sls::ServerInterface2 &socket); + int exec_command(sls::ServerInterface &socket); + int exit_server(sls::ServerInterface &socket); + int lock_receiver(sls::ServerInterface &socket); + int get_last_client_ip(sls::ServerInterface &socket); + int set_port(sls::ServerInterface &socket); + int update_client(sls::ServerInterface &socket); + int send_update(sls::ServerInterface &socket); + int get_version(sls::ServerInterface &socket); + int set_detector_type(sls::ServerInterface &socket); + int set_detector_hostname(sls::ServerInterface &socket); + int set_roi(sls::ServerInterface &socket); + int set_num_frames(sls::ServerInterface &socket); + int set_num_analog_samples(sls::ServerInterface &socket); + int set_num_digital_samples(sls::ServerInterface &socket); + int set_exptime(sls::ServerInterface &socket); + int set_period(sls::ServerInterface &socket); + int set_subexptime(sls::ServerInterface &socket); + int set_subdeadtime(sls::ServerInterface &socket); + int set_dynamic_range(sls::ServerInterface &socket); + int set_streaming_frequency(sls::ServerInterface &socket); + int get_status(sls::ServerInterface &socket); + int start_receiver(sls::ServerInterface &socket); + int stop_receiver(sls::ServerInterface &socket); + int set_file_dir(sls::ServerInterface &socket); + int set_file_name(sls::ServerInterface &socket); + int set_file_index(sls::ServerInterface &socket); + int get_frame_index(sls::ServerInterface &socket); + int get_missing_packets(sls::ServerInterface &socket); + int get_frames_caught(sls::ServerInterface &socket); + int enable_file_write(sls::ServerInterface &socket); + int enable_master_file_write(sls::ServerInterface &socket); + int enable_compression(sls::ServerInterface &socket); + int enable_overwrite(sls::ServerInterface &socket); + int enable_tengiga(sls::ServerInterface &socket); + int set_fifo_depth(sls::ServerInterface &socket); + int set_activate(sls::ServerInterface &socket); + int set_data_stream_enable(sls::ServerInterface &socket); + int set_streaming_timer(sls::ServerInterface &socket); + int set_flipped_data(sls::ServerInterface &socket); + int set_file_format(sls::ServerInterface &socket); + int set_detector_posid(sls::ServerInterface &socket); + int set_multi_detector_size(sls::ServerInterface &socket); + int set_streaming_port(sls::ServerInterface &socket); + int set_streaming_source_ip(sls::ServerInterface &socket); + int set_silent_mode(sls::ServerInterface &socket); + int enable_gap_pixels(sls::ServerInterface &socket); + int restream_stop(sls::ServerInterface &socket); + int set_additional_json_header(sls::ServerInterface &socket); + int get_additional_json_header(sls::ServerInterface &socket); + int set_udp_socket_buffer_size(sls::ServerInterface &socket); + int get_real_udp_socket_buffer_size(sls::ServerInterface &socket); + int set_frames_per_file(sls::ServerInterface &socket); + int check_version_compatibility(sls::ServerInterface &socket); + int set_discard_policy(sls::ServerInterface &socket); + int set_padding_enable(sls::ServerInterface &socket); + int set_deactivated_padding_enable(sls::ServerInterface &socket); + int set_readout_mode(sls::ServerInterface &socket); + int set_adc_mask(sls::ServerInterface &socket); + int set_dbit_list(sls::ServerInterface &socket); + int get_dbit_list(sls::ServerInterface &socket); + int set_dbit_offset(sls::ServerInterface &socket); + int set_quad_type(sls::ServerInterface &socket); + int set_read_n_lines(sls::ServerInterface &socket); + int set_udp_ip(sls::ServerInterface &socket); + int set_udp_ip2(sls::ServerInterface &socket); + int set_udp_port(sls::ServerInterface &socket); + int set_udp_port2(sls::ServerInterface &socket); + int set_num_interfaces(sls::ServerInterface &socket); + int set_adc_mask_10g(sls::ServerInterface &socket); + int set_num_counters(sls::ServerInterface &socket); Implementation *impl() { if (receiver != nullptr) { @@ -133,7 +133,7 @@ class ClientInterface : private virtual slsDetectorDefs { detectorType myDetectorType; std::unique_ptr receiver{nullptr}; int (ClientInterface::*flist[NUM_REC_FUNCTIONS])( - sls::ServerInterface2 &socket); + sls::ServerInterface &socket); int ret{OK}; int fnum{-1}; int lockedByClient{0}; diff --git a/slsReceiverSoftware/src/Fifo.cpp b/slsReceiverSoftware/src/Fifo.cpp index b100fdaec..f0af09abc 100755 --- a/slsReceiverSoftware/src/Fifo.cpp +++ b/slsReceiverSoftware/src/Fifo.cpp @@ -76,18 +76,12 @@ void Fifo::DestroyFifos(){ free(memory); memory = nullptr; } - if (fifoBound) { - delete fifoBound; - fifoBound = nullptr; - } - if (fifoFree) { - delete fifoFree; - fifoFree = nullptr; - } - if (fifoStream) { - delete fifoStream; - fifoStream = nullptr; - } + delete fifoBound; + fifoBound = nullptr; + delete fifoFree; + fifoFree = nullptr; + delete fifoStream; + fifoStream = nullptr; } diff --git a/slsReceiverSoftware/src/ThreadObject.cpp b/slsReceiverSoftware/src/ThreadObject.cpp index c4c426152..4a554e70f 100755 --- a/slsReceiverSoftware/src/ThreadObject.cpp +++ b/slsReceiverSoftware/src/ThreadObject.cpp @@ -66,7 +66,7 @@ void ThreadObject::SetThreadPriority(int priority) { struct sched_param param; param.sched_priority = priority; if (pthread_setschedparam(threadObject->native_handle(), SCHED_FIFO, ¶m) == EPERM) { - if (!index) { + if (index == 0) { FILE_LOG(logWARNING) << "Could not prioritize " << type << " thread. " "(No Root Privileges?)"; } diff --git a/slsSupportLib/CMakeLists.txt b/slsSupportLib/CMakeLists.txt index a4d08690e..ae6d73ce4 100755 --- a/slsSupportLib/CMakeLists.txt +++ b/slsSupportLib/CMakeLists.txt @@ -4,7 +4,7 @@ set(SOURCES src/ClientSocket.cpp src/DataSocket.cpp src/ServerSocket.cpp - src/ServerInterface2.cpp + src/ServerInterface.cpp src/network_utils.cpp ) @@ -25,7 +25,7 @@ set(PUBLICHEADERS include/ClientSocket.h include/DataSocket.h include/ServerSocket.h - include/ServerInterface2.h + include/ServerInterface.h include/network_utils.h include/FixedCapacityContainer.h include/ToString.h diff --git a/slsSupportLib/include/ServerInterface2.h b/slsSupportLib/include/ServerInterface.h similarity index 80% rename from slsSupportLib/include/ServerInterface2.h rename to slsSupportLib/include/ServerInterface.h index 774378910..8f6d819fa 100644 --- a/slsSupportLib/include/ServerInterface2.h +++ b/slsSupportLib/include/ServerInterface.h @@ -2,18 +2,18 @@ #include "DataSocket.h" namespace sls { -class ServerInterface2; +class ServerInterface; } #include "ServerSocket.h" #include "sls_detector_defs.h" namespace sls { -class ServerInterface2 : public DataSocket { +class ServerInterface : public DataSocket { using defs = slsDetectorDefs; public: - ServerInterface2(int socketId) : DataSocket(socketId) {} + ServerInterface(int socketId) : DataSocket(socketId) {} int sendResult(int ret, void *retval, int retvalSize, char *mess = nullptr); diff --git a/slsSupportLib/include/ServerSocket.h b/slsSupportLib/include/ServerSocket.h index 6b344cf43..532980bbd 100755 --- a/slsSupportLib/include/ServerSocket.h +++ b/slsSupportLib/include/ServerSocket.h @@ -1,7 +1,7 @@ #pragma once #include "DataSocket.h" -#include "ServerInterface2.h" +#include "ServerInterface.h" #include "network_utils.h" #include #include @@ -14,7 +14,7 @@ namespace sls { class ServerSocket : public DataSocket { public: ServerSocket(int port); - ServerInterface2 accept(); + ServerInterface accept(); IpAddr getLastClient() const noexcept { return lastClient; } IpAddr getThisClient() const noexcept { return thisClient; } IpAddr getLockedBy() const noexcept { return lockedBy; } diff --git a/slsSupportLib/src/ServerInterface2.cpp b/slsSupportLib/src/ServerInterface.cpp similarity index 83% rename from slsSupportLib/src/ServerInterface2.cpp rename to slsSupportLib/src/ServerInterface.cpp index 6406dfb61..2c6ee0e7c 100644 --- a/slsSupportLib/src/ServerInterface2.cpp +++ b/slsSupportLib/src/ServerInterface.cpp @@ -1,10 +1,10 @@ -#include "ServerInterface2.h" +#include "ServerInterface.h" #include #include #include namespace sls { -int ServerInterface2::sendResult(int ret, void *retval, int retvalSize, +int ServerInterface::sendResult(int ret, void *retval, int retvalSize, char *mess) { write(&ret, sizeof(ret)); diff --git a/slsSupportLib/src/ServerSocket.cpp b/slsSupportLib/src/ServerSocket.cpp index 93c9398da..9cd5723b3 100755 --- a/slsSupportLib/src/ServerSocket.cpp +++ b/slsSupportLib/src/ServerSocket.cpp @@ -1,4 +1,4 @@ -#include "ServerInterface2.h" +#include "ServerInterface.h" #include "ServerSocket.h" #include "DataSocket.h" @@ -37,7 +37,7 @@ ServerSocket::ServerSocket(int port) } } -ServerInterface2 ServerSocket::accept() { +ServerInterface ServerSocket::accept() { lastClient = thisClient; //update from previous connection struct sockaddr_in clientAddr; socklen_t addr_size = sizeof clientAddr; @@ -49,7 +49,7 @@ ServerInterface2 ServerSocket::accept() { char tc[INET_ADDRSTRLEN]{}; inet_ntop(AF_INET, &(clientAddr.sin_addr), tc, INET_ADDRSTRLEN); thisClient = IpAddr{tc}; - return ServerInterface2(newSocket); + return ServerInterface(newSocket); } }; // namespace sls diff --git a/tests/src/testserver.cpp b/tests/src/testserver.cpp index 3e6d65795..03a1996f7 100644 --- a/tests/src/testserver.cpp +++ b/tests/src/testserver.cpp @@ -3,7 +3,7 @@ #include "tests/testenum.h" -#include "ServerInterface2.h" +#include "ServerInterface.h" #include "container_utils.h" #include #include @@ -15,7 +15,7 @@ struct EnumClassHash { } }; -using Interface = sls::ServerInterface2; +using Interface = sls::ServerInterface; using func_ptr = void (*)(Interface &); /********************************************