mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-16 16:45:55 +01:00
module id instead of serial number
This commit is contained in:
@@ -280,17 +280,22 @@ u_int16_t getHardwareVersionNumber() {
|
||||
MCB_SERIAL_NO_VRSN_OFST);
|
||||
}
|
||||
|
||||
uint16_t getSerialNumber() {
|
||||
return ((bus_r(MOD_ID_REG) & MOD_ID_MSK) >> MOD_ID_OFST);
|
||||
u_int32_t getDetectorNumber() {
|
||||
#ifdef VIRTUAL
|
||||
return 0;
|
||||
#endif
|
||||
return bus_r(MCB_SERIAL_NO_REG);
|
||||
}
|
||||
|
||||
void setSerialNumber(uint16_t arg) {
|
||||
LOG(logINFOBLUE, ("Setting Serial Number to 0x%x\n", arg));
|
||||
int getModuleId() { return ((bus_r(MOD_ID_REG) & MOD_ID_MSK) >> MOD_ID_OFST); }
|
||||
|
||||
void setModuleId(int arg) {
|
||||
LOG(logINFOBLUE, ("Setting Module Id to 0x%x\n", arg));
|
||||
bus_w(MOD_ID_REG, bus_r(MOD_ID_REG) & ~MOD_ID_MSK);
|
||||
bus_w(MOD_ID_REG, bus_r(MOD_ID_REG) | ((arg << MOD_ID_OFST) & MOD_ID_MSK));
|
||||
}
|
||||
|
||||
int getMaxSerialNumber() { return MOD_MAX_VAL; }
|
||||
int getMaxModuleId() { return MOD_MAX_VAL; }
|
||||
|
||||
u_int64_t getDetectorMAC() {
|
||||
#ifdef VIRTUAL
|
||||
|
||||
@@ -94,9 +94,9 @@ void readDetectorNumber();
|
||||
#endif
|
||||
u_int32_t getDetectorNumber();
|
||||
#ifdef GOTTHARD2D
|
||||
uint16_t getSerialNumber();
|
||||
void setSerialNumber(uint16_t arg);
|
||||
int getMaxSerialNumber();
|
||||
int getModuleId();
|
||||
void setModuleId(int arg);
|
||||
int getMaxModuleId();
|
||||
#endif
|
||||
u_int64_t getDetectorMAC();
|
||||
u_int32_t getDetectorIP();
|
||||
|
||||
@@ -267,4 +267,5 @@ int set_adc_pipeline(int);
|
||||
int get_adc_pipeline(int);
|
||||
int set_dbit_pipeline(int);
|
||||
int get_dbit_pipeline(int);
|
||||
int set_serial_number(int);
|
||||
int get_module_id(int);
|
||||
int set_module_id(int);
|
||||
@@ -392,7 +392,8 @@ 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;
|
||||
flist[F_GET_MODULE_ID] = &get_module_id;
|
||||
flist[F_SET_MODULE_ID] = &set_module_id;
|
||||
|
||||
// check
|
||||
if (NUM_DET_FUNCTIONS >= RECEIVER_ENUM_START) {
|
||||
@@ -666,39 +667,11 @@ int get_serial_number(int file_des) {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
int64_t retval = -1;
|
||||
#ifdef GOTTHARD2D
|
||||
retval = getSerialNumber();
|
||||
#else
|
||||
retval = getDetectorNumber();
|
||||
#endif
|
||||
LOG(logDEBUG1, ("detector number retval: 0x%llx\n", (long long int)retval));
|
||||
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
|
||||
if (arg > getMaxSerialNumber()) {
|
||||
ret = FAIL;
|
||||
sprintf(mess, "Could not set serial number. Max value: %d\n",
|
||||
getMaxSerialNumber());
|
||||
LOG(logERROR, (mess));
|
||||
} 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));
|
||||
@@ -8952,4 +8925,44 @@ int get_dbit_pipeline(int file_des) {
|
||||
LOG(logDEBUG1, ("retval dbit pipeline: %d\n", retval));
|
||||
#endif
|
||||
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||
}
|
||||
|
||||
int get_module_id(int file_des) {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
int retval = -1;
|
||||
#ifndef GOTTHARD2D
|
||||
functionNotImplemented();
|
||||
#else
|
||||
retval = getModuleId();
|
||||
#endif
|
||||
LOG(logDEBUG1, ("module id retval: 0x%x\n", retval));
|
||||
return Server_SendResult(file_des, INT32, &retval, sizeof(retval));
|
||||
}
|
||||
|
||||
int set_module_id(int file_des) {
|
||||
ret = OK;
|
||||
memset(mess, 0, sizeof(mess));
|
||||
int arg = -1;
|
||||
|
||||
if (receiveData(file_des, &arg, sizeof(arg), INT32) < 0)
|
||||
return printSocketReadError();
|
||||
LOG(logDEBUG1, ("Setting module id to 0x%x\n", arg));
|
||||
|
||||
#ifndef GOTTHARD2D
|
||||
functionNotImplemented();
|
||||
#else
|
||||
if (arg > getMaxModuleId()) {
|
||||
ret = FAIL;
|
||||
sprintf(mess, "Could not set module id. Max value: 0x%x\n",
|
||||
getMaxModuleId());
|
||||
LOG(logERROR, (mess));
|
||||
} else {
|
||||
setModuleId(arg);
|
||||
int retval = getModuleId();
|
||||
LOG(logDEBUG1, ("retval module id: %d\n", retval));
|
||||
validate(&ret, mess, arg, retval, "set module id", DEC);
|
||||
}
|
||||
#endif
|
||||
return Server_SendResult(file_des, INT32, NULL, 0);
|
||||
}
|
||||
Reference in New Issue
Block a user