mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-09 03:20:42 +02:00
wip
This commit is contained in:
parent
01dfc08bbe
commit
61c5018a46
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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 = {});
|
||||||
|
|
||||||
///@{
|
///@{
|
||||||
|
|
||||||
|
@ -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");
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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);
|
||||||
|
|
||||||
/**************************************************
|
/**************************************************
|
||||||
* *
|
* *
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user