From f73a15e786a78ed4237b9a93fd3d55d5c2289055 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Thu, 24 Oct 2019 11:32:58 +0200 Subject: [PATCH] tests made to pass ctb --- .../bin/ctbDetectorServer_developer | Bin 175292 -> 177064 bytes slsDetectorSoftware/include/CmdProxy.h | 35 +++--- slsDetectorSoftware/src/CmdProxy.cpp | 79 +++++++------ .../tests/test-multiSlsDetectorClient.cpp | 104 +++++++++++++----- slsSupportLib/include/ToString.h | 4 +- slsSupportLib/include/versionAPI.h | 2 +- slsSupportLib/tests/test-ToString.cpp | 2 +- 7 files changed, 145 insertions(+), 81 deletions(-) diff --git a/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer b/slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServer_developer index 3592691d122c2c216bbb71c77ad933a9a229aec6..26777f4bee04b385629d288411d84a1d5fa3e104 100755 GIT binary patch delta 76417 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 delta 74688 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 T+UnW{x7D>z;*ZdF*&hD^L->su diff --git a/slsDetectorSoftware/include/CmdProxy.h b/slsDetectorSoftware/include/CmdProxy.h index c89ef8fc1..0ea66c0a8 100644 --- a/slsDetectorSoftware/include/CmdProxy.h +++ b/slsDetectorSoftware/include/CmdProxy.h @@ -233,7 +233,7 @@ WrongNumberOfParameters(1); \ } \ auto t = det->GETFCN(DAC_INDEX, mv, {det_id}); \ - os << OutString(t) << (args.size() > 1 ? " mv\n" : "\n"); \ + os << OutString(t) << (args.size() > 0 ? " mv\n" : "\n"); \ } else if (action == slsDetectorDefs::PUT_ACTION) { \ bool mv = false; \ if (args.size() == 2) { \ @@ -423,10 +423,17 @@ class CmdProxy { return ToString(value, unit); } - inline unsigned int stoui(const std::string& s) { - unsigned long lresult = stoul(s, 0, 10); + inline unsigned int stoiHex(const std::string& s) { + unsigned long lresult = stoul(s, 0, 16); unsigned int result = lresult; - if (result != lresult) throw std::out_of_range("cannot convert to unsigned int"); + if (result != lresult) { + throw std::out_of_range("cannot convert to unsigned int"); + } + return result; + } + + inline unsigned long int stoulHex(const std::string& s) { + unsigned long result = stoul(s, 0, 16); return result; } @@ -882,7 +889,7 @@ class CmdProxy { GET_COMMAND(rx_framescaught, getFramesCaught, "\n\tNumber of frames caught by receiver."); - INTEGER_COMMAND(startingfnum, getStartingFrameNumber, setStartingFrameNumber, std::stoul, + INTEGER_COMMAND(startingfnum, getStartingFrameNumber, setStartingFrameNumber, std::stoull, "[n_value]\n\t[Eiger[Jungfrau] Starting frame number for next acquisition."); EXECUTE_SET_COMMAND(trigger, sendSoftwareTrigger, @@ -1181,25 +1188,25 @@ class CmdProxy { GET_IND_COMMAND(vm_io, getMeasuredVoltage, defs::V_POWER_IO, "", "\n\t[Ctb] Measured voltage of power supply io in mV."); - GET_IND_COMMAND(im_a, getMeasuredVoltage, defs::I_POWER_A, "", + GET_IND_COMMAND(im_a, getMeasuredCurrent, defs::I_POWER_A, "", "\n\t[Ctb] Measured current of power supply a in mA."); - GET_IND_COMMAND(im_b, getMeasuredVoltage, defs::I_POWER_B, "", + GET_IND_COMMAND(im_b, getMeasuredCurrent, defs::I_POWER_B, "", "\n\t[Ctb] Measured current of power supply b in mA."); - GET_IND_COMMAND(im_c, getMeasuredVoltage, defs::I_POWER_C, "", + GET_IND_COMMAND(im_c, getMeasuredCurrent, defs::I_POWER_C, "", "\n\t[Ctb] Measured current of power supply c in mA."); - GET_IND_COMMAND(im_d, getMeasuredVoltage, defs::I_POWER_D, "", + GET_IND_COMMAND(im_d, getMeasuredCurrent, defs::I_POWER_D, "", "\n\t[Ctb] Measured current of power supply d in mA."); - GET_IND_COMMAND(im_io, getMeasuredVoltage, defs::I_POWER_IO, "", + GET_IND_COMMAND(im_io, getMeasuredCurrent, defs::I_POWER_IO, "", "\n\t[Ctb] Measured current of power supply io in mA."); - INTEGER_COMMAND(adcenable, getADCEnableMask, setADCEnableMask, stoui, + INTEGER_COMMAND_HEX(adcenable, getADCEnableMask, setADCEnableMask, stoiHex, "[bitmask]\n\t[Ctb] ADC Enable Mask."); - INTEGER_COMMAND(adcinvert, getADCInvert, setADCInvert, stoui, + INTEGER_COMMAND_HEX(adcinvert, getADCInvert, setADCInvert, stoiHex, "[bitmask]\n\t[Ctb] ADC Inversion Mask."); INTEGER_COMMAND(extsampling, getExternalSampling, setExternalSampling, std::stoi, @@ -1220,10 +1227,10 @@ class CmdProxy { EXECUTE_SET_COMMAND_NOID_1ARG(savepattern, savePattern, "[fname]\n\t[Ctb] Saves pattern to file (ascii). Also executes pattern."); - INTEGER_COMMAND_HEX(patioctrl, getPatternIOControl, setPatternIOControl, std::stoul, + INTEGER_COMMAND_HEX(patioctrl, getPatternIOControl, setPatternIOControl, std::stoull, "[64 bit mask]\n\t[Ctb] 64 bit mask defining input (0) and output (1) signals."); - INTEGER_COMMAND_HEX(patclkctrl, getPatternClockControl, setPatternClockControl, std::stoul, + INTEGER_COMMAND_HEX(patclkctrl, getPatternClockControl, setPatternClockControl, std::stoull, "[64 bit mask]\n\t[Ctb] 64 bit mask defining output clock enable."); diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index 782374f3a..67ffb2f0f 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -294,39 +294,48 @@ std::string CmdProxy::Speed(int action) { os << cmd << ' '; if (action == defs::HELP_ACTION) { os << "[0 or full_speed|1 or half_speed|2 or quarter_speed]\n\t[Eiger][Jungfrau] Readout speed of chip.\n\tJungfrau also overwrites adcphase to recommended default. " << '\n'; - } else if (action == defs::GET_ACTION) { - if (args.size() != 0) { - WrongNumberOfParameters(0); - } - auto t = det->getSpeed({det_id}); - os << OutString(t) << '\n'; - } else if (action == defs::PUT_ACTION) { - if (args.size() != 1) { - WrongNumberOfParameters(1); - } - defs::speedLevel t; - try{ - int ival = std::stoi(args[0]); - switch (ival) { - case 0: - t = defs::FULL_SPEED; - break; - case 1: - t = defs::HALF_SPEED; - break; - case 2: - t = defs::QUARTER_SPEED; - break; - default: - throw sls::RuntimeError("Unknown speed " + args[0]); - } - } catch (...) { - t = sls::StringTo(args[0]); + } else { + defs::detectorType type = det->getDetectorType().squash(); + if (type == defs::CHIPTESTBOARD || type == defs::MOENCH) { + throw sls::RuntimeError("Speed not implemented. Did you mean runclk?"); + } + if (type != defs::EIGER && type != defs::JUNGFRAU) { + throw sls::RuntimeError("Speed not implemented."); // setspped one function problem. tbr after change + } + if (action == defs::GET_ACTION) { + if (args.size() != 0) { + WrongNumberOfParameters(0); + } + auto t = det->getSpeed({det_id}); + os << OutString(t) << '\n'; + } else if (action == defs::PUT_ACTION) { + if (args.size() != 1) { + WrongNumberOfParameters(1); + } + defs::speedLevel t; + try{ + int ival = std::stoi(args[0]); + switch (ival) { + case 0: + t = defs::FULL_SPEED; + break; + case 1: + t = defs::HALF_SPEED; + break; + case 2: + t = defs::QUARTER_SPEED; + break; + default: + throw sls::RuntimeError("Unknown speed " + args[0]); + } + } catch (...) { + t = sls::StringTo(args[0]); + } + det->setSpeed(t, {det_id}); + os << sls::ToString(t) << '\n'; // no args to convert 0,1,2 as well + } else { + throw sls::RuntimeError("Unknown action"); } - det->setSpeed(t, {det_id}); - os << sls::ToString(t) << '\n'; // no args to convert 0,1,2 as well - } else { - throw sls::RuntimeError("Unknown action"); } return os.str(); } @@ -1000,7 +1009,7 @@ std::string CmdProxy::DigitalIODelay(int action) { if (args.size() != 2) { WrongNumberOfParameters(2); } - det->setDigitalIODelay(std::stoul(args[0]), std::stoi(args[2])); + det->setDigitalIODelay(stoulHex(args[0]), std::stoi(args[1])); os << sls::ToString(args) << '\n'; } else { throw sls::RuntimeError("Unknown action"); @@ -1039,13 +1048,13 @@ std::string CmdProxy::PatternWord(int action) { if (args.size() != 1) { WrongNumberOfParameters(1); } - auto t = det->getPatternWord(std::stoi(args[0]), {det_id}); + auto t = det->getPatternWord(stoiHex(args[0]), {det_id}); os << OutStringHex(t) << '\n'; } else if (action == defs::PUT_ACTION) { if (args.size() != 2) { WrongNumberOfParameters(2); } - det->setPatternWord(std::stoi(args[0]), std::stoul(args[1])); + det->setPatternWord(stoiHex(args[0]), stoulHex(args[1])); os << sls::ToString(args) << '\n'; } else { throw sls::RuntimeError("Unknown action"); diff --git a/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp b/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp index 3d9b05bda..fc927cb9a 100644 --- a/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp +++ b/slsDetectorSoftware/tests/test-multiSlsDetectorClient.cpp @@ -11,21 +11,29 @@ auto PUT = slsDetectorDefs::PUT_ACTION; TEST_CASE("patword", "[.cmd][.ctb]") { if (test::type == slsDetectorDefs::CHIPTESTBOARD) { + uint64_t prev_value = 0; + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23", GET, nullptr, oss)); + std::string s = (oss.str()).erase (0, strlen("patword ")); + prev_value = stoul(s, 0, 16); + } { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23 0xc15004808d0a21a4", PUT, nullptr, oss)); - REQUIRE(oss.str() == "patword 0x23 0xc15004808d0a21a4\n"); + REQUIRE(oss.str() == "patword [0x23, 0xc15004808d0a21a4]\n"); } { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23 0x0", PUT, nullptr, oss)); - REQUIRE(oss.str() == "patword 0x23 0x0\n"); + REQUIRE(oss.str() == "patword [0x23, 0x0]\n"); } { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23", GET, nullptr, oss)); - REQUIRE(oss.str() == "patword 0x23 0x0\n"); - } + REQUIRE(oss.str() == "patword 0x0\n"); + } + REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23 " + std::to_string(prev_value), PUT)); } else { REQUIRE_THROWS(multiSlsDetectorClient("patword 0x23", GET)); } @@ -33,6 +41,13 @@ TEST_CASE("patword", "[.cmd][.ctb]") { TEST_CASE("patclkctrl", "[.cmd][.ctb]") { if (test::type == slsDetectorDefs::CHIPTESTBOARD) { + uint64_t prev_value = 0; + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl", GET, nullptr, oss)); + std::string s = (oss.str()).erase (0, strlen("patclkctrl ")); + prev_value = stoul(s, 0, 16); + } { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl 0xc15004808d0a21a4", PUT, nullptr, oss)); @@ -47,7 +62,8 @@ TEST_CASE("patclkctrl", "[.cmd][.ctb]") { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl", GET, nullptr, oss)); REQUIRE(oss.str() == "patclkctrl 0x0\n"); - } + } + REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl " + std::to_string(prev_value), PUT)); } else { REQUIRE_THROWS(multiSlsDetectorClient("patclkctrl", GET)); } @@ -56,6 +72,13 @@ TEST_CASE("patclkctrl", "[.cmd][.ctb]") { TEST_CASE("patioctrl", "[.cmd][.ctb]") { if (test::type == slsDetectorDefs::CHIPTESTBOARD) { + uint64_t prev_value = 0; + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl", GET, nullptr, oss)); + std::string s = (oss.str()).erase (0, strlen("patioctrl ")); + prev_value = stoul(s, 0, 16); + } { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl 0xc15004808d0a21a4", PUT, nullptr, oss)); @@ -70,7 +93,8 @@ TEST_CASE("patioctrl", "[.cmd][.ctb]") { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl", GET, nullptr, oss)); REQUIRE(oss.str() == "patioctrl 0x0\n"); - } + } + REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl " + std::to_string(prev_value), PUT)); } else { REQUIRE_THROWS(multiSlsDetectorClient("patioctrl", GET)); } @@ -126,10 +150,10 @@ TEST_CASE("diodelay", "[.cmd][.ctb]") { { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("diodelay 0x01010 775", PUT, nullptr, oss)); - REQUIRE(oss.str() == "diodelay 0x01010 775\n"); + REQUIRE(oss.str() == "diodelay [0x01010, 775]\n"); } REQUIRE_NOTHROW(multiSlsDetectorClient("diodelay 0x01010 0", PUT)); - REQUIRE_THROWS(multiSlsDetectorClient("diodelay 0x01010 776", PUT)); + REQUIRE_THROWS(multiSlsDetectorClient("diodelay [0x01010, 776]", PUT)); } else { REQUIRE_THROWS(multiSlsDetectorClient("diodelay", GET)); } @@ -145,7 +169,7 @@ TEST_CASE("rx_dbitoffset", "[.cmd][.ctb]") { } { std::ostringstream oss; - REQUIRE_NOTHROW(multiSlsDetectorClient("extsamplirx_dbitoffsetngsrc 0", PUT, nullptr, oss)); + REQUIRE_NOTHROW(multiSlsDetectorClient("rx_dbitoffset 0", PUT, nullptr, oss)); REQUIRE(oss.str() == "rx_dbitoffset 0\n"); } { @@ -318,13 +342,13 @@ TEST_CASE("v_a", "[.cmd][.ctb]") { } { std::ostringstream oss; - REQUIRE_NOTHROW(multiSlsDetectorClient("v_limit 1000", PUT, nullptr, oss)); - REQUIRE(oss.str() == "vlimit 1000\n"); + REQUIRE_NOTHROW(multiSlsDetectorClient("v_limit 1500", PUT, nullptr, oss)); + REQUIRE(oss.str() == "v_limit 1500\n"); } { std::ostringstream oss; REQUIRE_NOTHROW(multiSlsDetectorClient("v_limit", GET, nullptr, oss)); - REQUIRE(oss.str() == "vlimit 1000\n"); + REQUIRE(oss.str() == "v_limit 1500\n"); } REQUIRE_NOTHROW(multiSlsDetectorClient(s, PUT)); { @@ -398,7 +422,7 @@ TEST_CASE("adcvpp", "[.cmd][.ctb]") { { REQUIRE_NOTHROW(multiSlsDetectorClient("adcvpp 1140 mv", PUT)); std::ostringstream oss; - REQUIRE_NOTHROW(multiSlsDetectorClient("adcvpp", GET, nullptr, oss)); + REQUIRE_NOTHROW(multiSlsDetectorClient("adcvpp mv", GET, nullptr, oss)); REQUIRE(oss.str() == "adcvpp 1140 mv\n"); } REQUIRE_NOTHROW(multiSlsDetectorClient("adcvpp " + std::to_string(prev_val), PUT)); @@ -430,7 +454,7 @@ TEST_CASE("dbitpipeline", "[.cmd][.ctb]") { REQUIRE_NOTHROW(multiSlsDetectorClient("dbitpipeline", GET, nullptr, oss)); REQUIRE(oss.str() == "dbitpipeline 15\n"); } - REQUIRE_THROWS(multiSlsDetectorClient("dbitpipeline 16", PUT)); + REQUIRE_NOTHROW(multiSlsDetectorClient("dbitpipeline 0", PUT)); } else { REQUIRE_THROWS(multiSlsDetectorClient("dbitpipeline", GET)); } @@ -458,7 +482,7 @@ TEST_CASE("adcpipeline", "[.cmd][.ctb]") { REQUIRE_NOTHROW(multiSlsDetectorClient("adcpipeline", GET, nullptr, oss)); REQUIRE(oss.str() == "adcpipeline 15\n"); } - REQUIRE_THROWS(multiSlsDetectorClient("adcpipeline 16", PUT)); + REQUIRE_NOTHROW(multiSlsDetectorClient("adcpipeline 0", PUT)); } else { REQUIRE_THROWS(multiSlsDetectorClient("adcpipeline", GET)); } @@ -496,7 +520,7 @@ TEST_CASE("dbitphase", "[.cmd][.ctb]") { REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase", GET, nullptr, oss)); REQUIRE(oss.str() == "dbitphase 0\n"); } - if (test::type != slsDetectorDefs::GOTTHARD) { + if (test::type == slsDetectorDefs::GOTTHARD) { REQUIRE_THROWS(multiSlsDetectorClient("dbitphase deg", GET)); } else { REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase 20 deg", PUT)); @@ -538,10 +562,25 @@ TEST_CASE("romode", "[.cmd][.ctb]") { TEST_CASE("samples", "[.cmd][.ctb]") { if (test::type == slsDetectorDefs::CHIPTESTBOARD) { + uint64_t prev_value1 = 0; + { + std::ostringstream oss; + REQUIRE_NOTHROW(multiSlsDetectorClient("asamples", GET, nullptr, oss)); + std::string s = (oss.str()).erase (0, strlen("asamples ")); + prev_value1 = std::stoi(s); + } + std::cout<<"asamples:"<("Eiger") == dt::EIGER); REQUIRE(StringTo
("Gotthard") == dt::GOTTHARD); REQUIRE(StringTo
("Jungfrau") == dt::JUNGFRAU); - REQUIRE(StringTo
("JungfrauCTB") == dt::CHIPTESTBOARD); + REQUIRE(StringTo
("ChipTestBoard") == dt::CHIPTESTBOARD); REQUIRE(StringTo
("Moench") == dt::MOENCH); REQUIRE(StringTo
("Mythen3") == dt::MYTHEN3); REQUIRE(StringTo
("Gotthard2") == dt::GOTTHARD2);