mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 03:10:02 +02:00
tests made to pass ctb
This commit is contained in:
parent
fa84d17a19
commit
f73a15e786
Binary file not shown.
@ -233,7 +233,7 @@
|
|||||||
WrongNumberOfParameters(1); \
|
WrongNumberOfParameters(1); \
|
||||||
} \
|
} \
|
||||||
auto t = det->GETFCN(DAC_INDEX, mv, {det_id}); \
|
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) { \
|
} else if (action == slsDetectorDefs::PUT_ACTION) { \
|
||||||
bool mv = false; \
|
bool mv = false; \
|
||||||
if (args.size() == 2) { \
|
if (args.size() == 2) { \
|
||||||
@ -423,10 +423,17 @@ class CmdProxy {
|
|||||||
return ToString(value, unit);
|
return ToString(value, unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline unsigned int stoui(const std::string& s) {
|
inline unsigned int stoiHex(const std::string& s) {
|
||||||
unsigned long lresult = stoul(s, 0, 10);
|
unsigned long lresult = stoul(s, 0, 16);
|
||||||
unsigned int result = lresult;
|
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;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -882,7 +889,7 @@ class CmdProxy {
|
|||||||
GET_COMMAND(rx_framescaught, getFramesCaught,
|
GET_COMMAND(rx_framescaught, getFramesCaught,
|
||||||
"\n\tNumber of frames caught by receiver.");
|
"\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.");
|
"[n_value]\n\t[Eiger[Jungfrau] Starting frame number for next acquisition.");
|
||||||
|
|
||||||
EXECUTE_SET_COMMAND(trigger, sendSoftwareTrigger,
|
EXECUTE_SET_COMMAND(trigger, sendSoftwareTrigger,
|
||||||
@ -1181,25 +1188,25 @@ class CmdProxy {
|
|||||||
GET_IND_COMMAND(vm_io, getMeasuredVoltage, defs::V_POWER_IO, "",
|
GET_IND_COMMAND(vm_io, getMeasuredVoltage, defs::V_POWER_IO, "",
|
||||||
"\n\t[Ctb] Measured voltage of power supply io in mV.");
|
"\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.");
|
"\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.");
|
"\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.");
|
"\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.");
|
"\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.");
|
"\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.");
|
"[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.");
|
"[bitmask]\n\t[Ctb] ADC Inversion Mask.");
|
||||||
|
|
||||||
INTEGER_COMMAND(extsampling, getExternalSampling, setExternalSampling, std::stoi,
|
INTEGER_COMMAND(extsampling, getExternalSampling, setExternalSampling, std::stoi,
|
||||||
@ -1220,10 +1227,10 @@ class CmdProxy {
|
|||||||
EXECUTE_SET_COMMAND_NOID_1ARG(savepattern, savePattern,
|
EXECUTE_SET_COMMAND_NOID_1ARG(savepattern, savePattern,
|
||||||
"[fname]\n\t[Ctb] Saves pattern to file (ascii). Also executes pattern.");
|
"[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.");
|
"[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.");
|
"[64 bit mask]\n\t[Ctb] 64 bit mask defining output clock enable.");
|
||||||
|
|
||||||
|
|
||||||
|
@ -294,39 +294,48 @@ std::string CmdProxy::Speed(int action) {
|
|||||||
os << cmd << ' ';
|
os << cmd << ' ';
|
||||||
if (action == defs::HELP_ACTION) {
|
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';
|
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<defs::speedLevel>(args[0]);
|
|
||||||
}
|
|
||||||
det->setSpeed(t, {det_id});
|
|
||||||
os << sls::ToString(t) << '\n'; // no args to convert 0,1,2 as well
|
|
||||||
} else {
|
} else {
|
||||||
throw sls::RuntimeError("Unknown action");
|
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<defs::speedLevel>(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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return os.str();
|
return os.str();
|
||||||
}
|
}
|
||||||
@ -1000,7 +1009,7 @@ std::string CmdProxy::DigitalIODelay(int action) {
|
|||||||
if (args.size() != 2) {
|
if (args.size() != 2) {
|
||||||
WrongNumberOfParameters(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';
|
os << sls::ToString(args) << '\n';
|
||||||
} else {
|
} else {
|
||||||
throw sls::RuntimeError("Unknown action");
|
throw sls::RuntimeError("Unknown action");
|
||||||
@ -1039,13 +1048,13 @@ std::string CmdProxy::PatternWord(int action) {
|
|||||||
if (args.size() != 1) {
|
if (args.size() != 1) {
|
||||||
WrongNumberOfParameters(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';
|
os << OutStringHex(t) << '\n';
|
||||||
} else if (action == defs::PUT_ACTION) {
|
} else if (action == defs::PUT_ACTION) {
|
||||||
if (args.size() != 2) {
|
if (args.size() != 2) {
|
||||||
WrongNumberOfParameters(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';
|
os << sls::ToString(args) << '\n';
|
||||||
} else {
|
} else {
|
||||||
throw sls::RuntimeError("Unknown action");
|
throw sls::RuntimeError("Unknown action");
|
||||||
|
@ -11,21 +11,29 @@ auto PUT = slsDetectorDefs::PUT_ACTION;
|
|||||||
|
|
||||||
TEST_CASE("patword", "[.cmd][.ctb]") {
|
TEST_CASE("patword", "[.cmd][.ctb]") {
|
||||||
if (test::type == slsDetectorDefs::CHIPTESTBOARD) {
|
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;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23 0xc15004808d0a21a4", PUT, nullptr, 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;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23 0x0", PUT, nullptr, 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;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("patword 0x23", GET, nullptr, 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 {
|
} else {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("patword 0x23", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("patword 0x23", GET));
|
||||||
}
|
}
|
||||||
@ -33,6 +41,13 @@ TEST_CASE("patword", "[.cmd][.ctb]") {
|
|||||||
|
|
||||||
TEST_CASE("patclkctrl", "[.cmd][.ctb]") {
|
TEST_CASE("patclkctrl", "[.cmd][.ctb]") {
|
||||||
if (test::type == slsDetectorDefs::CHIPTESTBOARD) {
|
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;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl 0xc15004808d0a21a4", PUT, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl 0xc15004808d0a21a4", PUT, nullptr, oss));
|
||||||
@ -48,6 +63,7 @@ TEST_CASE("patclkctrl", "[.cmd][.ctb]") {
|
|||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl", GET, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "patclkctrl 0x0\n");
|
REQUIRE(oss.str() == "patclkctrl 0x0\n");
|
||||||
}
|
}
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("patclkctrl " + std::to_string(prev_value), PUT));
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("patclkctrl", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("patclkctrl", GET));
|
||||||
}
|
}
|
||||||
@ -56,6 +72,13 @@ TEST_CASE("patclkctrl", "[.cmd][.ctb]") {
|
|||||||
|
|
||||||
TEST_CASE("patioctrl", "[.cmd][.ctb]") {
|
TEST_CASE("patioctrl", "[.cmd][.ctb]") {
|
||||||
if (test::type == slsDetectorDefs::CHIPTESTBOARD) {
|
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;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl 0xc15004808d0a21a4", PUT, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl 0xc15004808d0a21a4", PUT, nullptr, oss));
|
||||||
@ -71,6 +94,7 @@ TEST_CASE("patioctrl", "[.cmd][.ctb]") {
|
|||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl", GET, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "patioctrl 0x0\n");
|
REQUIRE(oss.str() == "patioctrl 0x0\n");
|
||||||
}
|
}
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("patioctrl " + std::to_string(prev_value), PUT));
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("patioctrl", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("patioctrl", GET));
|
||||||
}
|
}
|
||||||
@ -126,10 +150,10 @@ TEST_CASE("diodelay", "[.cmd][.ctb]") {
|
|||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("diodelay 0x01010 775", PUT, nullptr, 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_NOTHROW(multiSlsDetectorClient("diodelay 0x01010 0", PUT));
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("diodelay 0x01010 776", PUT));
|
REQUIRE_THROWS(multiSlsDetectorClient("diodelay [0x01010, 776]", PUT));
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("diodelay", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("diodelay", GET));
|
||||||
}
|
}
|
||||||
@ -145,7 +169,7 @@ TEST_CASE("rx_dbitoffset", "[.cmd][.ctb]") {
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
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");
|
REQUIRE(oss.str() == "rx_dbitoffset 0\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -318,13 +342,13 @@ TEST_CASE("v_a", "[.cmd][.ctb]") {
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("v_limit 1000", PUT, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("v_limit 1500", PUT, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "vlimit 1000\n");
|
REQUIRE(oss.str() == "v_limit 1500\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("v_limit", GET, nullptr, 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));
|
REQUIRE_NOTHROW(multiSlsDetectorClient(s, PUT));
|
||||||
{
|
{
|
||||||
@ -398,7 +422,7 @@ TEST_CASE("adcvpp", "[.cmd][.ctb]") {
|
|||||||
{
|
{
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("adcvpp 1140 mv", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("adcvpp 1140 mv", PUT));
|
||||||
std::ostringstream oss;
|
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(oss.str() == "adcvpp 1140 mv\n");
|
||||||
}
|
}
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("adcvpp " + std::to_string(prev_val), PUT));
|
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_NOTHROW(multiSlsDetectorClient("dbitpipeline", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "dbitpipeline 15\n");
|
REQUIRE(oss.str() == "dbitpipeline 15\n");
|
||||||
}
|
}
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("dbitpipeline 16", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitpipeline 0", PUT));
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("dbitpipeline", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("dbitpipeline", GET));
|
||||||
}
|
}
|
||||||
@ -458,7 +482,7 @@ TEST_CASE("adcpipeline", "[.cmd][.ctb]") {
|
|||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("adcpipeline", GET, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("adcpipeline", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "adcpipeline 15\n");
|
REQUIRE(oss.str() == "adcpipeline 15\n");
|
||||||
}
|
}
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("adcpipeline 16", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("adcpipeline 0", PUT));
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("adcpipeline", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("adcpipeline", GET));
|
||||||
}
|
}
|
||||||
@ -496,7 +520,7 @@ TEST_CASE("dbitphase", "[.cmd][.ctb]") {
|
|||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase", GET, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "dbitphase 0\n");
|
REQUIRE(oss.str() == "dbitphase 0\n");
|
||||||
}
|
}
|
||||||
if (test::type != slsDetectorDefs::GOTTHARD) {
|
if (test::type == slsDetectorDefs::GOTTHARD) {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("dbitphase deg", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("dbitphase deg", GET));
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase 20 deg", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitphase 20 deg", PUT));
|
||||||
@ -538,10 +562,25 @@ TEST_CASE("romode", "[.cmd][.ctb]") {
|
|||||||
|
|
||||||
TEST_CASE("samples", "[.cmd][.ctb]") {
|
TEST_CASE("samples", "[.cmd][.ctb]") {
|
||||||
if (test::type == slsDetectorDefs::CHIPTESTBOARD) {
|
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:"<<prev_value1<<std::endl;
|
||||||
|
uint64_t prev_value2 = 0;
|
||||||
|
{
|
||||||
|
std::ostringstream oss;
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dsamples", GET, nullptr, oss));
|
||||||
|
std::string s = (oss.str()).erase (0, strlen("dsamples "));
|
||||||
|
prev_value2 = std::stoi(s);
|
||||||
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("samples 1200", PUT, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("samples 1200", PUT, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "samples 1200n");
|
REQUIRE(oss.str() == "samples 1200\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
@ -551,7 +590,7 @@ TEST_CASE("samples", "[.cmd][.ctb]") {
|
|||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("asamples 2200", PUT, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("asamples 2200", PUT, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "asamples 2200n");
|
REQUIRE(oss.str() == "asamples 2200\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
@ -561,14 +600,16 @@ TEST_CASE("samples", "[.cmd][.ctb]") {
|
|||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("dsamples 1200", PUT, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dsamples 1200", PUT, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "dsamples 1200n");
|
REQUIRE(oss.str() == "dsamples 1200\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("dsamples 1000", PUT, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dsamples 1000", PUT, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "dsamples 1000\n");
|
REQUIRE(oss.str() == "dsamples 1000\n");
|
||||||
}
|
}
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("samples", GET)); // different values
|
REQUIRE_THROWS(multiSlsDetectorClient("samples", GET)); // different values
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("asamples " + std::to_string(prev_value1), PUT));
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dsamples " + std::to_string(prev_value2), PUT));
|
||||||
} else {
|
} else {
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("samples", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("samples", GET));
|
||||||
REQUIRE_THROWS(multiSlsDetectorClient("asamples", GET));
|
REQUIRE_THROWS(multiSlsDetectorClient("asamples", GET));
|
||||||
@ -645,7 +686,7 @@ TEST_CASE("exptimel", "[.cmd][.gotthard]") {
|
|||||||
|
|
||||||
|
|
||||||
TEST_CASE("periodl", "[.cmd][.gotthard]") {
|
TEST_CASE("periodl", "[.cmd][.gotthard]") {
|
||||||
if (test::type == slsDetectorDefs::GOTTHARD || test::type == slsDetectorDefs::JUNGFRAU) {
|
if (test::type == slsDetectorDefs::GOTTHARD || test::type == slsDetectorDefs::JUNGFRAU || test::type == slsDetectorDefs::CHIPTESTBOARD) {
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("frames 2", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("frames 2", PUT));
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("period 5", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("period 5", PUT));
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("start", PUT));
|
||||||
@ -1958,10 +1999,10 @@ TEST_CASE("adcclk", "[.cmd][.ctb]") {
|
|||||||
REQUIRE(oss.str() == "adcclk 20\n");
|
REQUIRE(oss.str() == "adcclk 20\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("adcclk 0", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("adcclk 10", PUT));
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("adcclk", GET, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("adcclk", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "adcclk 0\n");
|
REQUIRE(oss.str() == "adcclk 10\n");
|
||||||
}
|
}
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("adcclk " + std::to_string(prev_clk), PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("adcclk " + std::to_string(prev_clk), PUT));
|
||||||
}
|
}
|
||||||
@ -1985,10 +2026,10 @@ TEST_CASE("dbitclk", "[.cmd][.ctb]") {
|
|||||||
REQUIRE(oss.str() == "dbitclk 20\n");
|
REQUIRE(oss.str() == "dbitclk 20\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitclk 0", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitclk 10", PUT));
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitclk", GET, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitclk", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "dbitclk 0\n");
|
REQUIRE(oss.str() == "dbitclk 10\n");
|
||||||
}
|
}
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitclk " + std::to_string(prev_clk), PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("dbitclk " + std::to_string(prev_clk), PUT));
|
||||||
}
|
}
|
||||||
@ -2012,10 +2053,10 @@ TEST_CASE("runclk", "[.cmd][.ctb]") {
|
|||||||
REQUIRE(oss.str() == "runclk 20\n");
|
REQUIRE(oss.str() == "runclk 20\n");
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("runclk 0", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("runclk 10", PUT));
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("runclk", GET, nullptr, oss));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("runclk", GET, nullptr, oss));
|
||||||
REQUIRE(oss.str() == "runclk 0\n");
|
REQUIRE(oss.str() == "runclk 10\n");
|
||||||
}
|
}
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("runclk " + std::to_string(prev_runclk), PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("runclk " + std::to_string(prev_runclk), PUT));
|
||||||
}
|
}
|
||||||
@ -2090,10 +2131,17 @@ TEST_CASE("settings", "[.cmd]") {
|
|||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("settings forceswitchg1", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("settings forceswitchg1", PUT));
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("settings forceswitchg2", PUT));
|
REQUIRE_NOTHROW(multiSlsDetectorClient("settings forceswitchg2", PUT));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case slsDetectorDefs::GOTTHARD:
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("settings dynamicgain", PUT));
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("settings highgain", PUT));
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("settings lowgain", PUT));
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("settings mediumgain", PUT));
|
||||||
|
REQUIRE_NOTHROW(multiSlsDetectorClient("settings veryhighgain", PUT));
|
||||||
default:
|
default:
|
||||||
|
REQUIRE_THROWS(multiSlsDetectorClient("settings", GET));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
REQUIRE_NOTHROW(multiSlsDetectorClient("settings", GET));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CASE("threshold", "[.cmd]") {
|
TEST_CASE("threshold", "[.cmd]") {
|
||||||
|
@ -51,7 +51,7 @@ inline std::string ToString(const defs::detectorType s){
|
|||||||
case defs::JUNGFRAU:
|
case defs::JUNGFRAU:
|
||||||
return std::string("Jungfrau");
|
return std::string("Jungfrau");
|
||||||
case defs::CHIPTESTBOARD:
|
case defs::CHIPTESTBOARD:
|
||||||
return std::string("JungfrauCTB");
|
return std::string("ChipTestBoard");
|
||||||
case defs::MOENCH:
|
case defs::MOENCH:
|
||||||
return std::string("Moench");
|
return std::string("Moench");
|
||||||
case defs::MYTHEN3:
|
case defs::MYTHEN3:
|
||||||
@ -367,7 +367,7 @@ inline defs::detectorType StringTo(const std::string& s){
|
|||||||
return defs::GOTTHARD;
|
return defs::GOTTHARD;
|
||||||
if (s == "Jungfrau")
|
if (s == "Jungfrau")
|
||||||
return defs::JUNGFRAU;
|
return defs::JUNGFRAU;
|
||||||
if (s == "JungfrauCTB")
|
if (s == "ChipTestBoard")
|
||||||
return defs::CHIPTESTBOARD;
|
return defs::CHIPTESTBOARD;
|
||||||
if (s == "Moench")
|
if (s == "Moench")
|
||||||
return defs::MOENCH;
|
return defs::MOENCH;
|
||||||
|
@ -4,9 +4,9 @@
|
|||||||
#define APIRECEIVER 0x190722
|
#define APIRECEIVER 0x190722
|
||||||
#define APIGUI 0x190723
|
#define APIGUI 0x190723
|
||||||
#define APIMOENCH 0x190820
|
#define APIMOENCH 0x190820
|
||||||
#define APICTB 0x191011
|
|
||||||
#define APIMYTHEN3 0x191011
|
#define APIMYTHEN3 0x191011
|
||||||
#define APIGOTTHARD2 0x191017
|
#define APIGOTTHARD2 0x191017
|
||||||
#define APIEIGER 0x191021
|
#define APIEIGER 0x191021
|
||||||
#define APIJUNGFRAU 0x191022
|
#define APIJUNGFRAU 0x191022
|
||||||
#define APIGOTTHARD 0x191021
|
#define APIGOTTHARD 0x191021
|
||||||
|
#define APICTB 0x191021
|
||||||
|
@ -129,7 +129,7 @@ TEST_CASE("string to detectorType"){
|
|||||||
REQUIRE(StringTo<dt>("Eiger") == dt::EIGER);
|
REQUIRE(StringTo<dt>("Eiger") == dt::EIGER);
|
||||||
REQUIRE(StringTo<dt>("Gotthard") == dt::GOTTHARD);
|
REQUIRE(StringTo<dt>("Gotthard") == dt::GOTTHARD);
|
||||||
REQUIRE(StringTo<dt>("Jungfrau") == dt::JUNGFRAU);
|
REQUIRE(StringTo<dt>("Jungfrau") == dt::JUNGFRAU);
|
||||||
REQUIRE(StringTo<dt>("JungfrauCTB") == dt::CHIPTESTBOARD);
|
REQUIRE(StringTo<dt>("ChipTestBoard") == dt::CHIPTESTBOARD);
|
||||||
REQUIRE(StringTo<dt>("Moench") == dt::MOENCH);
|
REQUIRE(StringTo<dt>("Moench") == dt::MOENCH);
|
||||||
REQUIRE(StringTo<dt>("Mythen3") == dt::MYTHEN3);
|
REQUIRE(StringTo<dt>("Mythen3") == dt::MYTHEN3);
|
||||||
REQUIRE(StringTo<dt>("Gotthard2") == dt::GOTTHARD2);
|
REQUIRE(StringTo<dt>("Gotthard2") == dt::GOTTHARD2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user