From be5fee8126756271cefcd9b5773f2d0fd7588f64 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Mon, 12 Apr 2021 16:44:47 +0200 Subject: [PATCH] M3: fixed gain bits with negative polarity --- python/src/detector.cpp | 3 ++ .../bin/mythen3DetectorServer_developer | Bin 240504 -> 244716 bytes .../mythen3DetectorServer/mythen3.c | 38 ++++++++++++++++++ .../mythen3DetectorServer/mythen3.h | 10 +++-- .../slsDetectorFunctionList.c | 14 +++++-- .../include/slsDetectorFunctionList.h | 1 + .../include/slsDetectorServer_funcs.h | 3 +- .../src/slsDetectorServer_funcs.c | 23 +++++++++++ slsDetectorSoftware/include/sls/Detector.h | 2 + slsDetectorSoftware/src/CmdProxy.cpp | 2 +- slsDetectorSoftware/src/Detector.cpp | 4 ++ slsDetectorSoftware/src/Module.cpp | 4 ++ slsDetectorSoftware/src/Module.h | 1 + .../include/sls/sls_detector_funcs.h | 1 + 14 files changed, 97 insertions(+), 9 deletions(-) diff --git a/python/src/detector.cpp b/python/src/detector.cpp index de5f0fcae..5fce855e6 100644 --- a/python/src/detector.cpp +++ b/python/src/detector.cpp @@ -1143,6 +1143,9 @@ void init_det(py::module &m) { .def("setGainCaps", (void (Detector::*)(int, sls::Positions)) & Detector::setGainCaps, py::arg(), py::arg() = Positions{}) + .def("getGainCaps", + (Result(Detector::*)(sls::Positions)) & Detector::getGainCaps, + py::arg() = Positions{}) .def("getNumberOfAnalogSamples", (Result(Detector::*)(sls::Positions) const) & Detector::getNumberOfAnalogSamples, diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 107403778b87a791161647d02d356848c71bede8..85cab48bdb961ba8a0fe2f700efc5698824d4256 100755 GIT binary patch delta 67885 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 diff --git a/slsDetectorServers/mythen3DetectorServer/mythen3.c b/slsDetectorServers/mythen3DetectorServer/mythen3.c index b34d0ed82..7ea679da1 100644 --- a/slsDetectorServers/mythen3DetectorServer/mythen3.c +++ b/slsDetectorServers/mythen3DetectorServer/mythen3.c @@ -35,6 +35,44 @@ int getChipStatusRegister(){ return chipStatusRegister; } +int gainCapsToCsr(int caps){ + //Translates bit representation + int csr = 0; + if (!(caps & M3_C10pre)) + csr |= 1 << _CSR_C10pre; + if (caps & M3_C15sh) + csr |= 1 << CSR_C15sh; + if (caps & M3_C30sh) + csr |= 1 << CSR_C30sh; + if (caps & M3_C50sh) + csr |= 1 << CSR_C50sh; + if (caps & M3_C225ACsh) + csr |= 1 << CSR_C225ACsh; + if (!(caps & M3_C15pre)) + csr |= 1 << _CSR_C15pre; + + return csr; +} + +int csrToGainCaps(int csr){ + //Translates bit representation + int caps = 0; + if (!(csr & (1 << _CSR_C10pre))) + caps |= M3_C10pre; + if (csr & (1 << CSR_C15sh)) + caps |= M3_C15sh; + if (csr & (1 << CSR_C30sh)) + caps |= M3_C30sh; + if (csr & (1 << CSR_C50sh)) + caps |= M3_C50sh; + if (csr & (1 << CSR_C225ACsh)) + caps |= M3_C225ACsh; + if (!(csr & (1 << _CSR_C15pre))) + caps |= M3_C15pre; + + return caps; +} + patternParameters *setChipStatusRegisterPattern(int csr) { int iaddr=0; int nbits=18; diff --git a/slsDetectorServers/mythen3DetectorServer/mythen3.h b/slsDetectorServers/mythen3DetectorServer/mythen3.h index a0289441b..c27e7189e 100644 --- a/slsDetectorServers/mythen3DetectorServer/mythen3.h +++ b/slsDetectorServers/mythen3DetectorServer/mythen3.h @@ -37,23 +37,25 @@ #define CSR_invpol 4 #define CSR_dpulse 5 #define CSR_interp 6 -#define CSR_C10pre 7 //#default +#define _CSR_C10pre 7 //#default, negative polarity #define CSR_pumprobe 8 #define CSR_apulse 9 #define CSR_C15sh 10 #define CSR_C30sh 11 //#default #define CSR_C50sh 12 #define CSR_C225ACsh 13 // Connects 225fF SHAPER AC cap (1: 225 to shaper, 225 to GND. 0: 450 to shaper) -#define CSR_C15pre 14 +#define _CSR_C15pre 14 // negative polarity -#define CSR_default (1<= RECEIVER_ENUM_START) { @@ -8423,3 +8424,25 @@ int set_gain_caps(int file_des){ #endif return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); } + +int get_gain_caps(int file_des){ + ret = OK; + memset(mess, 0, sizeof(mess)); + // int arg = 0; + + // if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0) + // return printSocketReadError(); + LOG(logINFO, ("Getting gain caps\n")); + + int retval = -1; + +#ifndef MYTHEN3D + functionNotImplemented(); +#else + if (Server_VerifyLock() == OK) { + retval = getGainCaps(); + LOG(logDEBUG1, ("Gain caps: %u\n", retval)); + } +#endif + return Server_SendResult(file_des, INT32, &retval, sizeof(retval)); +} diff --git a/slsDetectorSoftware/include/sls/Detector.h b/slsDetectorSoftware/include/sls/Detector.h index 8f2ad55f9..db7b3e8d4 100644 --- a/slsDetectorSoftware/include/sls/Detector.h +++ b/slsDetectorSoftware/include/sls/Detector.h @@ -1314,6 +1314,8 @@ class Detector { void setGainCaps(int caps, Positions pos = {}); + Result getGainCaps(Positions pos = {}); + ///@{ /** @name CTB / Moench Specific */ diff --git a/slsDetectorSoftware/src/CmdProxy.cpp b/slsDetectorSoftware/src/CmdProxy.cpp index 16c451705..183c94490 100644 --- a/slsDetectorSoftware/src/CmdProxy.cpp +++ b/slsDetectorSoftware/src/CmdProxy.cpp @@ -1992,7 +1992,7 @@ std::string CmdProxy::GainCaps(int action){ if (!args.empty()) WrongNumberOfParameters(0); - auto tmp = det->getChipStatusRegister(); + auto tmp = det->getGainCaps(); sls::Result csr; for (auto val : tmp){ if (val) diff --git a/slsDetectorSoftware/src/Detector.cpp b/slsDetectorSoftware/src/Detector.cpp index ab2d44f84..89e506ac8 100644 --- a/slsDetectorSoftware/src/Detector.cpp +++ b/slsDetectorSoftware/src/Detector.cpp @@ -1623,6 +1623,10 @@ void Detector::setGainCaps(int caps, Positions pos){ return pimpl->Parallel(&Module::setGainCaps, pos, caps); } +Result Detector::getGainCaps(Positions pos){ + return pimpl->Parallel(&Module::getGainCaps, pos); +} + // CTB/ Moench Specific diff --git a/slsDetectorSoftware/src/Module.cpp b/slsDetectorSoftware/src/Module.cpp index 8582e15e5..7ce014571 100644 --- a/slsDetectorSoftware/src/Module.cpp +++ b/slsDetectorSoftware/src/Module.cpp @@ -2006,6 +2006,10 @@ void Module::setGainCaps(int caps){ sendToDetector(F_SET_GAIN_CAPS, caps); } +int Module::getGainCaps(){ + return sendToDetector(F_GET_GAIN_CAPS); +} + // CTB / Moench Specific int Module::getNumberOfAnalogSamples() const { return sendToDetector(F_GET_NUM_ANALOG_SAMPLES); diff --git a/slsDetectorSoftware/src/Module.h b/slsDetectorSoftware/src/Module.h index a61951d66..445bccc40 100644 --- a/slsDetectorSoftware/src/Module.h +++ b/slsDetectorSoftware/src/Module.h @@ -428,6 +428,7 @@ class Module : public virtual slsDetectorDefs { bool isMaster() const; int getChipStatusRegister() const; void setGainCaps(int caps); + int getGainCaps(); /************************************************** * * diff --git a/slsSupportLib/include/sls/sls_detector_funcs.h b/slsSupportLib/include/sls/sls_detector_funcs.h index 89acac836..bfc3eecdb 100755 --- a/slsSupportLib/include/sls/sls_detector_funcs.h +++ b/slsSupportLib/include/sls/sls_detector_funcs.h @@ -223,6 +223,7 @@ enum detFuncs { F_GET_MASTER, F_GET_CSR, F_SET_GAIN_CAPS, + F_GET_GAIN_CAPS, NUM_DET_FUNCTIONS, RECEIVER_ENUM_START = 256, /**< detector function should not exceed this