hardware version (#580)

* hardware version for all dets except eiger
Co-authored-by: Erik Frojdh <erik.frojdh@gmail.com>
This commit is contained in:
Dhanya Thattil
2022-11-24 11:24:05 +01:00
committed by GitHub
parent cd270160d8
commit 2ff5291f48
34 changed files with 359 additions and 156 deletions

View File

@ -113,7 +113,9 @@ void basictests() {
return;
}
#endif
uint16_t hversion = getHardwareVersionNumber();
char hversion[MAX_STR_LENGTH] = {0};
memset(hversion, 0, MAX_STR_LENGTH);
getHardwareVersion(hversion);
uint32_t ipadd = getDetectorIP();
uint64_t macadd = getDetectorMAC();
int64_t fwversion = getFirmwareVersion();
@ -125,7 +127,7 @@ void basictests() {
LOG(logINFOBLUE,
("**************************************************\n"
"Hardware Version:\t\t 0x%x\n"
"Hardware Version:\t\t %s\n"
"Detector IP Addr:\t\t 0x%x\n"
"Detector MAC Addr:\t\t 0x%llx\n\n"
@ -267,14 +269,34 @@ u_int64_t getFirmwareAPIVersion() {
return ((bus_r(API_VERSION_REG) & API_VERSION_MSK) >> API_VERSION_OFST);
}
void getHardwareVersion(char *version) {
strcpy(version, "unknown");
int hwversion = getHardwareVersionNumber();
const int hwNumberList[] = HARDWARE_VERSION_NUMBERS;
const char *hwNamesList[] = HARDWARE_VERSION_NAMES;
for (int i = 0; i != NUM_HARDWARE_VERSIONS; ++i) {
LOG(logDEBUG, ("0x%x %d 0x%x %s\n", hwversion, i, hwNumberList[i],
hwNamesList[i]));
if (hwNumberList[i] == hwversion) {
strcpy(version, hwNamesList[i]);
return;
}
}
}
u_int16_t getHardwareVersionNumber() {
#ifdef VIRTUAL
return 0;
return 0x2;
#endif
return ((bus_r(MCB_SERIAL_NO_REG) & MCB_SERIAL_NO_VRSN_MSK) >>
MCB_SERIAL_NO_VRSN_OFST);
}
int isHardwareVersion_1_0() {
const int hwNumberList[] = HARDWARE_VERSION_NUMBERS;
return ((getHardwareVersionNumber() == hwNumberList[0]) ? 1 : 0);
}
u_int32_t getDetectorNumber() {
#ifdef VIRTUAL
return 0;

View File

@ -7,6 +7,11 @@
#define KERNEL_DATE_VRSN "Mon May 10 18:00:21 CEST 2021"
#define ID_FILE "detid_gotthard2.txt"
#define NUM_HARDWARE_VERSIONS (2)
#define HARDWARE_VERSION_NUMBERS {0x0, 0x2};
#define HARDWARE_VERSION_NAMES \
{ "1.0", "1.2" }
#define LINKED_SERVER_NAME "gotthard2DetectorServer"
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)