mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-17 11:31:30 +01:00
updates on servers (mainly virtual): indices, dbit clock not allowed for moench anymore
This commit is contained in:
@@ -402,37 +402,45 @@ std::string CmdProxy::Adcphase(int action) {
|
||||
"resets adcphase and sets it to previous values.\n\t[Gotthard] "
|
||||
"Relative phase shift"
|
||||
<< '\n';
|
||||
} else if (action == defs::GET_ACTION) {
|
||||
Result<int> t;
|
||||
if (args.empty()) {
|
||||
t = det->getADCPhase({det_id});
|
||||
os << OutString(t) << '\n';
|
||||
} else if (args.size() == 1) {
|
||||
if (args[0] != "deg") {
|
||||
throw sls::RuntimeError("Unknown adcphase argument " + args[0] +
|
||||
". Did you mean deg?");
|
||||
} else {
|
||||
auto det_type = det->getDetectorType().squash(defs::GENERIC);
|
||||
if (det_type == defs::EIGER ||
|
||||
det_type == defs::MYTHEN3 ||
|
||||
det_type == defs::GOTTHARD2) {
|
||||
throw sls::RuntimeError("adcphase not implemented for this detector");
|
||||
}
|
||||
t = det->getADCPhaseInDegrees({det_id});
|
||||
os << OutString(t) << " deg\n";
|
||||
} else {
|
||||
WrongNumberOfParameters(0);
|
||||
}
|
||||
} else if (action == defs::PUT_ACTION) {
|
||||
if (args.size() == 1) {
|
||||
det->setADCPhase(StringTo<int>(args[0]), {det_id});
|
||||
os << args.front() << '\n';
|
||||
} else if (args.size() == 2) {
|
||||
if (args[1] != "deg") {
|
||||
throw sls::RuntimeError("Unknown adcphase 2nd argument " +
|
||||
args[1] + ". Did you mean deg?");
|
||||
if (action == defs::GET_ACTION) {
|
||||
Result<int> t;
|
||||
if (args.empty()) {
|
||||
t = det->getADCPhase({det_id});
|
||||
os << OutString(t) << '\n';
|
||||
} else if (args.size() == 1) {
|
||||
if (args[0] != "deg") {
|
||||
throw sls::RuntimeError("Unknown adcphase argument " + args[0] +
|
||||
". Did you mean deg? ");
|
||||
}
|
||||
t = det->getADCPhaseInDegrees({det_id});
|
||||
os << OutString(t) << " deg\n";
|
||||
} else {
|
||||
WrongNumberOfParameters(0);
|
||||
}
|
||||
} else if (action == defs::PUT_ACTION) {
|
||||
if (args.size() == 1) {
|
||||
det->setADCPhase(StringTo<int>(args[0]), {det_id} );
|
||||
os << args.front() << '\n';
|
||||
} else if (args.size() == 2) {
|
||||
if (args[1] != "deg") {
|
||||
throw sls::RuntimeError("Unknown adcphase 2nd argument " +
|
||||
args[1] + ". Did you mean deg?");
|
||||
}
|
||||
det->setADCPhaseInDegrees(StringTo<int>(args[0]) , {det_id});
|
||||
os << args[0] << " " << args[1] << '\n';
|
||||
} else {
|
||||
WrongNumberOfParameters(1);
|
||||
}
|
||||
det->setADCPhaseInDegrees(StringTo<int>(args[0]), {det_id});
|
||||
os << args[0] << args[1] << '\n';
|
||||
} else {
|
||||
WrongNumberOfParameters(1);
|
||||
throw sls::RuntimeError("Unknown action");
|
||||
}
|
||||
} else {
|
||||
throw sls::RuntimeError("Unknown action");
|
||||
}
|
||||
return os.str();
|
||||
}
|
||||
@@ -446,37 +454,45 @@ std::string CmdProxy::Dbitphase(int action) {
|
||||
"shift in degrees. \n\t[Ctb]Changing dbitclk also resets dbitphase and "
|
||||
"sets to previous values."
|
||||
<< '\n';
|
||||
} else if (action == defs::GET_ACTION) {
|
||||
Result<int> t;
|
||||
if (args.empty()) {
|
||||
t = det->getDBITPhase({det_id});
|
||||
os << OutString(t) << '\n';
|
||||
} else if (args.size() == 1) {
|
||||
if (args[0] != "deg") {
|
||||
throw sls::RuntimeError("Unknown dbitphase argument " +
|
||||
args[0] + ". Did you mean deg?");
|
||||
}
|
||||
t = det->getDBITPhaseInDegrees({det_id});
|
||||
os << OutString(t) << " deg\n";
|
||||
} else {
|
||||
WrongNumberOfParameters(0);
|
||||
} else {
|
||||
auto det_type = det->getDetectorType().squash(defs::GENERIC);
|
||||
if (det_type == defs::EIGER ||
|
||||
det_type == defs::MYTHEN3 ||
|
||||
det_type == defs::GOTTHARD2) {
|
||||
throw sls::RuntimeError("dbitphase not implemented for this detector");
|
||||
}
|
||||
} else if (action == defs::PUT_ACTION) {
|
||||
if (args.size() == 1) {
|
||||
det->setDBITPhase(StringTo<int>(args[0]), {det_id});
|
||||
os << args.front() << '\n';
|
||||
} else if (args.size() == 2) {
|
||||
if (args[1] != "deg") {
|
||||
throw sls::RuntimeError("Unknown dbitphase 2nd argument " +
|
||||
args[1] + ". Did you mean deg?");
|
||||
if (action == defs::GET_ACTION) {
|
||||
Result<int> t;
|
||||
if (args.empty()) {
|
||||
t = det->getDBITPhase({det_id});
|
||||
os << OutString(t) << '\n';
|
||||
} else if (args.size() == 1) {
|
||||
if (args[0] != "deg") {
|
||||
throw sls::RuntimeError("Unknown dbitphase argument " +
|
||||
args[0] + ". Did you mean deg? ");
|
||||
}
|
||||
t = det->getDBITPhaseInDegrees({det_id});
|
||||
os << OutString(t) << " deg\n";
|
||||
} else {
|
||||
WrongNumberOfParameters(0);
|
||||
}
|
||||
} else if (action == defs::PUT_ACTION) {
|
||||
if (args.size() == 1) {
|
||||
det->setDBITPhase(StringTo<int>(args[0]), {det_id});
|
||||
os << args.front() << '\n';
|
||||
} else if (args.size() == 2) {
|
||||
if (args[1] != "deg") {
|
||||
throw sls::RuntimeError("Unknown dbitphase 2nd argument " +
|
||||
args[1] + ". Did you mean deg? ");
|
||||
}
|
||||
det->setDBITPhaseInDegrees(StringTo<int>(args[0]), {det_id} );
|
||||
os << args[0] << " " << args[1] << '\n';
|
||||
} else {
|
||||
WrongNumberOfParameters(1);
|
||||
}
|
||||
det->setDBITPhaseInDegrees(StringTo<int>(args[0]), {det_id});
|
||||
os << args[0] << args[1] << '\n';
|
||||
} else {
|
||||
WrongNumberOfParameters(1);
|
||||
throw sls::RuntimeError("Unknown action");
|
||||
}
|
||||
} else {
|
||||
throw sls::RuntimeError("Unknown action");
|
||||
}
|
||||
return os.str();
|
||||
}
|
||||
@@ -538,7 +554,7 @@ std::string CmdProxy::ClockPhase(int action) {
|
||||
}
|
||||
auto t =
|
||||
det->getClockPhaseinDegrees(StringTo<int>(args[0]), {det_id});
|
||||
os << OutString(t) << '\n';
|
||||
os << OutString(t) << " deg\n";
|
||||
} else {
|
||||
WrongNumberOfParameters(1);
|
||||
}
|
||||
@@ -554,7 +570,7 @@ std::string CmdProxy::ClockPhase(int action) {
|
||||
}
|
||||
det->setClockPhaseinDegrees(StringTo<int>(args[0]),
|
||||
StringTo<int>(args[1]), {det_id});
|
||||
os << args[1] << '\n';
|
||||
os << args[1] << " " << args[2] << '\n';
|
||||
} else {
|
||||
WrongNumberOfParameters(1);
|
||||
}
|
||||
|
||||
@@ -87,89 +87,6 @@ TEST_CASE("Setting and reading back MYTHEN3 dacs", "[.cmd][.dacs]") {
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("clkfreq", "[.cmd]") {
|
||||
Detector det;
|
||||
CmdProxy proxy(&det);
|
||||
auto det_type = det.getDetectorType().squash();
|
||||
if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) {
|
||||
REQUIRE_THROWS(proxy.Call("clkfreq", {"0", "2"}, -1, PUT));
|
||||
REQUIRE_THROWS(proxy.Call("clkfreq", {}, -1, GET));
|
||||
REQUIRE_THROWS(proxy.Call("clkfreq", {"7"}, -1, GET));
|
||||
|
||||
auto value = det.getClockFrequency(0).squash(-1);
|
||||
std::ostringstream oss_set, oss_get;
|
||||
proxy.Call("clkfreq", {"0"}, -1, GET, oss_get);
|
||||
REQUIRE(oss_get.str() == "clkfreq " + std::to_string(value) + "\n");
|
||||
} else {
|
||||
REQUIRE_THROWS(proxy.Call("clkfreq", {"0"}, -1, GET));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("clkphase", "[.cmd]") {
|
||||
Detector det;
|
||||
CmdProxy proxy(&det);
|
||||
auto det_type = det.getDetectorType().squash();
|
||||
if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) {
|
||||
REQUIRE_THROWS(proxy.Call("clkphase", {}, -1, GET));
|
||||
REQUIRE_THROWS(proxy.Call("clkphase", {"7"}, -1, GET));
|
||||
REQUIRE_THROWS(proxy.Call("clkphase", {"4"}, -1, PUT));
|
||||
REQUIRE_THROWS(proxy.Call("clkphase", {"7", "4"}, -1, PUT));
|
||||
|
||||
auto previous = det.getClockFrequency(0).squash(-1);
|
||||
auto previous_string = std::to_string(previous);
|
||||
std::ostringstream oss_set, oss_get, oss_get2;
|
||||
proxy.Call("clkfreq", {"0", previous_string}, -1, PUT, oss_set);
|
||||
REQUIRE(oss_set.str() == "clkfreq" + previous_string + "\n");
|
||||
proxy.Call("clkfreq", {"0"}, -1, GET, oss_get);
|
||||
REQUIRE(oss_get.str() == "clkfreq " + previous_string + "\n");
|
||||
REQUIRE_NOTHROW(proxy.Call("clkphase", {"0", "deg"}, -1, GET));
|
||||
} else {
|
||||
REQUIRE_THROWS(proxy.Call("clkphase", {"0"}, -1, GET));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("clkdiv", "[.cmd]") {
|
||||
Detector det;
|
||||
CmdProxy proxy(&det);
|
||||
auto det_type = det.getDetectorType().squash();
|
||||
if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) {
|
||||
REQUIRE_THROWS(proxy.Call("clkdiv", {}, -1, GET));
|
||||
REQUIRE_THROWS(proxy.Call("clkdiv", {"7"}, -1, GET));
|
||||
REQUIRE_THROWS(proxy.Call("clkdiv", {"7", "4"}, -1, PUT));
|
||||
REQUIRE_THROWS(proxy.Call("clkdiv", {"7", "4"}, -1, PUT));
|
||||
REQUIRE_THROWS(proxy.Call("clkdiv", {"0", "1"}, -1, PUT));
|
||||
|
||||
auto previous = det.getClockDivider(0).squash(-1);
|
||||
auto previous_string = std::to_string(previous);
|
||||
std::ostringstream oss_set, oss_get;
|
||||
proxy.Call("clkdiv", {"0", previous_string}, -1, PUT, oss_set);
|
||||
REQUIRE(oss_set.str() == "clkdiv" + previous_string + "\n");
|
||||
proxy.Call("clkdiv", {"0"}, -1, GET, oss_get);
|
||||
REQUIRE(oss_get.str() == "clkdiv " + previous_string + "\n");
|
||||
} else {
|
||||
REQUIRE_THROWS(proxy.Call("clkdiv", {"0"}, -1, GET));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("maxclkphaseshift", "[.cmd]") {
|
||||
Detector det;
|
||||
CmdProxy proxy(&det);
|
||||
auto det_type = det.getDetectorType().squash();
|
||||
if (det_type == defs::MYTHEN3 || det_type == defs::GOTTHARD2) {
|
||||
REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"0", "2"}, -1, PUT));
|
||||
REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {}, -1, GET));
|
||||
REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"7"}, -1, GET));
|
||||
|
||||
auto value = det.getMaxClockPhaseShift(0).squash(-1);
|
||||
std::ostringstream oss_set, oss_get;
|
||||
proxy.Call("maxclkphaseshift", {"0"}, -1, GET, oss_get);
|
||||
REQUIRE(oss_get.str() ==
|
||||
"maxclkphaseshift " + std::to_string(value) + "\n");
|
||||
} else {
|
||||
REQUIRE_THROWS(proxy.Call("maxclkphaseshift", {"0"}, -1, GET));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("counters", "[.cmd]") {
|
||||
Detector det;
|
||||
CmdProxy proxy(&det);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user