mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 03:10:02 +02:00
temlist and tempvalues added
This commit is contained in:
parent
5bfbc83a04
commit
ffd694eda1
@ -338,6 +338,9 @@ class Detector {
|
|||||||
* Only for virtual servers */
|
* Only for virtual servers */
|
||||||
void setImageTestMode(const int value, Positions pos = {});
|
void setImageTestMode(const int value, Positions pos = {});
|
||||||
|
|
||||||
|
/** gets list of temperature indices for this detector */
|
||||||
|
std::vector<defs::dacIndex> getTemperatureList() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* (Degrees)
|
* (Degrees)
|
||||||
* [Gotthard] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA
|
* [Gotthard] Options: TEMPERATURE_ADC, TEMPERATURE_FPGA
|
||||||
|
@ -850,6 +850,36 @@ std::string CmdProxy::ExternalSignal(int action) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** temperature */
|
/** temperature */
|
||||||
|
std::string CmdProxy::TemperatureValues(int action) {
|
||||||
|
std::ostringstream os;
|
||||||
|
os << cmd << ' ';
|
||||||
|
if (action == defs::HELP_ACTION) {
|
||||||
|
os << "\n\tGets the values for every temperature for this detector."
|
||||||
|
<< '\n';
|
||||||
|
} else if (action == defs::GET_ACTION) {
|
||||||
|
if (args.size() != 0) {
|
||||||
|
WrongNumberOfParameters(0);
|
||||||
|
}
|
||||||
|
auto t = det->getTemperatureList();
|
||||||
|
os << '[';
|
||||||
|
if (t.size() > 0) {
|
||||||
|
auto it = t.cbegin();
|
||||||
|
os << ToString(*it) << ' ';
|
||||||
|
os << OutString(det->getTemperature(*it++, {det_id})) << " °C";
|
||||||
|
while (it != t.cend()) {
|
||||||
|
os << ", " << ToString(*it) << ' ';
|
||||||
|
os << OutString(det->getTemperature(*it++, {det_id})) << " °C";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
os << "]\n";
|
||||||
|
} else if (action == defs::PUT_ACTION) {
|
||||||
|
throw sls::RuntimeError("Cannot put");
|
||||||
|
} else {
|
||||||
|
throw sls::RuntimeError("Unknown action");
|
||||||
|
}
|
||||||
|
return os.str();
|
||||||
|
}
|
||||||
|
|
||||||
/* dacs */
|
/* dacs */
|
||||||
std::string CmdProxy::Dac(int action) {
|
std::string CmdProxy::Dac(int action) {
|
||||||
std::ostringstream os;
|
std::ostringstream os;
|
||||||
@ -902,7 +932,7 @@ std::string CmdProxy::DacValues(int action) {
|
|||||||
std::ostringstream os;
|
std::ostringstream os;
|
||||||
os << cmd << ' ';
|
os << cmd << ' ';
|
||||||
if (action == defs::HELP_ACTION) {
|
if (action == defs::HELP_ACTION) {
|
||||||
os << "[(optional unit) mv] \n\tGets the list of commands for every "
|
os << "[(optional unit) mv] \n\tGets the values for every "
|
||||||
"dac for this detector."
|
"dac for this detector."
|
||||||
<< '\n';
|
<< '\n';
|
||||||
} else if (action == defs::GET_ACTION) {
|
} else if (action == defs::GET_ACTION) {
|
||||||
|
@ -684,6 +684,8 @@ class CmdProxy {
|
|||||||
{"extsig", &CmdProxy::ExternalSignal},
|
{"extsig", &CmdProxy::ExternalSignal},
|
||||||
|
|
||||||
/** temperature */
|
/** temperature */
|
||||||
|
{"templist", &CmdProxy::templist},
|
||||||
|
{"tempvalues", &CmdProxy::TemperatureValues},
|
||||||
{"temp_adc", &CmdProxy::temp_adc},
|
{"temp_adc", &CmdProxy::temp_adc},
|
||||||
{"temp_fpga", &CmdProxy::temp_fpga},
|
{"temp_fpga", &CmdProxy::temp_fpga},
|
||||||
{"temp_fpgaext", &CmdProxy::temp_fpgaext},
|
{"temp_fpgaext", &CmdProxy::temp_fpgaext},
|
||||||
@ -693,6 +695,7 @@ class CmdProxy {
|
|||||||
{"temp_sodr", &CmdProxy::temp_sodr},
|
{"temp_sodr", &CmdProxy::temp_sodr},
|
||||||
{"temp_fpgafl", &CmdProxy::temp_fpgafl},
|
{"temp_fpgafl", &CmdProxy::temp_fpgafl},
|
||||||
{"temp_fpgafr", &CmdProxy::temp_fpgafr},
|
{"temp_fpgafr", &CmdProxy::temp_fpgafr},
|
||||||
|
{"temp_slowadc", &CmdProxy::temp_slowadc},
|
||||||
|
|
||||||
/* dacs */
|
/* dacs */
|
||||||
{"vthreshold", &CmdProxy::vthreshold},
|
{"vthreshold", &CmdProxy::vthreshold},
|
||||||
@ -1031,6 +1034,7 @@ class CmdProxy {
|
|||||||
std::string ClockDivider(int action);
|
std::string ClockDivider(int action);
|
||||||
std::string ExternalSignal(int action);
|
std::string ExternalSignal(int action);
|
||||||
/** temperature */
|
/** temperature */
|
||||||
|
std::string TemperatureValues(int action);
|
||||||
/* dacs */
|
/* dacs */
|
||||||
std::string Dac(int action);
|
std::string Dac(int action);
|
||||||
std::string DacValues(int action);
|
std::string DacValues(int action);
|
||||||
@ -1243,6 +1247,9 @@ class CmdProxy {
|
|||||||
"intensity incremented by 1. If 1, all pixels almost saturated.");
|
"intensity incremented by 1. If 1, all pixels almost saturated.");
|
||||||
|
|
||||||
/** temperature */
|
/** temperature */
|
||||||
|
GET_COMMAND_NOID(
|
||||||
|
templist, getTemperatureList,
|
||||||
|
"\n\tList of temperature commands implemented for this detector.");
|
||||||
|
|
||||||
GET_IND_COMMAND(temp_adc, getTemperature, slsDetectorDefs::TEMPERATURE_ADC,
|
GET_IND_COMMAND(temp_adc, getTemperature, slsDetectorDefs::TEMPERATURE_ADC,
|
||||||
" °C", "[n_value]\n\t[Jungfrau][Gotthard] ADC Temperature");
|
" °C", "[n_value]\n\t[Jungfrau][Gotthard] ADC Temperature");
|
||||||
@ -1279,6 +1286,10 @@ class CmdProxy {
|
|||||||
temp_fpgafr, getTemperature, slsDetectorDefs::TEMPERATURE_FPGA3, " °C",
|
temp_fpgafr, getTemperature, slsDetectorDefs::TEMPERATURE_FPGA3, " °C",
|
||||||
"[n_value]\n\t[Eiger]Temperature of the left front end board fpga");
|
"[n_value]\n\t[Eiger]Temperature of the left front end board fpga");
|
||||||
|
|
||||||
|
GET_IND_COMMAND(temp_slowadc, getTemperature,
|
||||||
|
slsDetectorDefs::SLOW_ADC_TEMP, " °C",
|
||||||
|
"[n_value]\n\t[Ctb]Temperature of the slow adc");
|
||||||
|
|
||||||
/* dacs */
|
/* dacs */
|
||||||
|
|
||||||
DAC_COMMAND(vthreshold, getDAC, setDAC, defs::VTHRESHOLD,
|
DAC_COMMAND(vthreshold, getDAC, setDAC, defs::VTHRESHOLD,
|
||||||
|
@ -445,6 +445,26 @@ void Detector::setImageTestMode(int value, Positions pos) {
|
|||||||
pimpl->Parallel(&Module::setImageTestMode, pos, value);
|
pimpl->Parallel(&Module::setImageTestMode, pos, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::vector<defs::dacIndex> Detector::getTemperatureList() const {
|
||||||
|
std::vector<defs::dacIndex> retval;
|
||||||
|
switch (getDetectorType().squash()) {
|
||||||
|
case defs::CHIPTESTBOARD:
|
||||||
|
return std::vector<defs::dacIndex>{defs::SLOW_ADC_TEMP};
|
||||||
|
case defs::JUNGFRAU:
|
||||||
|
case defs::GOTTHARD:
|
||||||
|
return std::vector<defs::dacIndex>{defs::TEMPERATURE_ADC,
|
||||||
|
defs::TEMPERATURE_FPGA};
|
||||||
|
case defs::EIGER:
|
||||||
|
return std::vector<defs::dacIndex>{
|
||||||
|
defs::TEMPERATURE_FPGA, defs::TEMPERATURE_FPGAEXT,
|
||||||
|
defs::TEMPERATURE_10GE, defs::TEMPERATURE_DCDC,
|
||||||
|
defs::TEMPERATURE_SODL, defs::TEMPERATURE_SODR,
|
||||||
|
defs::TEMPERATURE_FPGA2, defs::TEMPERATURE_FPGA3};
|
||||||
|
default:
|
||||||
|
return std::vector<defs::dacIndex>{};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Result<int> Detector::getTemperature(defs::dacIndex index,
|
Result<int> Detector::getTemperature(defs::dacIndex index,
|
||||||
Positions pos) const {
|
Positions pos) const {
|
||||||
switch (index) {
|
switch (index) {
|
||||||
|
@ -1047,6 +1047,20 @@ TEST_CASE("extsig", "[.cmd][.new]") {
|
|||||||
|
|
||||||
/** temperature */
|
/** temperature */
|
||||||
|
|
||||||
|
TEST_CASE("templist", "[.cmd][.new]") {
|
||||||
|
Detector det;
|
||||||
|
CmdProxy proxy(&det);
|
||||||
|
REQUIRE_NOTHROW(proxy.Call("templist", {}, -1, GET));
|
||||||
|
REQUIRE_THROWS(proxy.Call("templist", {}, -1, PUT));
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_CASE("tempvalues", "[.cmd][.new]") {
|
||||||
|
Detector det;
|
||||||
|
CmdProxy proxy(&det);
|
||||||
|
REQUIRE_NOTHROW(proxy.Call("tempvalues", {}, -1, GET));
|
||||||
|
REQUIRE_THROWS(proxy.Call("tempvalues", {}, -1, PUT));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_CASE("temp_adc", "[.cmd][.new]") {
|
TEST_CASE("temp_adc", "[.cmd][.new]") {
|
||||||
Detector det;
|
Detector det;
|
||||||
CmdProxy proxy(&det);
|
CmdProxy proxy(&det);
|
||||||
|
@ -515,6 +515,26 @@ std::string ToString(const defs::dacIndex s) {
|
|||||||
return std::string("highvoltage");
|
return std::string("highvoltage");
|
||||||
case defs::IO_DELAY:
|
case defs::IO_DELAY:
|
||||||
return std::string("iodelay");
|
return std::string("iodelay");
|
||||||
|
case defs::TEMPERATURE_ADC:
|
||||||
|
return std::string("temp_adc");
|
||||||
|
case defs::TEMPERATURE_FPGA:
|
||||||
|
return std::string("temp_fpga");
|
||||||
|
case defs::TEMPERATURE_FPGAEXT:
|
||||||
|
return std::string("temp_fpgaext");
|
||||||
|
case defs::TEMPERATURE_10GE:
|
||||||
|
return std::string("temp_10ge");
|
||||||
|
case defs::TEMPERATURE_DCDC:
|
||||||
|
return std::string("temp_dcdc");
|
||||||
|
case defs::TEMPERATURE_SODL:
|
||||||
|
return std::string("temp_sodl");
|
||||||
|
case defs::TEMPERATURE_SODR:
|
||||||
|
return std::string("temp_sodr");
|
||||||
|
case defs::TEMPERATURE_FPGA2:
|
||||||
|
return std::string("temp_fpgafl");
|
||||||
|
case defs::TEMPERATURE_FPGA3:
|
||||||
|
return std::string("temp_fpgafr");
|
||||||
|
case defs::SLOW_ADC_TEMP:
|
||||||
|
return std::string("temp_slowadc");
|
||||||
default:
|
default:
|
||||||
return std::string("Unknown");
|
return std::string("Unknown");
|
||||||
}
|
}
|
||||||
@ -874,7 +894,26 @@ template <> defs::dacIndex StringTo(const std::string &s) {
|
|||||||
return defs::HIGH_VOLTAGE;
|
return defs::HIGH_VOLTAGE;
|
||||||
if (s == "iodelay")
|
if (s == "iodelay")
|
||||||
return defs::IO_DELAY;
|
return defs::IO_DELAY;
|
||||||
|
if (s == "temp_adc")
|
||||||
|
return defs::TEMPERATURE_ADC;
|
||||||
|
if (s == "temp_fpga")
|
||||||
|
return defs::TEMPERATURE_FPGA;
|
||||||
|
if (s == "temp_fpgaext")
|
||||||
|
return defs::TEMPERATURE_FPGAEXT;
|
||||||
|
if (s == "temp_10ge")
|
||||||
|
return defs::TEMPERATURE_10GE;
|
||||||
|
if (s == "temp_dcdc")
|
||||||
|
return defs::TEMPERATURE_DCDC;
|
||||||
|
if (s == "temp_sodl")
|
||||||
|
return defs::TEMPERATURE_SODL;
|
||||||
|
if (s == "temp_sodr")
|
||||||
|
return defs::TEMPERATURE_SODR;
|
||||||
|
if (s == "temp_fpgafl")
|
||||||
|
return defs::TEMPERATURE_FPGA2;
|
||||||
|
if (s == "temp_fpgafr")
|
||||||
|
return defs::TEMPERATURE_FPGA3;
|
||||||
|
if (s == "temp_slowadc")
|
||||||
|
return defs::SLOW_ADC_TEMP;
|
||||||
throw sls::RuntimeError("Unknown dac Index " + s);
|
throw sls::RuntimeError("Unknown dac Index " + s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user