From 5292075a0acfbf0f4aeab1974b4bd17a5aa41fad Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Fri, 9 Aug 2019 09:35:02 +0200 Subject: [PATCH] WIP --- slsDetectorSoftware/include/Detector.h | 27 +++++++++++++ .../include/multiSlsDetector.h | 16 ++++---- slsDetectorSoftware/src/Detector.cpp | 38 ++++++++++++++++++- 3 files changed, 72 insertions(+), 9 deletions(-) diff --git a/slsDetectorSoftware/include/Detector.h b/slsDetectorSoftware/include/Detector.h index 732e3ee7a..d5e8919eb 100644 --- a/slsDetectorSoftware/include/Detector.h +++ b/slsDetectorSoftware/include/Detector.h @@ -814,6 +814,33 @@ class Detector { void setActive(bool active, Positions pos = {}); Result 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 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> getReceiverDbitList(Positions pos = {}) const; + + /** [CTB] Which of the bits 0-63 to save*/ + void setReceiverDbitList(std::vector list, Positions pos = {}); + + /** [CTB] */ + Result getExternalSampling(Positions pos = {}) const; + + /** [CTB] */ + void setExternalSampling(bool value, Positions pos = {}); + + /** [CTB] */ + Result getExternalSamplingSource(Positions pos = {}) const; + + /** [CTB] Value between 0-63 */ + void setExternalSamplingSource(int value, Positions pos = {}); }; } // namespace sls \ No newline at end of file diff --git a/slsDetectorSoftware/include/multiSlsDetector.h b/slsDetectorSoftware/include/multiSlsDetector.h index 9826b9477..33cd3778b 100755 --- a/slsDetectorSoftware/include/multiSlsDetector.h +++ b/slsDetectorSoftware/include/multiSlsDetector.h @@ -1494,42 +1494,42 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param value external sampling source (Option: 0-63) * @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) * @param detPos -1 for all detectors in list or specific detector position * @returns external sampling enable */ - int getExternalSampling(int detPos = -1); + int getExternalSampling(int detPos = -1); // /** * Set external sampling enable (CTB only) * @param list external sampling source (Option: 0-63) * @param detPos -1 for all detectors in list or specific detector position */ - void setReceiverDbitList(std::vector list, int detPos = -1); + void setReceiverDbitList(std::vector list, int detPos = -1); // /** * Get external sampling source (CTB only) * @param detPos -1 for all detectors in list or specific detector position * @returns external sampling enable */ - std::vector getReceiverDbitList(int detPos = -1); + std::vector getReceiverDbitList(int detPos = -1); // /** * Set digital data offset in bytes (CTB only) * @param value digital data offset in bytes * @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) * @param detPos -1 for all detectors in list or specific detector position * @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 @@ -1538,7 +1538,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param val value * @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) @@ -1546,7 +1546,7 @@ class multiSlsDetector : public virtual slsDetectorDefs { * @param detPos -1 for all detectors in list or specific detector position * @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) diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index c1736160e..1598c9c4c 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -688,7 +688,43 @@ void Detector::setActive(bool active, Positions pos){ } Result 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 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> Detector::getReceiverDbitList(Positions pos) const{ + return pimpl->Parallel(&slsDetector::getReceiverDbitList, pos); +} + +void Detector::setReceiverDbitList(std::vector list, Positions pos){ + pimpl->Parallel(&slsDetector::setReceiverDbitList, pos, list); +} + +Result 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 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 \ No newline at end of file