Eiger: add hardware version (#688)

* eiger: hardwareversion, fix firmware version unable to read version scenarios, check to see if febl, febr and beb have same fw version

* feb versions can be picked up only after feb initialization
This commit is contained in:
Dhanya Thattil
2023-03-16 11:59:06 +01:00
committed by GitHub
parent bc46d0f6ab
commit d23722a4b7
16 changed files with 153 additions and 62 deletions

View File

@ -85,7 +85,6 @@ class Detector {
Result<std::string> getDetectorServerVersion(Positions pos = {}) const;
/** [Jungfrau][Moench][Gotthard2][Myhten3][Gotthard][Ctb] */
Result<std::string> getHardwareVersion(Positions pos = {}) const;
Result<std::string> getKernelVersion(Positions pos = {}) const;

View File

@ -279,11 +279,7 @@ std::string CmdProxy::Versions(int action) {
auto t = det->getFirmwareVersion(std::vector<int>{det_id});
os << "\nType : " << OutString(det->getDetectorType())
<< "\nRelease : " << det->getPackageVersion() << std::hex
<< "\nClient : " << det->getClientVersion()
<< "\nServer : "
<< OutString(det->getDetectorServerVersion(std::vector<int>{det_id}))
<< "\nKernel : "
<< OutString(det->getKernelVersion({std::vector<int>{det_id}}));
<< "\nClient : " << det->getClientVersion();
if (eiger) {
os << "\nFirmware (Beb) : "
@ -297,11 +293,16 @@ std::string CmdProxy::Versions(int action) {
} else {
os << "\nFirmware : "
<< OutStringHex(
det->getFirmwareVersion(std::vector<int>{det_id}))
<< "\nHardware : "
<< OutString(det->getHardwareVersion(std::vector<int>{det_id}));
det->getFirmwareVersion(std::vector<int>{det_id}));
}
os << "\nServer : "
<< OutString(det->getDetectorServerVersion(std::vector<int>{det_id}))
<< "\nKernel : "
<< OutString(det->getKernelVersion({std::vector<int>{det_id}}))
<< "\nHardware : "
<< OutString(det->getHardwareVersion(std::vector<int>{det_id}));
if (det->getUseReceiverFlag().squash(true)) {
os << "\nReceiver : "
<< OutString(det->getReceiverVersion(std::vector<int>{det_id}));

View File

@ -1244,7 +1244,8 @@ class CmdProxy {
GET_COMMAND(hardwareversion, getHardwareVersion,
"\n\t[Jungfrau][Gotthard2][Myhten3][Gotthard][Ctb][Moench] "
"Hardware version of detector.");
"Hardware version of detector. \n\t[Eiger] Hardware version of "
"front FPGA on detector.");
GET_COMMAND(
kernelversion, getKernelVersion,

View File

@ -116,14 +116,8 @@ TEST_CASE("detectorserverversion", "[.cmd]") {
TEST_CASE("hardwareversion", "[.cmd]") {
Detector det;
CmdProxy proxy(&det);
auto det_type = det.getDetectorType().squash();
if (det_type != defs::EIGER) {
REQUIRE_NOTHROW(proxy.Call("hardwareversion", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("hardwareversion", {"0"}, -1, PUT));
} else {
REQUIRE_THROWS(proxy.Call("hardwareversion", {"0"}, -1, PUT));
REQUIRE_THROWS(proxy.Call("hardwareversion", {}, -1, GET));
}
REQUIRE_NOTHROW(proxy.Call("hardwareversion", {}, -1, GET));
REQUIRE_THROWS(proxy.Call("hardwareversion", {"0"}, -1, PUT));
}
TEST_CASE("kernelversion", "[.cmd]") {
@ -519,7 +513,7 @@ TEST_CASE("gappixels", "[.cmd]") {
// test eiger(quad or full module only)
bool gapPixelTest = false;
if (det_type == defs:: || det_type == defs::MOENCH)
if (det_type == defs::JUNGFRAU || det_type == defs::MOENCH)
gapPixelTest = true;
else if (det_type == defs::EIGER) {
bool quad = det.getQuad().squash(false);