mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-21 17:18:00 +02:00
M3: polarity, interpolation, pump probe (#421)
* wip, adding m3 functions: polarity, inerpolation, pumpprobe * added interpol, polarity, pump probe, analog pulsing, digital pulsing * tests * binaries in * update release * added python polarity enum * fixed python and minor readability in mythen3.c * binarie sin * added all the m3 funcs also in list.c and enablingall counters for enabling interpolation * binarie sin
This commit is contained in:
@ -996,6 +996,11 @@ class CmdProxy {
|
||||
{"gatedelay2", &CmdProxy::GateDelay},
|
||||
{"gatedelay3", &CmdProxy::GateDelay},
|
||||
{"gaincaps", &CmdProxy::GainCaps},
|
||||
{"polarity", &CmdProxy::polarity},
|
||||
{"interpolation", &CmdProxy::interpolation},
|
||||
{"pumpprobe", &CmdProxy::pumpprobe},
|
||||
{"apulse", &CmdProxy::apulse},
|
||||
{"dpulse", &CmdProxy::dpulse},
|
||||
|
||||
/* CTB/ Moench Specific */
|
||||
{"samples", &CmdProxy::Samples},
|
||||
@ -2034,6 +2039,31 @@ class CmdProxy {
|
||||
"[n_gates]\n\t[Mythen3] Number of external gates in gating "
|
||||
"or trigger_gating mode (external gating).");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(polarity, getPolarity, setPolarity,
|
||||
StringTo<defs::polarity>,
|
||||
"[pos|neg]\n\t[Mythen3] Sets negative or positive "
|
||||
"polarity. Default is positive");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(interpolation, getInterpolation, setInterpolation,
|
||||
StringTo<int>,
|
||||
"[0, 1]\n\t[Mythen3] Enables or disables "
|
||||
"interpolation. Default is disabled. Enabling also "
|
||||
"enables all counters. ");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(pumpprobe, getPumpProbe, setPumpProbe, StringTo<int>,
|
||||
"[0, 1]\n\t[Mythen3] Enables or disables pump probe "
|
||||
"mode. Default is disabled");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(apulse, getAnalogPulsing, setAnalogPulsing,
|
||||
StringTo<int>,
|
||||
"[0, 1]\n\t[Mythen3] Enables or disables analog "
|
||||
"pulsing. Default is disabled");
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(dpulse, getDigitalPulsing, setDigitalPulsing,
|
||||
StringTo<int>,
|
||||
"[0, 1]\n\t[Mythen3] Enables or disables digital "
|
||||
"pulsing. Default is disabled");
|
||||
|
||||
/* CTB/ Moench Specific */
|
||||
|
||||
INTEGER_COMMAND_VEC_ID(
|
||||
|
@ -5,9 +5,9 @@
|
||||
|
||||
#include "CmdParser.h"
|
||||
#include "CmdProxy.h"
|
||||
#include "CtbConfig.h"
|
||||
#include "DetectorImpl.h"
|
||||
#include "Module.h"
|
||||
#include "CtbConfig.h"
|
||||
#include "sls/Pattern.h"
|
||||
#include "sls/container_utils.h"
|
||||
#include "sls/file_utils.h"
|
||||
@ -1875,6 +1875,46 @@ Result<int> Detector::getGainCaps(Positions pos) {
|
||||
return pimpl->Parallel(&Module::getGainCaps, pos);
|
||||
}
|
||||
|
||||
Result<defs::polarity> Detector::getPolarity(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::getPolarity, pos);
|
||||
}
|
||||
|
||||
void Detector::setPolarity(defs::polarity value, Positions pos) {
|
||||
pimpl->Parallel(&Module::setPolarity, pos, value);
|
||||
}
|
||||
|
||||
Result<bool> Detector::getInterpolation(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::getInterpolation, pos);
|
||||
}
|
||||
|
||||
void Detector::setInterpolation(bool value, Positions pos) {
|
||||
pimpl->Parallel(&Module::setInterpolation, pos, value);
|
||||
}
|
||||
|
||||
Result<bool> Detector::getPumpProbe(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::getPumpProbe, pos);
|
||||
}
|
||||
|
||||
void Detector::setPumpProbe(bool value, Positions pos) {
|
||||
pimpl->Parallel(&Module::setPumpProbe, pos, value);
|
||||
}
|
||||
|
||||
Result<bool> Detector::getAnalogPulsing(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::getAnalogPulsing, pos);
|
||||
}
|
||||
|
||||
void Detector::setAnalogPulsing(bool value, Positions pos) {
|
||||
pimpl->Parallel(&Module::setAnalogPulsing, pos, value);
|
||||
}
|
||||
|
||||
Result<bool> Detector::getDigitalPulsing(Positions pos) const {
|
||||
return pimpl->Parallel(&Module::getDigitalPulsing, pos);
|
||||
}
|
||||
|
||||
void Detector::setDigitalPulsing(bool value, Positions pos) {
|
||||
pimpl->Parallel(&Module::setDigitalPulsing, pos, value);
|
||||
}
|
||||
|
||||
// CTB/ Moench Specific
|
||||
|
||||
Result<int> Detector::getNumberOfAnalogSamples(Positions pos) const {
|
||||
|
@ -2256,11 +2256,52 @@ int Module::getChipStatusRegister() const {
|
||||
}
|
||||
|
||||
void Module::setGainCaps(int caps) {
|
||||
sendToDetector<int>(F_SET_GAIN_CAPS, caps);
|
||||
sendToDetector(F_SET_GAIN_CAPS, caps, nullptr);
|
||||
}
|
||||
|
||||
int Module::getGainCaps() { return sendToDetector<int>(F_GET_GAIN_CAPS); }
|
||||
|
||||
defs::polarity Module::getPolarity() const {
|
||||
return sendToDetector<defs::polarity>(F_GET_POLARITY);
|
||||
}
|
||||
|
||||
void Module::setPolarity(const defs::polarity value) {
|
||||
sendToDetector(F_SET_POLARITY, static_cast<int>(value), nullptr);
|
||||
}
|
||||
|
||||
bool Module::getInterpolation() const {
|
||||
return sendToDetector<int>(F_GET_INTERPOLATION);
|
||||
}
|
||||
|
||||
void Module::setInterpolation(const bool enable) {
|
||||
sendToDetector(F_SET_INTERPOLATION, static_cast<int>(enable), nullptr);
|
||||
setCounterMask(getCounterMask());
|
||||
}
|
||||
|
||||
bool Module::getPumpProbe() const {
|
||||
return sendToDetector<int>(F_GET_PUMP_PROBE);
|
||||
}
|
||||
|
||||
void Module::setPumpProbe(const bool enable) {
|
||||
sendToDetector(F_SET_PUMP_PROBE, static_cast<int>(enable), nullptr);
|
||||
}
|
||||
|
||||
bool Module::getAnalogPulsing() const {
|
||||
return sendToDetector<int>(F_GET_ANALOG_PULSING);
|
||||
}
|
||||
|
||||
void Module::setAnalogPulsing(const bool enable) {
|
||||
sendToDetector(F_SET_ANALOG_PULSING, static_cast<int>(enable), nullptr);
|
||||
}
|
||||
|
||||
bool Module::getDigitalPulsing() const {
|
||||
return sendToDetector<int>(F_GET_DIGITAL_PULSING);
|
||||
}
|
||||
|
||||
void Module::setDigitalPulsing(const bool enable) {
|
||||
sendToDetector(F_SET_DIGITAL_PULSING, static_cast<int>(enable), nullptr);
|
||||
}
|
||||
|
||||
// CTB / Moench Specific
|
||||
int Module::getNumberOfAnalogSamples() const {
|
||||
return sendToDetector<int>(F_GET_NUM_ANALOG_SAMPLES);
|
||||
|
@ -466,6 +466,16 @@ class Module : public virtual slsDetectorDefs {
|
||||
int getChipStatusRegister() const;
|
||||
void setGainCaps(int caps);
|
||||
int getGainCaps();
|
||||
defs::polarity getPolarity() const;
|
||||
void setPolarity(const defs::polarity enable);
|
||||
bool getInterpolation() const;
|
||||
void setInterpolation(const bool enable);
|
||||
bool getPumpProbe() const;
|
||||
void setPumpProbe(const bool enable);
|
||||
bool getAnalogPulsing() const;
|
||||
void setAnalogPulsing(const bool enable);
|
||||
bool getDigitalPulsing() const;
|
||||
void setDigitalPulsing(const bool enable);
|
||||
|
||||
/**************************************************
|
||||
* *
|
||||
|
Reference in New Issue
Block a user