This commit is contained in:
Erik Frojdh 2019-08-09 09:35:02 +02:00
parent 0bd6563e45
commit 5292075a0a
3 changed files with 72 additions and 9 deletions

View File

@ -814,6 +814,33 @@ class Detector {
void setActive(bool active, Positions pos = {}); void setActive(bool active, Positions pos = {});
Result<bool> getActive(Positions pos = {}) const; Result<bool> getActive(Positions pos = {}) const;
/** [Gotthard][Jungfrau][CTB] not possible to read back*/
void writeAdcRegister(uint32_t addr, uint32_t value, Positions pos = {});
/** [CTB] How much digital data in bytes is skipped */
Result<int> getReceiverDbitOffset(Positions pos = {}) const;
/** [CTB] Set how many bytes of digital data to skip */
void setReceiverDbitOffset(int value, Positions pos = {});
/** [CTB] Which of the bits 0-63 to save*/
Result<std::vector<int>> getReceiverDbitList(Positions pos = {}) const;
/** [CTB] Which of the bits 0-63 to save*/
void setReceiverDbitList(std::vector<int> list, Positions pos = {});
/** [CTB] */
Result<int> getExternalSampling(Positions pos = {}) const;
/** [CTB] */
void setExternalSampling(bool value, Positions pos = {});
/** [CTB] */
Result<int> getExternalSamplingSource(Positions pos = {}) const;
/** [CTB] Value between 0-63 */
void setExternalSamplingSource(int value, Positions pos = {});
}; };
} // namespace sls } // namespace sls

View File

@ -1494,42 +1494,42 @@ class multiSlsDetector : public virtual slsDetectorDefs {
* @param value external sampling source (Option: 0-63) * @param value external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
*/ */
void setExternalSampling(bool value, int detPos = -1); void setExternalSampling(bool value, int detPos = -1); //
/** /**
* Get external sampling source (CTB only) * Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling enable * @returns external sampling enable
*/ */
int getExternalSampling(int detPos = -1); int getExternalSampling(int detPos = -1); //
/** /**
* Set external sampling enable (CTB only) * Set external sampling enable (CTB only)
* @param list external sampling source (Option: 0-63) * @param list external sampling source (Option: 0-63)
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
*/ */
void setReceiverDbitList(std::vector<int> list, int detPos = -1); void setReceiverDbitList(std::vector<int> list, int detPos = -1); //
/** /**
* Get external sampling source (CTB only) * Get external sampling source (CTB only)
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
* @returns external sampling enable * @returns external sampling enable
*/ */
std::vector<int> getReceiverDbitList(int detPos = -1); std::vector<int> getReceiverDbitList(int detPos = -1); //
/** /**
* Set digital data offset in bytes (CTB only) * Set digital data offset in bytes (CTB only)
* @param value digital data offset in bytes * @param value digital data offset in bytes
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
*/ */
void setReceiverDbitOffset(int value, int detPos = -1); void setReceiverDbitOffset(int value, int detPos = -1); //
/** /**
* Get digital data offset in bytes (CTB only) * Get digital data offset in bytes (CTB only)
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
* @returns digital data offset in bytes * @returns digital data offset in bytes
*/ */
int getReceiverDbitOffset(int detPos = -1); int getReceiverDbitOffset(int detPos = -1); //
/** /**
* Write to ADC register (Gotthard, Jungfrau, ChipTestBoard). For expert * Write to ADC register (Gotthard, Jungfrau, ChipTestBoard). For expert
@ -1538,7 +1538,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
* @param val value * @param val value
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
*/ */
void writeAdcRegister(uint32_t addr, uint32_t val, int detPos = -1); void writeAdcRegister(uint32_t addr, uint32_t val, int detPos = -1); //
/** /**
* Activates/Deactivates the detector (Eiger only) * Activates/Deactivates the detector (Eiger only)
@ -1546,7 +1546,7 @@ class multiSlsDetector : public virtual slsDetectorDefs {
* @param detPos -1 for all detectors in list or specific detector position * @param detPos -1 for all detectors in list or specific detector position
* @returns 0 (inactive) or 1 (active)for activate mode * @returns 0 (inactive) or 1 (active)for activate mode
*/ */
int activate(int const enable = -1, int detPos = -1); int activate(int const enable = -1, int detPos = -1); //
/** /**
* Set deactivated Receiver padding mode (Eiger only) * Set deactivated Receiver padding mode (Eiger only)

View File

@ -688,7 +688,43 @@ void Detector::setActive(bool active, Positions pos){
} }
Result<bool> Detector::getActive(Positions pos) const{ Result<bool> Detector::getActive(Positions pos) const{
pimpl->Parallel(&slsDetector::activate, pos, -1); return pimpl->Parallel(&slsDetector::activate, pos, -1);
}
void Detector::writeAdcRegister(uint32_t addr, uint32_t value, Positions pos){
pimpl->Parallel(&slsDetector::writeAdcRegister, pos, addr, value);
}
Result<int> Detector::getReceiverDbitOffset(Positions pos) const{
return pimpl->Parallel(&slsDetector::getReceiverDbitOffset, pos);
}
void Detector::setReceiverDbitOffset(int value, Positions pos){
pimpl->Parallel(&slsDetector::setReceiverDbitOffset, pos, value);
}
Result<std::vector<int>> Detector::getReceiverDbitList(Positions pos) const{
return pimpl->Parallel(&slsDetector::getReceiverDbitList, pos);
}
void Detector::setReceiverDbitList(std::vector<int> list, Positions pos){
pimpl->Parallel(&slsDetector::setReceiverDbitList, pos, list);
}
Result<int> Detector::getExternalSampling(Positions pos) const{
return pimpl->Parallel(&slsDetector::getExternalSampling, pos);
}
void Detector::setExternalSampling(bool value, Positions pos){
pimpl->Parallel(&slsDetector::setExternalSampling, pos, value);
}
Result<int> Detector::getExternalSamplingSource(Positions pos) const{
return pimpl->Parallel(&slsDetector::getExternalSamplingSource, pos);
}
void Detector::setExternalSamplingSource(int value, Positions pos){
pimpl->Parallel(&slsDetector::setExternalSamplingSource, pos, value);
} }
} // namespace sls } // namespace sls