mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-04 20:00:04 +02:00
changing g_108MHz enum to g2_108MHZ (similarly 144), adding readoutspeedlist command
This commit is contained in:
parent
b1ae47d189
commit
417bfbaf38
@ -1650,7 +1650,10 @@ class Detector(CppDetectorApi):
|
|||||||
[Eiger][Jungfrau|Gotthard2] Readout speed of chip. Enum: speedLevel
|
[Eiger][Jungfrau|Gotthard2] Readout speed of chip. Enum: speedLevel
|
||||||
Note
|
Note
|
||||||
-----
|
-----
|
||||||
[Jungfrau] FULL_SPEED option only available from v2.0 boards and with setting number of interfaces to 2. \n
|
[Jungfrau] FULL_SPEED, HALF_SPEED (Default), QUARTER_SPEED
|
||||||
|
[Eiger] FULL_SPEED (Default), HALF_SPEED, QUARTER_SPEED
|
||||||
|
[Gottthard2] G2_108MHZ (Default), G2_144MHZ
|
||||||
|
[Jungfrau] FULL_SPEED option only available from v2.0 boards and is recommended to set number of interfaces to 2. \n
|
||||||
Also overwrites adcphase to recommended default.
|
Also overwrites adcphase to recommended default.
|
||||||
"""
|
"""
|
||||||
return element_if_equal(self.getReadoutSpeed())
|
return element_if_equal(self.getReadoutSpeed())
|
||||||
|
@ -250,8 +250,8 @@ void init_enums(py::module &m) {
|
|||||||
.value("FULL_SPEED", slsDetectorDefs::speedLevel::FULL_SPEED)
|
.value("FULL_SPEED", slsDetectorDefs::speedLevel::FULL_SPEED)
|
||||||
.value("HALF_SPEED", slsDetectorDefs::speedLevel::HALF_SPEED)
|
.value("HALF_SPEED", slsDetectorDefs::speedLevel::HALF_SPEED)
|
||||||
.value("QUARTER_SPEED", slsDetectorDefs::speedLevel::QUARTER_SPEED)
|
.value("QUARTER_SPEED", slsDetectorDefs::speedLevel::QUARTER_SPEED)
|
||||||
.value("G_108MHZ", slsDetectorDefs::speedLevel::G_108MHZ)
|
.value("G2_108MHZ", slsDetectorDefs::speedLevel::G2_108MHZ)
|
||||||
.value("G_144MHZ", slsDetectorDefs::speedLevel::G_144MHZ)
|
.value("G2_144MHZ", slsDetectorDefs::speedLevel::G2_144MHZ)
|
||||||
.export_values();
|
.export_values();
|
||||||
|
|
||||||
py::enum_<slsDetectorDefs::burstMode>(Defs, "burstMode")
|
py::enum_<slsDetectorDefs::burstMode>(Defs, "burstMode")
|
||||||
|
@ -2086,7 +2086,7 @@ int getVCOFrequency(enum CLKINDEX ind) {
|
|||||||
|
|
||||||
int setReadoutSpeed(int val) {
|
int setReadoutSpeed(int val) {
|
||||||
switch (val) {
|
switch (val) {
|
||||||
case G_108MHZ:
|
case G2_108MHZ:
|
||||||
LOG(logINFOBLUE, ("Setting readout speed to 108 MHz\n"));
|
LOG(logINFOBLUE, ("Setting readout speed to 108 MHz\n"));
|
||||||
if (setClockDivider(READOUT_C0, SPEED_108_CLKDIV_0) == FAIL) {
|
if (setClockDivider(READOUT_C0, SPEED_108_CLKDIV_0) == FAIL) {
|
||||||
return FAIL;
|
return FAIL;
|
||||||
@ -2098,7 +2098,7 @@ int setReadoutSpeed(int val) {
|
|||||||
return FAIL;
|
return FAIL;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case G_144MHZ:
|
case G2_144MHZ:
|
||||||
LOG(logINFOBLUE, ("Setting readout speed to 144 MHz\n"));
|
LOG(logINFOBLUE, ("Setting readout speed to 144 MHz\n"));
|
||||||
if (setClockDivider(READOUT_C0, SPEED_144_CLKDIV_0) == FAIL) {
|
if (setClockDivider(READOUT_C0, SPEED_144_CLKDIV_0) == FAIL) {
|
||||||
return FAIL;
|
return FAIL;
|
||||||
@ -2123,13 +2123,13 @@ int getReadoutSpeed(int* retval) {
|
|||||||
if (clkDivider[READOUT_C0] == SPEED_108_CLKDIV_0 &&
|
if (clkDivider[READOUT_C0] == SPEED_108_CLKDIV_0 &&
|
||||||
clkDivider[READOUT_C1] == SPEED_108_CLKDIV_1 &&
|
clkDivider[READOUT_C1] == SPEED_108_CLKDIV_1 &&
|
||||||
getPhase(READOUT_C1, 1) == SPEED_108_CLKPHASE_DEG_1) {
|
getPhase(READOUT_C1, 1) == SPEED_108_CLKPHASE_DEG_1) {
|
||||||
*retval = G_108MHZ;
|
*retval = G2_108MHZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (clkDivider[READOUT_C0] == SPEED_144_CLKDIV_0 &&
|
else if (clkDivider[READOUT_C0] == SPEED_144_CLKDIV_0 &&
|
||||||
clkDivider[READOUT_C1] == SPEED_144_CLKDIV_1 &&
|
clkDivider[READOUT_C1] == SPEED_144_CLKDIV_1 &&
|
||||||
getPhase(READOUT_C1, 1) == SPEED_144_CLKPHASE_DEG_1) {
|
getPhase(READOUT_C1, 1) == SPEED_144_CLKPHASE_DEG_1) {
|
||||||
*retval = G_144MHZ;
|
*retval = G2_144MHZ;
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
|
@ -59,7 +59,7 @@
|
|||||||
#define DEFAULT_SYSTEM_C2 (5) //(144444448) // sync_clk, 144 MHz
|
#define DEFAULT_SYSTEM_C2 (5) //(144444448) // sync_clk, 144 MHz
|
||||||
#define DEFAULT_SYSTEM_C3 (5) //(144444448) // str_clk, 144 MHz
|
#define DEFAULT_SYSTEM_C3 (5) //(144444448) // str_clk, 144 MHz
|
||||||
|
|
||||||
#define DEFAULT_READOUT_SPEED (G_108MHZ)
|
#define DEFAULT_READOUT_SPEED (G2_108MHZ)
|
||||||
#define SPEED_144_CLKDIV_0 (6)
|
#define SPEED_144_CLKDIV_0 (6)
|
||||||
#define SPEED_144_CLKDIV_1 (6)
|
#define SPEED_144_CLKDIV_1 (6)
|
||||||
#define SPEED_144_CLKPHASE_DEG_1 (122) // 125 not possible
|
#define SPEED_144_CLKPHASE_DEG_1 (122) // 125 not possible
|
||||||
|
@ -9290,8 +9290,8 @@ int set_readout_speed(int file_des) {
|
|||||||
case HALF_SPEED:
|
case HALF_SPEED:
|
||||||
case QUARTER_SPEED:
|
case QUARTER_SPEED:
|
||||||
#elif GOTTHARD2D
|
#elif GOTTHARD2D
|
||||||
case G_108MHZ:
|
case G2_108MHZ:
|
||||||
case G_144MHZ:
|
case G2_144MHZ:
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -306,8 +306,9 @@ class Detector {
|
|||||||
/** [Eiger][Jungfrau][Gotthard2]
|
/** [Eiger][Jungfrau][Gotthard2]
|
||||||
* [Jungfrau] Options: FULL_SPEED, HALF_SPEED (Default), QUARTER_SPEED \n
|
* [Jungfrau] Options: FULL_SPEED, HALF_SPEED (Default), QUARTER_SPEED \n
|
||||||
* [Eiger] Options: FULL_SPEED (Default), HALF_SPEED, QUARTER_SPEED \n
|
* [Eiger] Options: FULL_SPEED (Default), HALF_SPEED, QUARTER_SPEED \n
|
||||||
* [Gotthard2] Options: G_108MHZ (Default), G_144MHZ \n
|
* [Gotthard2] Options: G2_108MHZ (Default), G2_144MHZ \n
|
||||||
* [Jungfrau] FULL_SPEED option only available from v2.0 boards \n Also overwrites adcphase to
|
* [Jungfrau] FULL_SPEED option only available from v2.0 boards and is
|
||||||
|
* recommended to set number of interfaces to 2. \n Also overwrites adcphase to
|
||||||
* recommended default.
|
* recommended default.
|
||||||
*/
|
*/
|
||||||
void setReadoutSpeed(defs::speedLevel value, Positions pos = {});
|
void setReadoutSpeed(defs::speedLevel value, Positions pos = {});
|
||||||
|
@ -613,7 +613,8 @@ std::string CmdProxy::ReadoutSpeed(int action) {
|
|||||||
"quarter_speed]\n\t\t[Eiger][Jungfrau] Readout "
|
"quarter_speed]\n\t\t[Eiger][Jungfrau] Readout "
|
||||||
"speed of chip.\n\t\t[Eiger] Default speed is full_speed."
|
"speed of chip.\n\t\t[Eiger] Default speed is full_speed."
|
||||||
"\n\t\t[Jungfrau] Default speed is half_speed. full_speed "
|
"\n\t\t[Jungfrau] Default speed is half_speed. full_speed "
|
||||||
"option only available from v2.0 boards. Also overwrites "
|
"option only available from v2.0 boards and is recommended to set "
|
||||||
|
"number of interfaces to 2. Also overwrites "
|
||||||
"adcphase to recommended default.\n\t [144|108]\n\t\t[Gotthard2] "
|
"adcphase to recommended default.\n\t [144|108]\n\t\t[Gotthard2] "
|
||||||
"Readout speed of chip in MHz. Default is 108."
|
"Readout speed of chip in MHz. Default is 108."
|
||||||
<< '\n';
|
<< '\n';
|
||||||
|
@ -794,6 +794,7 @@ class CmdProxy {
|
|||||||
{"timing", &CmdProxy::timing},
|
{"timing", &CmdProxy::timing},
|
||||||
{"timinglist", &CmdProxy::timinglist},
|
{"timinglist", &CmdProxy::timinglist},
|
||||||
{"readoutspeed", &CmdProxy::ReadoutSpeed},
|
{"readoutspeed", &CmdProxy::ReadoutSpeed},
|
||||||
|
{"readoutspeedlist", &CmdProxy::readoutspeedlist},
|
||||||
{"adcphase", &CmdProxy::Adcphase},
|
{"adcphase", &CmdProxy::Adcphase},
|
||||||
{"maxadcphaseshift", &CmdProxy::maxadcphaseshift},
|
{"maxadcphaseshift", &CmdProxy::maxadcphaseshift},
|
||||||
{"dbitphase", &CmdProxy::Dbitphase},
|
{"dbitphase", &CmdProxy::Dbitphase},
|
||||||
@ -1329,6 +1330,10 @@ class CmdProxy {
|
|||||||
GET_COMMAND_NOID(timinglist, getTimingModeList,
|
GET_COMMAND_NOID(timinglist, getTimingModeList,
|
||||||
"\n\tGets the list of timing modes for this detector.");
|
"\n\tGets the list of timing modes for this detector.");
|
||||||
|
|
||||||
|
GET_COMMAND_NOID(readoutspeedlist, getReadoutSpeedList,
|
||||||
|
"\n\tList of readout speed levels implemented for this detector.");
|
||||||
|
|
||||||
|
|
||||||
GET_COMMAND(maxadcphaseshift, getMaxADCPhaseShift,
|
GET_COMMAND(maxadcphaseshift, getMaxADCPhaseShift,
|
||||||
"\n\t[Jungfrau][CTB][Moench] Absolute maximum Phase shift of "
|
"\n\t[Jungfrau][CTB][Moench] Absolute maximum Phase shift of "
|
||||||
"ADC clock.");
|
"ADC clock.");
|
||||||
|
@ -429,8 +429,8 @@ std::vector<defs::speedLevel> Detector::getReadoutSpeedList() const {
|
|||||||
defs::HALF_SPEED,
|
defs::HALF_SPEED,
|
||||||
defs::QUARTER_SPEED};
|
defs::QUARTER_SPEED};
|
||||||
case defs::GOTTHARD2:
|
case defs::GOTTHARD2:
|
||||||
return std::vector<defs::speedLevel>{defs::G_108MHZ,
|
return std::vector<defs::speedLevel>{defs::G2_108MHZ,
|
||||||
defs::G_144MHZ};
|
defs::G2_144MHZ};
|
||||||
default:
|
default:
|
||||||
throw RuntimeError("Readout speed not implemented for this detector");
|
throw RuntimeError("Readout speed not implemented for this detector");
|
||||||
}
|
}
|
||||||
|
@ -970,6 +970,13 @@ TEST_CASE("readoutspeed", "[.cmd]") {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_CASE("readoutspeedlist", "[.cmd]") {
|
||||||
|
Detector det;
|
||||||
|
CmdProxy proxy(&det);
|
||||||
|
REQUIRE_NOTHROW(proxy.Call("readoutspeedlist", {}, -1, GET));
|
||||||
|
REQUIRE_THROWS(proxy.Call("readoutspeedlist", {}, -1, PUT));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("adcphase", "[.cmd]") {
|
TEST_CASE("adcphase", "[.cmd]") {
|
||||||
Detector det;
|
Detector det;
|
||||||
CmdProxy proxy(&det);
|
CmdProxy proxy(&det);
|
||||||
|
@ -377,7 +377,7 @@ typedef struct {
|
|||||||
enum readoutMode { ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL };
|
enum readoutMode { ANALOG_ONLY, DIGITAL_ONLY, ANALOG_AND_DIGITAL };
|
||||||
|
|
||||||
/** chip speed */
|
/** chip speed */
|
||||||
enum speedLevel { FULL_SPEED, HALF_SPEED, QUARTER_SPEED, G_108MHZ, G_144MHZ };
|
enum speedLevel { FULL_SPEED, HALF_SPEED, QUARTER_SPEED, G2_108MHZ, G2_144MHZ };
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* burst mode for gotthard2
|
* burst mode for gotthard2
|
||||||
|
@ -247,9 +247,9 @@ std::string ToString(const defs::speedLevel s) {
|
|||||||
return std::string("half_speed");
|
return std::string("half_speed");
|
||||||
case defs::QUARTER_SPEED:
|
case defs::QUARTER_SPEED:
|
||||||
return std::string("quarter_speed");
|
return std::string("quarter_speed");
|
||||||
case defs::G_108MHZ:
|
case defs::G2_108MHZ:
|
||||||
return std::string("108");
|
return std::string("108");
|
||||||
case defs::G_144MHZ:
|
case defs::G2_144MHZ:
|
||||||
return std::string("144");
|
return std::string("144");
|
||||||
default:
|
default:
|
||||||
return std::string("Unknown");
|
return std::string("Unknown");
|
||||||
@ -718,9 +718,9 @@ template <> defs::speedLevel StringTo(const std::string &s) {
|
|||||||
if (s == "2")
|
if (s == "2")
|
||||||
return defs::QUARTER_SPEED;
|
return defs::QUARTER_SPEED;
|
||||||
if (s == "108")
|
if (s == "108")
|
||||||
return defs::G_108MHZ;
|
return defs::G2_108MHZ;
|
||||||
if (s == "144")
|
if (s == "144")
|
||||||
return defs::G_144MHZ;
|
return defs::G2_144MHZ;
|
||||||
throw sls::RuntimeError("Unknown speed " + s);
|
throw sls::RuntimeError("Unknown speed " + s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user