g2: setting serialnumber allowed

This commit is contained in:
2021-08-11 18:50:49 +02:00
parent 9a777b13bb
commit 6f54402aba
12 changed files with 90 additions and 9 deletions

View File

@@ -66,6 +66,7 @@ int64_t burstPeriodReg = 0;
int filterResistor = 0;
int cdsGain = 0;
int detPos[2] = {};
int64_t serialNumber = -1;
int isInitCheckDone() { return initCheckDone; }
@@ -281,12 +282,20 @@ u_int16_t getHardwareVersionNumber() {
}
u_int32_t getDetectorNumber() {
if (serialNumber != -1) {
return serialNumber;
}
#ifdef VIRTUAL
return 0;
#endif
return bus_r(MCB_SERIAL_NO_REG);
}
void setSerialNumber(int64_t arg) {
LOG(logINFOBLUE, ("Setting Serial Number to 0x%llx\n", (long long int)arg));
serialNumber = arg;
}
u_int64_t getDetectorMAC() {
#ifdef VIRTUAL
return 0;

View File

@@ -93,6 +93,9 @@ int getChipVersion();
void readDetectorNumber();
#endif
u_int32_t getDetectorNumber();
#ifdef GOTTHARD2D
void setSerialNumber(int64_t arg);
#endif
u_int64_t getDetectorMAC();
u_int32_t getDetectorIP();
#ifdef GOTTHARDD

View File

@@ -266,4 +266,5 @@ int set_filter_cell(int);
int set_adc_pipeline(int);
int get_adc_pipeline(int);
int set_dbit_pipeline(int);
int get_dbit_pipeline(int);
int get_dbit_pipeline(int);
int set_serial_number(int);

View File

@@ -392,6 +392,7 @@ void function_table() {
flist[F_GET_ADC_PIPELINE] = &get_adc_pipeline;
flist[F_SET_DBIT_PIPELINE] = &set_dbit_pipeline;
flist[F_GET_DBIT_PIPELINE] = &get_dbit_pipeline;
flist[F_SET_SERIAL_NUMBER] = &set_serial_number;
// check
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
@@ -670,6 +671,23 @@ int get_serial_number(int file_des) {
return Server_SendResult(file_des, INT64, &retval, sizeof(retval));
}
int set_serial_number(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
int64_t arg = -1;
if (receiveData(file_des, &arg, sizeof(arg), INT64) < 0)
return printSocketReadError();
LOG(logDEBUG1, ("Setting serial number to 0x%llx\n", (long long int)arg));
#ifndef GOTTHARD2D
functionNotImplemented();
#else
setSerialNumber(arg);
#endif
return Server_SendResult(file_des, INT64, NULL, 0);
}
int set_firmware_test(int file_des) {
ret = OK;
memset(mess, 0, sizeof(mess));
@@ -4250,7 +4268,7 @@ int copy_detector_server(int file_des) {
strcat(cmd, sname);
executeCommand(cmd, retvals, logDEBUG1);
#if !defined(GOTTHAR2D) && !defined(MYTHEN3D)
#if !defined(GOTTHARD2D) && !defined(MYTHEN3D)
// edit /etc/inittab
// find line numbers in /etc/inittab where DetectorServer
strcpy(cmd, "sed -n '/DetectorServer/=' /etc/inittab");
@@ -7796,7 +7814,7 @@ int get_filter_resistor(int file_des) {
LOG(logDEBUG1, ("Getting filter resistor\n"));
#if !defined(GOTTHAR2D) && !defined(JUNGFRAUD)
#if !defined(GOTTHARD2D) && !defined(JUNGFRAUD)
functionNotImplemented();
#else
// get only
@@ -7825,7 +7843,7 @@ int set_filter_resistor(int file_des) {
return printSocketReadError();
LOG(logINFO, ("Setting filter resistor: %u\n", arg));
#if !defined(GOTTHAR2D) && !defined(JUNGFRAUD)
#if !defined(GOTTHARD2D) && !defined(JUNGFRAUD)
functionNotImplemented();
#else
// only set