This commit is contained in:
maliakal_d 2021-06-23 10:28:14 +02:00
parent 01dfc08bbe
commit 61c5018a46
7 changed files with 35 additions and 24 deletions

View File

@ -8237,9 +8237,14 @@ int get_datastream(int file_des) {
leftFpga); leftFpga);
LOG(logERROR, (mess)); LOG(logERROR, (mess));
} else { } else {
retval = getDataStream(leftFpga, &retval); ret = getDataStream(leftFpga, &retval);
LOG(logDEBUG1, ("datastream (%s) retval: %u\n", LOG(logDEBUG1, ("datastream (%s) retval: %u\n",
(leftFpga ? "left" : "right"), retval)); (leftFpga ? "left" : "right"), retval));
if (ret == FAIL) {
sprintf(mess, "Could not get %s data stream enable.\n",
(leftFpga ? "left" : "right"));
LOG(logERROR, (mess));
}
} }
#endif #endif
return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
@ -8283,8 +8288,14 @@ int set_datastream(int file_des) {
sprintf(mess, "Could not %s\n", msg); sprintf(mess, "Could not %s\n", msg);
LOG(logERROR, (mess)); LOG(logERROR, (mess));
} else { } else {
int retval = getDataStream(leftFpga, &retval); int retval = -1;
ret = getDataStream(leftFpga, &retval);
LOG(logDEBUG1, ("%s retval: %u\n", msg, retval)); LOG(logDEBUG1, ("%s retval: %u\n", msg, retval));
if (ret == FAIL) {
sprintf(mess, "Could not get %s data stream enable.\n",
(leftFpga ? "left" : "right"));
LOG(logERROR, (mess));
}
validate(&ret, mess, enable, retval, msg, DEC); validate(&ret, mess, enable, retval, msg, DEC);
} }
} }

View File

@ -1062,7 +1062,7 @@ class Detector {
/** [Eiger] enable or disable data streaming from left or right of detector /** [Eiger] enable or disable data streaming from left or right of detector
*/ */
void setDataStream(const bool enable, const bool left, Positions pos = {}); void setDataStream(const bool left, const bool enable, Positions pos = {});
///@{ ///@{

View File

@ -1560,7 +1560,7 @@ std::string CmdProxy::DataStream(int action) {
os << cmd << ' '; os << cmd << ' ';
bool left = true; bool left = true;
if (action == defs::HELP_ACTION) { if (action == defs::HELP_ACTION) {
os << "[0, 1] [left|right]\n\t[Eiger] Enables or disables data " os << "[left|right] [0, 1]\n\t[Eiger] Enables or disables data "
"streaming from left or/and right side of detector. 1 (enabled) " "streaming from left or/and right side of detector. 1 (enabled) "
"by default." "by default."
<< '\n'; << '\n';
@ -1582,16 +1582,16 @@ std::string CmdProxy::DataStream(int action) {
if (args.size() != 2) { if (args.size() != 2) {
WrongNumberOfParameters(2); WrongNumberOfParameters(2);
} }
if (args[1] == "left") { if (args[0] == "left") {
left = true; left = true;
} else if (args[1] == "right") { } else if (args[0] == "right") {
left = false; left = false;
} else { } else {
throw sls::RuntimeError("Unknown data argument " + args[1]); throw sls::RuntimeError("Unknown data argument " + args[0]);
} }
det->setDataStream(left, StringTo<bool>(args[0]), det->setDataStream(left, StringTo<bool>(args[1]),
std::vector<int>{det_id}); std::vector<int>{det_id});
os << args.front() << '\n'; os << args << '\n';
} else { } else {
throw sls::RuntimeError("Unknown action"); throw sls::RuntimeError("Unknown action");
} }

View File

@ -1373,9 +1373,9 @@ Result<bool> Detector::getDataStream(const bool left, Positions pos) const {
return pimpl->Parallel(&Module::getDataStream, pos, left); return pimpl->Parallel(&Module::getDataStream, pos, left);
} }
void Detector::setDataStream(const bool enable, const bool left, void Detector::setDataStream(const bool left, const bool enable,
Positions pos) { Positions pos) {
pimpl->Parallel(&Module::setDataStream, pos, enable, left); pimpl->Parallel(&Module::setDataStream, pos, left, enable);
} }
// Jungfrau Specific // Jungfrau Specific

View File

@ -1511,9 +1511,9 @@ bool Module::getDataStream(const bool left) const {
return sendToDetector<int>(F_GET_DATASTREAM, static_cast<int>(left)); return sendToDetector<int>(F_GET_DATASTREAM, static_cast<int>(left));
} }
void Module::setDataStream(const bool enable, const bool left) { void Module::setDataStream(const bool left, const bool enable) {
int args[]{static_cast<int>(enable), static_cast<int>(left)}; int args[]{static_cast<int>(left), static_cast<int>(enable)};
sendToDetector(F_GET_DATASTREAM, args, nullptr); sendToDetector(F_SET_DATASTREAM, args, nullptr);
} }
// Jungfrau Specific // Jungfrau Specific

View File

@ -344,7 +344,7 @@ class Module : public virtual slsDetectorDefs {
bool getQuad() const; bool getQuad() const;
void setQuad(const bool enable); void setQuad(const bool enable);
bool getDataStream(const bool left) const; bool getDataStream(const bool left) const;
void setDataStream(const bool enable, const bool left); void setDataStream(const bool left, const bool enable);
/************************************************** /**************************************************
* * * *

View File

@ -661,23 +661,23 @@ TEST_CASE("datastream", "[.cmd]") {
REQUIRE_THROWS(proxy.Call("datastream", {"1"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("datastream", {"1"}, -1, PUT));
{ {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("datastream", {"0", "left"}, -1, PUT, oss); proxy.Call("datastream", {"left", "0"}, -1, PUT, oss);
REQUIRE(oss.str() == "datastream 0 left\n"); REQUIRE(oss.str() == "datastream left 0\n");
} }
{ {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("datastream", {"0", "right"}, -1, PUT, oss); proxy.Call("datastream", {"right", "0"}, -1, PUT, oss);
REQUIRE(oss.str() == "datastream 0 right\n"); REQUIRE(oss.str() == "datastream right 0\n");
} }
{ {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("datastream", {"1", "left"}, -1, PUT, oss); proxy.Call("datastream", {"left", "1"}, -1, PUT, oss);
REQUIRE(oss.str() == "datastream 1 left\n"); REQUIRE(oss.str() == "datastream left 1\n");
} }
{ {
std::ostringstream oss; std::ostringstream oss;
proxy.Call("datastream", {"1", "right"}, -1, PUT, oss); proxy.Call("datastream", {"right", "1"}, -1, PUT, oss);
REQUIRE(oss.str() == "datastream 1 right\n"); REQUIRE(oss.str() == "datastream right 1\n");
} }
for (int i = 0; i != det.size(); ++i) { for (int i = 0; i != det.size(); ++i) {
det.setDataStream(prev_val_left[i], {i}); det.setDataStream(prev_val_left[i], {i});
@ -686,6 +686,6 @@ TEST_CASE("datastream", "[.cmd]") {
} else { } else {
REQUIRE_THROWS(proxy.Call("datastream", {}, -1, GET)); REQUIRE_THROWS(proxy.Call("datastream", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("datastream", {"1"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("datastream", {"1"}, -1, PUT));
REQUIRE_THROWS(proxy.Call("datastream", {"1", "left"}, -1, PUT)); REQUIRE_THROWS(proxy.Call("datastream", {"left", "1"}, -1, PUT));
} }
} }