dev:Eiger febl febr (#601)

* eiger: get febl and febr versions in versions command, also added in python
This commit is contained in:
Dhanya Thattil
2023-02-24 10:06:11 +01:00
committed by GitHub
parent 276dc52196
commit 48a684b95f
25 changed files with 160 additions and 12 deletions

View File

@ -2180,6 +2180,36 @@ int Feb_Control_GetRightFPGATemp() {
return (int)temperature;
}
int64_t Feb_Control_GetFrontLeftFirmwareVersion() {
if (!Feb_Control_activated) {
return 0;
}
unsigned int value = 0;
if (!Feb_Interface_ReadRegister(Feb_Control_leftAddress, FEB_REG_STATUS,
&value)) {
LOG(logERROR, ("Trouble reading FEB_REG_STATUS reg to get left feb "
"fw version\n"));
return 0;
}
return ((value & FEB_REG_STATUS_FW_VERSION_MSK) >>
FEB_REG_STATUS_FW_VERSION_OFST);
}
int64_t Feb_Control_GetFrontRightFirmwareVersion() {
if (!Feb_Control_activated) {
return 0;
}
unsigned int value = 0;
if (!Feb_Interface_ReadRegister(Feb_Control_rightAddress, FEB_REG_STATUS,
&value)) {
LOG(logERROR, ("Trouble reading FEB_REG_STATUS reg to get right feb "
"fw version\n"));
return 0;
}
return ((value & FEB_REG_STATUS_FW_VERSION_MSK) >>
FEB_REG_STATUS_FW_VERSION_OFST);
}
int64_t Feb_Control_GetMeasuredPeriod() {
if (!Feb_Control_activated) {
return 0;

View File

@ -116,5 +116,7 @@ int Feb_Control_PrintCorrectedValues();
// adcs
int Feb_Control_GetLeftFPGATemp();
int Feb_Control_GetRightFPGATemp();
int64_t Feb_Control_GetFrontLeftFirmwareVersion();
int64_t Feb_Control_GetFrontRightFirmwareVersion();
int64_t Feb_Control_GetMeasuredPeriod();
int64_t Feb_Control_GetSubMeasuredPeriod();

View File

@ -46,6 +46,8 @@
#define FEB_REG_STATUS_WAIT_FOR_TRGGR_MSK (0x00000001 << FEB_REG_STATUS_WAIT_FOR_TRGGR_OFST)
#define FEB_REG_STATUS_ACQ_DONE_OFST (6)
#define FEB_REG_STATUS_ACQ_DONE_MSK (0x00000001 << FEB_REG_STATUS_ACQ_DONE_OFST)
#define FEB_REG_STATUS_FW_VERSION_OFST (8)
#define FEB_REG_STATUS_FW_VERSION_MSK (0x000000FF << FEB_REG_STATUS_FW_VERSION_OFST)
#define FEB_REG_STATUS_TEMP_OFST (16)
#define FEB_REG_STATUS_TEMP_MSK (0x0000FFFF << FEB_REG_STATUS_TEMP_OFST)

View File

@ -216,6 +216,27 @@ u_int64_t getFirmwareVersion() {
#endif
}
uint64_t getFrontEndFirmwareVersion(enum fpgaPosition fpgaPosition) {
uint64_t retval = 0;
#ifndef VIRTUAL
sharedMemory_lockLocalLink();
switch (fpgaPosition) {
case FRONT_LEFT:
retval = Feb_Control_GetFrontLeftFirmwareVersion(fpgaPosition);
break;
case FRONT_RIGHT:
retval = Feb_Control_GetFrontRightFirmwareVersion(fpgaPosition);
break;
default:
LOG(logERROR,
("unknown index for fpga position to read firmware version\n"));
retval = -1;
}
sharedMemory_unlockLocalLink();
#endif
return retval;
}
u_int64_t getFirmwareAPIVersion() {
#ifdef VIRTUAL
return 0;