This commit is contained in:
maliakal_d 2020-08-26 17:45:12 +02:00
parent 9505c51404
commit 27c1916d63
3 changed files with 37 additions and 12 deletions

View File

@ -777,6 +777,14 @@ class Detector(CppDetectorApi):
@property
def reg(self):
"""
Reads/writes to a 32 bit register.
Note
-----
Advanced user Function! \n
[Eiger] Address is +0x100 for only left, +0x200 for only right.
"""
return self._register
@property
@ -834,14 +842,18 @@ class Detector(CppDetectorApi):
-----
To set default rate correction, use setDefaultRateCorrection
Known Issue
------------
:getter: Always give 0 due to the microseconds precision.
:setter: Use scientific notation to set custom rate correction, since timedelta resolution is 1 microseconds. \n
Or use setDefaultRateCorrection to set the default one from trimbit file
Examples
-----------
>>> d.ratecorr = 1.05
>>> d.period = datetime.timedelta(minutes = 3, seconds = 1.23)
>>> d.period
181.23
>>> d.getPeriod()
[datetime.timedelta(seconds=181, microseconds=230000)]
>>> d.ratecorr = 10e-9
>>> d.setDefaultRateCorrection()
>>> d.ratecorr = 0.0
"""
return reduce_time(self.getRateCorrection())
@ -1181,6 +1193,7 @@ class Detector(CppDetectorApi):
@property
def runclk(self):
"""[Ctb][Moench] Run clock in MHz."""
return element_if_equal(self.getRUNClock())
@runclk.setter
@ -1189,6 +1202,15 @@ class Detector(CppDetectorApi):
@property
def romode(self):
"""
[CTB] Readout mode. Default is analog. Options: ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL
Examples
--------
>>> d.romode = slsdet.readoutMode.ANALOG_ONLY
>>> d.romode
readoutMode.ANALOG_ONLY
"""
return element_if_equal(self.getReadoutMode())
@romode.setter

View File

@ -1206,7 +1206,7 @@ class Detector {
/** [CTB] */
Result<defs::readoutMode> getReadoutMode(Positions pos = {}) const;
/** [CTB] Options: ANALOG_ONLY = 0, DIGITAL_ONLY = 1, ANALOG_AND_DIGITAL */
/** [CTB] Options: ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL */
void setReadoutMode(defs::readoutMode value, Positions pos = {});
/** [CTB] */
@ -1444,10 +1444,12 @@ class Detector {
const std::string &hostname,
const std::string &fname, Positions pos = {});
/** Advanced user Function! */
/** Advanced user Function! \n
* [Eiger] Address is +0x100 for only left, +0x200 for only right. */
Result<uint32_t> readRegister(uint32_t addr, Positions pos = {}) const;
/** Advanced user Function! */
/** Advanced user Function! \n
* [Eiger] Address is +0x100 for only left, +0x200 for only right. */
void writeRegister(uint32_t addr, uint32_t val, Positions pos = {});
/** Advanced user Function! */

View File

@ -1312,8 +1312,8 @@ std::string CmdProxy::RateCorrection(int action) {
os << cmd << ' ';
if (action == defs::HELP_ACTION) {
os << "[n_rate (in ns)]\n\t[Eiger] Dead time correction constant in "
"ns. -1 will set to default tau of settings. 0 will unset rate "
"correction."
"ns. -1 will set to default tau of settings from trimbit file. 0 "
"will unset rate correction."
<< '\n';
} else if (action == defs::GET_ACTION) {
if (!args.empty()) {
@ -2509,7 +2509,8 @@ std::string CmdProxy::Register(int action) {
os << cmd << ' ';
if (action == defs::HELP_ACTION) {
os << "[address] [32 bit value]\n\tReads/writes to a 32 bit register "
"in hex.\n\t[Eiger] +0x100 for only left, +0x200 for only right"
"in hex. Advanced Function!\n\t[Eiger] +0x100 for only left, "
"+0x200 for only right."
<< '\n';
} else if (action == defs::GET_ACTION) {
if (args.size() != 1) {