2. Set row col (#779)

* set row and column
This commit is contained in:
2023-07-18 15:51:22 +02:00
committed by GitHub
parent 7394833710
commit 71489b7106
21 changed files with 354 additions and 10 deletions

View File

@ -992,6 +992,8 @@ class CmdProxy {
{"master", &CmdProxy::master},
{"sync", &CmdProxy::sync},
{"badchannels", &CmdProxy::BadChannels},
{"row", &CmdProxy::row},
{"column", &CmdProxy::column},
/* acquisition parameters */
{"acquire", &CmdProxy::Acquire},
@ -1542,6 +1544,15 @@ class CmdProxy {
"[0, 1]\n\t[Jungfrau][Moench] Enables or disables "
"synchronization between modules.");
INTEGER_COMMAND_VEC_ID(row, getRow, setRow, StringTo<int>,
"[value]\n\tSet Detector row (udp header) to value. "
"\n\tGui uses it to rearrange for complete image");
INTEGER_COMMAND_VEC_ID(
column, getColumn, setColumn, StringTo<int>,
"[value]\n\tSet Detector column (udp header) to value. \n\tGui uses it "
"to rearrange for complete image");
/* acquisition parameters */
INTEGER_COMMAND_SET_NOID_GET_ID(

View File

@ -379,6 +379,22 @@ void Detector::setBadChannels(const std::vector<int> list, Positions pos) {
pimpl->setBadChannels(list, pos);
}
Result<int> Detector::getRow(Positions pos) const {
return pimpl->Parallel(&Module::getRow, pos);
}
void Detector::setRow(const int value, Positions pos) {
pimpl->Parallel(&Module::setRow, pos, value);
}
Result<int> Detector::getColumn(Positions pos) const {
return pimpl->Parallel(&Module::getColumn, pos);
}
void Detector::setColumn(const int value, Positions pos) {
pimpl->Parallel(&Module::setColumn, pos, value);
}
Result<bool> Detector::isVirtualDetectorServer(Positions pos) const {
return pimpl->Parallel(&Module::isVirtualDetectorServer, pos);
}

View File

@ -589,6 +589,24 @@ void Module::setBadChannels(std::vector<int> list) {
}
}
int Module::getRow() const { return sendToDetector<int>(F_GET_ROW); }
void Module::setRow(int value) {
sendToDetector(F_SET_ROW, value, nullptr);
if (shm()->useReceiverFlag) {
sendToReceiver(F_RECEIVER_SET_ROW, value, nullptr);
}
}
int Module::getColumn() const { return sendToDetector<int>(F_GET_COLUMN); }
void Module::setColumn(int value) {
sendToDetector(F_SET_COLUMN, value, nullptr);
if (shm()->useReceiverFlag) {
sendToReceiver(F_RECEIVER_SET_COLUMN, value, nullptr);
}
}
bool Module::isVirtualDetectorServer() const {
return sendToDetector<int>(F_IS_VIRTUAL);
}

View File

@ -134,6 +134,10 @@ class Module : public virtual slsDetectorDefs {
void setSynchronization(const bool value);
std::vector<int> getBadChannels() const;
void setBadChannels(std::vector<int> list);
int getRow() const;
void setRow(const int value);
int getColumn() const;
void setColumn(const int value);
bool isVirtualDetectorServer() const;