This commit is contained in:
maliakal_d 2020-04-21 18:48:04 +02:00
parent 94103a05b1
commit 6de68eacc2
5 changed files with 28 additions and 42 deletions

View File

@ -215,6 +215,7 @@ Result<int64_t> Detector::getNumberOfFrames(Positions pos) const {
void Detector::setNumberOfFrames(int64_t value) { void Detector::setNumberOfFrames(int64_t value) {
pimpl->Parallel(&Module::setNumberOfFrames, {}, value); pimpl->Parallel(&Module::setNumberOfFrames, {}, value);
pimpl->Parallel3(&Receiver::setNumberOfFrames, value); //FIXME
} }
Result<int64_t> Detector::getNumberOfTriggers(Positions pos) const { Result<int64_t> Detector::getNumberOfTriggers(Positions pos) const {
@ -1124,6 +1125,7 @@ Result<int> Detector::getPartialReadout(Positions pos) const {
void Detector::setPartialReadout(const int lines, Positions pos) { void Detector::setPartialReadout(const int lines, Positions pos) {
pimpl->Parallel(&Module::setReadNLines, pos, lines); pimpl->Parallel(&Module::setReadNLines, pos, lines);
pimpl->Parallel3(&Receiver::setReadNLines, lines);
} }
Result<bool> Detector::getInterruptSubframe(Positions pos) const { Result<bool> Detector::getInterruptSubframe(Positions pos) const {
@ -1193,6 +1195,7 @@ void Detector::setQuad(const bool enable) {
"Eiger Quad Half module."); "Eiger Quad Half module.");
} }
pimpl->Parallel(&Module::setQuad, {}, enable); pimpl->Parallel(&Module::setQuad, {}, enable);
pimpl->Parallel3(&Receiver::setQuad, enable); //FIXME
} }
// Jungfrau Specific // Jungfrau Specific

View File

@ -115,15 +115,6 @@ void Module::checkDetectorVersionCompatibility() {
sendToDetectorStop(fnum, arg, nullptr); sendToDetectorStop(fnum, arg, nullptr);
} }
void Module::checkReceiverVersionCompatibility() {
// TODO! Verify that this works as intended when version don't match
int64_t arg = APIRECEIVER;
LOG(logDEBUG1)
<< "Checking version compatibility with receiver with value "
<< std::hex << arg << std::dec;
sendToReceiver(F_RECEIVER_CHECK_VERSION, arg, nullptr);
}
int64_t Module::getFirmwareVersion() { int64_t Module::getFirmwareVersion() {
int64_t retval = -1; int64_t retval = -1;
sendToDetector(F_GET_FIRMWARE_VERSION, nullptr, retval); sendToDetector(F_GET_FIRMWARE_VERSION, nullptr, retval);
@ -145,16 +136,6 @@ int64_t Module::getSerialNumber() {
return retval; return retval;
} }
int64_t Module::getReceiverSoftwareVersion() const {
LOG(logDEBUG1) << "Getting receiver software version";
int64_t retval = -1;
if (shm()->useReceiver) {
sendToReceiver(F_GET_RECEIVER_VERSION, nullptr, retval);
}
return retval;
}
void Module::sendToDetector(int fnum, const void *args, size_t args_size, void Module::sendToDetector(int fnum, const void *args, size_t args_size,
void *retval, size_t retval_size) { void *retval, size_t retval_size) {
auto client = DetectorSocket(shm()->hostname, shm()->controlPort); auto client = DetectorSocket(shm()->hostname, shm()->controlPort);
@ -583,20 +564,11 @@ void Module::setQuad(const bool enable) {
int value = enable ? 1 : 0; int value = enable ? 1 : 0;
LOG(logDEBUG1) << "Setting Quad type to " << value; LOG(logDEBUG1) << "Setting Quad type to " << value;
sendToDetector(F_SET_QUAD, value, nullptr); sendToDetector(F_SET_QUAD, value, nullptr);
LOG(logDEBUG1) << "Setting Quad type to " << value << " in Receiver";
if (shm()->useReceiver) {
sendToReceiver(F_SET_RECEIVER_QUAD, value, nullptr);
}
} }
void Module::setReadNLines(const int value) { void Module::setReadNLines(const int value) {
LOG(logDEBUG1) << "Setting read n lines to " << value; LOG(logDEBUG1) << "Setting read n lines to " << value;
sendToDetector(F_SET_READ_N_LINES, value, nullptr); sendToDetector(F_SET_READ_N_LINES, value, nullptr);
LOG(logDEBUG1) << "Setting read n lines to " << value
<< " in Receiver";
if (shm()->useReceiver) {
sendToReceiver(F_SET_RECEIVER_READ_N_LINES, value, nullptr);
}
} }
int Module::getReadNLines() { int Module::getReadNLines() {
@ -1023,10 +995,6 @@ int64_t Module::getNumberOfFrames() {
void Module::setNumberOfFrames(int64_t value) { void Module::setNumberOfFrames(int64_t value) {
LOG(logDEBUG1) << "Setting number of frames to " << value; LOG(logDEBUG1) << "Setting number of frames to " << value;
sendToDetector(F_SET_NUM_FRAMES, value, nullptr); sendToDetector(F_SET_NUM_FRAMES, value, nullptr);
if (shm()->useReceiver) {
LOG(logDEBUG1) << "Sending number of frames to Receiver: " << value;
sendToReceiver(F_RECEIVER_SET_NUM_FRAMES, value, nullptr);
}
} }
int64_t Module::getNumberOfTriggers() { int64_t Module::getNumberOfTriggers() {

View File

@ -125,10 +125,6 @@ class Module : public virtual slsDetectorDefs {
void setNumberOfReceivers(const int num); void setNumberOfReceivers(const int num);
int getNumberOfReceivers2() const; int getNumberOfReceivers2() const;
void setNumberOfReceivers2(const int num); void setNumberOfReceivers2(const int num);
/**
* Check version compatibility with receiver software
*/
void checkReceiverVersionCompatibility();
/** /**
* Check version compatibility with detector software * Check version compatibility with detector software
@ -141,11 +137,6 @@ class Module : public virtual slsDetectorDefs {
int64_t getSerialNumber(); int64_t getSerialNumber();
/**
* Get Receiver Software version
*/
int64_t getReceiverSoftwareVersion() const;
/** /**
* Free shared memory and delete shared memory structure * Free shared memory and delete shared memory structure
* occupied by the sharedModule structure * occupied by the sharedModule structure

View File

@ -322,6 +322,12 @@ int64_t Receiver::getSoftwareVersion() const {
return sendToReceiver<int64_t>(F_GET_RECEIVER_VERSION); return sendToReceiver<int64_t>(F_GET_RECEIVER_VERSION);
} }
/** Acquisition Parameters */
void Receiver::setNumberOfFrames(int64_t value) {
LOG(logDEBUG1) << "Sending number of frames to Receiver: " << value;
sendToReceiver(F_RECEIVER_SET_NUM_FRAMES, value, nullptr);
}
/** Acquisition */ /** Acquisition */
void Receiver::start() { void Receiver::start() {
@ -362,6 +368,19 @@ void Receiver::restreamStop() {
} }
/** Detector Specific */ /** Detector Specific */
// Eiger
void Receiver::setQuad(const bool enable) {
int value = enable ? 1 : 0;
LOG(logDEBUG1) << "Setting Quad type to " << value << " in Receiver";
sendToReceiver(F_SET_RECEIVER_QUAD, value, nullptr);
}
void Receiver::setReadNLines(const int value) {
LOG(logDEBUG1) << "Setting read n lines to " << value
<< " in Receiver";
sendToReceiver(F_SET_RECEIVER_READ_N_LINES, value, nullptr);
}
// Moench // Moench
void Receiver::setAdditionalJsonHeader(const std::map<std::string, std::string> &jsonHeader) { void Receiver::setAdditionalJsonHeader(const std::map<std::string, std::string> &jsonHeader) {

View File

@ -65,6 +65,7 @@ namespace sls {
* Acquisition Parameters * * Acquisition Parameters *
* * * *
* ************************************************/ * ************************************************/
void setNumberOfFrames(int64_t value);
/************************************************** /**************************************************
@ -101,6 +102,10 @@ namespace sls {
* Detector Specific * * Detector Specific *
* * * *
* ************************************************/ * ************************************************/
// Eiger
void setQuad(const bool enable);
void setReadNLines(const int value);
// Moench // Moench
/** empty vector deletes entire additional json header */ /** empty vector deletes entire additional json header */
void setAdditionalJsonHeader(const std::map<std::string, std::string> &jsonHeader); void setAdditionalJsonHeader(const std::map<std::string, std::string> &jsonHeader);