diff --git a/slsDetectorSoftware/include/CmdProxy.h b/slsDetectorSoftware/include/CmdProxy.h index 69d19e6de..836e7d9fb 100644 --- a/slsDetectorSoftware/include/CmdProxy.h +++ b/slsDetectorSoftware/include/CmdProxy.h @@ -757,16 +757,18 @@ class CmdProxy { {"bustest", &CmdProxy::bustest}, /* Insignificant */ + {"port", &CmdProxy::port}, + {"stopport", &CmdProxy::stopport}, + {"lock", &CmdProxy::lock}, + {"lastclient", &CmdProxy::lastclient}, - - - {"adcvpp", &CmdProxy::adcvpp},//dac - {"lastclient", &CmdProxy::lastclient}, - {"lock", &CmdProxy::lock} + {"adcvpp", &CmdProxy::adcvpp}//dac + + }; @@ -1333,17 +1335,27 @@ class CmdProxy { /* Insignificant */ - + INTEGER_COMMAND(port, getControlPort, setControlPort, std::stoi, + "[n]\n\tPort number of the control server on detector for detector-client tcp interface. Default is 1952. Normally unchanged."); + + INTEGER_COMMAND(stopport, getStopPort, setStopPort, std::stoi, + "[n]\n\tPort number of the stop server on detector for detector-client tcp interface. Default is 1953. Normally unchanged."); + + INTEGER_COMMAND(lock, getDetectorLock, setDetectorLock, std::stoi, + "[0, 1]\n\tLock detector to one IP, 1: locks"); + + GET_COMMAND(lastclient, getLastClientIP, + "\n\tClient IP Address that last communicated with the detector."); + + DAC_COMMAND(adcvpp, getDAC, setDAC, defs::ADC_VPP, "[dac or mv value][(optional unit) mv] \n\t[Ctb] Vpp of ADC.\n\t 0 -> 1V ; 1 -> 1.14V ; 2 -> 1.33V ; 3 -> 1.6V ; 4 -> 2V."); - GET_COMMAND(lastclient, getLastClientIP, - "\n\tClient IP Address that last communicated with the detector."); - INTEGER_COMMAND(lock, getDetectorLock, setDetectorLock, std::stoi, - "[0, 1]\n\tLock detector to one IP, 1: locks"); + + diff --git a/slsDetectorSoftware/include/slsDetectorCommand.h b/slsDetectorSoftware/include/slsDetectorCommand.h index 911808f41..062bc1e04 100755 --- a/slsDetectorSoftware/include/slsDetectorCommand.h +++ b/slsDetectorSoftware/include/slsDetectorCommand.h @@ -47,7 +47,6 @@ class slsDetectorCommand : public virtual slsDetectorDefs { static std::string helpUser(int action); static std::string helpExitServer(int action); static std::string helpThreaded(int action); - static std::string helpPort(int action); static std::string helpSettings(int action); static std::string helpSN(int action); static std::string helpDigiTest(int action); @@ -68,7 +67,6 @@ class slsDetectorCommand : public virtual slsDetectorDefs { std::string cmdUser(int narg, const char * const args[], int action, int detPos = -1); std::string cmdHelp(int narg, const char * const args[], int action, int detPos = -1); std::string cmdExitServer(int narg, const char * const args[], int action, int detPos = -1); - std::string cmdPort(int narg, const char * const args[], int action, int detPos = -1); std::string cmdSettings(int narg, const char * const args[], int action, int detPos = -1); std::string cmdSN(int narg, const char * const args[], int action, int detPos = -1); std::string cmdDigiTest(int narg, const char * const args[], int action, int detPos = -1); diff --git a/slsDetectorSoftware/src/slsDetectorCommand.cpp b/slsDetectorSoftware/src/slsDetectorCommand.cpp index b2f7cba19..b25adbac1 100755 --- a/slsDetectorSoftware/src/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/src/slsDetectorCommand.cpp @@ -810,21 +810,6 @@ slsDetectorCommand::slsDetectorCommand(multiSlsDetector *det) { /* communication configuration */ - /*! \page network - - port [port] sets/gets the port of the client-detector control server TCP interface. Use single-detector command. Default value is 1952 for all detectors. Normally not changed. \c Returns \c (int) - */ - descrToFuncMap[i].m_pFuncName = "port"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdPort; - ++i; - - /*! \page network - - stopport [port] sets/gets the port of the client-detector stop server TCP interface. Use single-detector command. Default value is 1953 for all detectors. Normally not changed. \c Returns \c (int) - */ - descrToFuncMap[i].m_pFuncName = "stopport"; - descrToFuncMap[i].m_pFuncPtr = &slsDetectorCommand::cmdPort; - ++i; - - /* receiver functions */ /*! \page receiver Receiver commands @@ -1167,48 +1152,6 @@ std::string slsDetectorCommand::helpThreaded(int action) { -std::string slsDetectorCommand::cmdPort(int narg, const char * const args[], int action, int detPos) { - - if (action == HELP_ACTION) - return helpPort(action); - int val; //ret, - char ans[MAX_STR_LENGTH]; - if (action == PUT_ACTION) { - if (sscanf(args[1], "%d", &val)) - ; - else - return std::string("could not scan port number") + std::string(args[1]); - } - - if (cmd == "port") { - if (action == PUT_ACTION) - myDet->setControlPort(val, detPos); - sprintf(ans, "%d", myDet->setControlPort(-1, detPos)); - } else if (cmd == "stopport") { - if (action == PUT_ACTION) - myDet->setStopPort(val, detPos); - sprintf(ans, "%d", myDet->setStopPort(-1, detPos)); - } else - return std::string("unknown port type ") + cmd; - - return std::string(ans); -} - -std::string slsDetectorCommand::helpPort(int action) { - - std::ostringstream os; - if (action == PUT_ACTION || action == HELP_ACTION) { - os << "port i \n sets the communication control port" << std::endl; - os << "stopport i \n sets the communication stop port " << std::endl; - } - if (action == GET_ACTION || action == HELP_ACTION) { - os << "port \n gets the communication control port" << std::endl; - os << "stopport \n gets the communication stop port " << std::endl; - } - return os.str(); -} - - std::string slsDetectorCommand::cmdSettings(int narg, const char * const args[], int action, int detPos) { diff --git a/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp b/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp index 38d6b6628..17a441118 100644 --- a/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp +++ b/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp @@ -9,6 +9,34 @@ auto GET = slsDetectorDefs::GET_ACTION; auto PUT = slsDetectorDefs::PUT_ACTION; +TEST_CASE("port", "[.cmd]") { + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("port 1942", PUT, nullptr, oss)); + REQUIRE(oss.str() == "port 1942\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("port", GET, nullptr, oss)); + REQUIRE(oss.str() == "port 1942\n"); + } + REQUIRE_NOTHROW(multiSlsDetectorClient("port 1952", PUT)); +} + +TEST_CASE("stopport", "[.cmd]") { + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("stopport 1942", PUT, nullptr, oss)); + REQUIRE(oss.str() == "stopport 1942\n"); + } + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("stopport", GET, nullptr, oss)); + REQUIRE(oss.str() == "stopport 1942\n"); + } + REQUIRE_NOTHROW(multiSlsDetectorClient("stopport 1953", PUT)); +} + TEST_CASE("adcreg", "[.cmd]") { if (test::type == slsDetectorDefs::JUNGFRAU || test::type == slsDetectorDefs::CHIPTESTBOARD || test::type == slsDetectorDefs::GOTTHARD) { REQUIRE_THROWS(multiSlsDetectorClient("adcreg 0x34", PUT));