mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-19 18:40:01 +02:00
fixed stop server not starting up with setup variables (#949)
* m3: fixed stop server not starting up with setup variables * all servers except eiger fixed for virtual stop server to start up with setupDetector function called * virtual tests work * eiger: versions print neednt be in stop server * jungfrau: stop server (not virtual) also needs to read config file * ensuring master is setup for virtual and real servers
This commit is contained in:
parent
38d7fb0c38
commit
c6477e0ed6
Binary file not shown.
@ -449,6 +449,7 @@ void initControlServer() {
|
|||||||
void initStopServer() {
|
void initStopServer() {
|
||||||
if (!updateFlag && initError == OK) {
|
if (!updateFlag && initError == OK) {
|
||||||
usleep(CTRL_SRVR_INIT_TIME_US);
|
usleep(CTRL_SRVR_INIT_TIME_US);
|
||||||
|
LOG(logINFOBLUE, ("Configuring Stop server\n"));
|
||||||
if (mapCSP0() == FAIL) {
|
if (mapCSP0() == FAIL) {
|
||||||
initError = FAIL;
|
initError = FAIL;
|
||||||
strcpy(initErrorMessage,
|
strcpy(initErrorMessage,
|
||||||
@ -458,7 +459,7 @@ void initStopServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
sharedMemory_setStop(0);
|
setupDetector();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
@ -512,10 +513,16 @@ void setupDetector() {
|
|||||||
ndSamples = 1;
|
ndSamples = 1;
|
||||||
ntSamples = 1;
|
ntSamples = 1;
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
if (isControlServer) {
|
||||||
sharedMemory_setStatus(IDLE);
|
sharedMemory_setStatus(IDLE);
|
||||||
initializePatternWord();
|
initializePatternWord();
|
||||||
|
} else {
|
||||||
|
sharedMemory_setStop(0);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (isControlServer) {
|
||||||
setupUDPCommParameters();
|
setupUDPCommParameters();
|
||||||
|
}
|
||||||
|
|
||||||
// altera pll
|
// altera pll
|
||||||
ALTERA_PLL_SetDefines(PLL_CNTRL_REG, PLL_PARAM_REG,
|
ALTERA_PLL_SetDefines(PLL_CNTRL_REG, PLL_PARAM_REG,
|
||||||
|
Binary file not shown.
@ -379,63 +379,7 @@ void initControlServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifndef VIRTUAL
|
#ifndef VIRTUAL
|
||||||
sharedMemory_lockLocalLink();
|
setupFebBeb();
|
||||||
Feb_Interface_FebInterface();
|
|
||||||
if (!Feb_Control_FebControl(normal)) {
|
|
||||||
initError = FAIL;
|
|
||||||
sprintf(initErrorMessage,
|
|
||||||
"Could not intitalize eiger detector sever: feb control\n");
|
|
||||||
LOG(logERROR, (initErrorMessage));
|
|
||||||
initCheckDone = 1;
|
|
||||||
sharedMemory_unlockLocalLink();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Feb_Control_SetMasterEffects(master, isControlServer) == FAIL) {
|
|
||||||
initError = FAIL;
|
|
||||||
sprintf(initErrorMessage, "Could not intitalize HV for eiger "
|
|
||||||
"detector server: feb control serial "
|
|
||||||
"communication\n");
|
|
||||||
LOG(logERROR, (initErrorMessage));
|
|
||||||
initCheckDone = 1;
|
|
||||||
sharedMemory_unlockLocalLink();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
sharedMemory_unlockLocalLink();
|
|
||||||
LOG(logDEBUG1, ("Control server: FEB Initialization done\n"));
|
|
||||||
Beb_SetTopVariable(top);
|
|
||||||
Beb_Beb();
|
|
||||||
LOG(logDEBUG1, ("Control server: BEB Initialization done\n"));
|
|
||||||
|
|
||||||
// Getting the feb versions after initialization
|
|
||||||
char hversion[MAX_STR_LENGTH] = {0};
|
|
||||||
memset(hversion, 0, MAX_STR_LENGTH);
|
|
||||||
getHardwareVersion(hversion);
|
|
||||||
int64_t fwversion = getFirmwareVersion();
|
|
||||||
int64_t feblfwversion = getFrontEndFirmwareVersion(FRONT_LEFT);
|
|
||||||
int64_t febrfwversion = getFrontEndFirmwareVersion(FRONT_RIGHT);
|
|
||||||
LOG(logINFOBLUE,
|
|
||||||
("\n********************************************************\n"
|
|
||||||
"Feb Versions\n"
|
|
||||||
"Hardware Version : %s\n"
|
|
||||||
"Firmware (Febl) Version : %lld\n"
|
|
||||||
"Firmware (Febr) Version : %lld\n"
|
|
||||||
"********************************************************\n",
|
|
||||||
hversion, (long long int)feblfwversion,
|
|
||||||
(long long int)febrfwversion));
|
|
||||||
|
|
||||||
// ensure febl, febr and beb fw versions are the same
|
|
||||||
if (fwversion != feblfwversion || fwversion != febrfwversion) {
|
|
||||||
sprintf(
|
|
||||||
initErrorMessage,
|
|
||||||
"Inconsistent firmware versions in feb and beb. [Beb: %lld, "
|
|
||||||
"Febl: %lld Febr: %lld]\n",
|
|
||||||
(long long int)fwversion, (long long int)feblfwversion,
|
|
||||||
(long long int)febrfwversion);
|
|
||||||
LOG(logERROR, (initErrorMessage));
|
|
||||||
initError = FAIL;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// also reads config file and deactivates
|
// also reads config file and deactivates
|
||||||
setupDetector();
|
setupDetector();
|
||||||
@ -449,56 +393,22 @@ void initStopServer() {
|
|||||||
// command line)
|
// command line)
|
||||||
usleep(WAIT_STOP_SERVER_START);
|
usleep(WAIT_STOP_SERVER_START);
|
||||||
LOG(logINFOBLUE, ("Configuring Stop server\n"));
|
LOG(logINFOBLUE, ("Configuring Stop server\n"));
|
||||||
|
// ismaster from variable in stop server
|
||||||
if (updateModuleConfiguration() == FAIL) {
|
if (updateModuleConfiguration() == FAIL) {
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
sharedMemory_setStop(0);
|
setupDetector();
|
||||||
// force top or master if in config file
|
|
||||||
if (readConfigFile() == FAIL) {
|
|
||||||
initCheckDone = 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// force top or master if in command line
|
|
||||||
if (checkCommandLineConfiguration() == FAIL) {
|
|
||||||
initCheckDone = 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
// control server read config file and already set up master/top
|
setupFebBeb();
|
||||||
sharedMemory_lockLocalLink();
|
|
||||||
Feb_Interface_FebInterface();
|
|
||||||
if (!Feb_Control_FebControl(normal)) {
|
|
||||||
initError = FAIL;
|
|
||||||
sprintf(initErrorMessage, "Could not intitalize feb control\n");
|
|
||||||
LOG(logERROR, (initErrorMessage));
|
|
||||||
initCheckDone = 1;
|
|
||||||
sharedMemory_unlockLocalLink();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (Feb_Control_SetMasterEffects(master, isControlServer) == FAIL) {
|
|
||||||
initError = FAIL;
|
|
||||||
sprintf(initErrorMessage, "Could not intitalize HV for eiger "
|
|
||||||
"detector server: feb control serial "
|
|
||||||
"communication\n");
|
|
||||||
LOG(logERROR, (initErrorMessage));
|
|
||||||
initCheckDone = 1;
|
|
||||||
sharedMemory_unlockLocalLink();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
sharedMemory_unlockLocalLink();
|
|
||||||
LOG(logDEBUG1, ("Stop server: FEB Initialization done\n"));
|
|
||||||
Beb_SetTopVariable(top);
|
|
||||||
Beb_Beb();
|
|
||||||
LOG(logDEBUG1, ("Control server: BEB Initialization done\n"));
|
|
||||||
#endif
|
|
||||||
// client first connect (from shm) will activate
|
// client first connect (from shm) will activate
|
||||||
if (setActivate(0) == FAIL) {
|
if (setActivate(0) == FAIL) {
|
||||||
initError = FAIL;
|
initError = FAIL;
|
||||||
strcpy(initErrorMessage, "Could not deactivate\n");
|
strcpy(initErrorMessage, "Could not deactivate\n");
|
||||||
LOG(logERROR, (initErrorMessage));
|
LOG(logERROR, (initErrorMessage));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
}
|
}
|
||||||
@ -749,6 +659,71 @@ int checkCommandLineConfiguration() {
|
|||||||
|
|
||||||
/* set up detector */
|
/* set up detector */
|
||||||
|
|
||||||
|
#ifndef VIRTUAL
|
||||||
|
void setupFebBeb() {
|
||||||
|
sharedMemory_lockLocalLink();
|
||||||
|
Feb_Interface_FebInterface();
|
||||||
|
if (!Feb_Control_FebControl(normal)) {
|
||||||
|
initError = FAIL;
|
||||||
|
sprintf(initErrorMessage,
|
||||||
|
"Could not intitalize eiger detector sever: feb control\n");
|
||||||
|
LOG(logERROR, (initErrorMessage));
|
||||||
|
initCheckDone = 1;
|
||||||
|
sharedMemory_unlockLocalLink();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (Feb_Control_SetMasterEffects(master, isControlServer) == FAIL) {
|
||||||
|
initError = FAIL;
|
||||||
|
sprintf(initErrorMessage, "Could not intitalize HV for eiger "
|
||||||
|
"detector server: feb control serial "
|
||||||
|
"communication\n");
|
||||||
|
LOG(logERROR, (initErrorMessage));
|
||||||
|
initCheckDone = 1;
|
||||||
|
sharedMemory_unlockLocalLink();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
sharedMemory_unlockLocalLink();
|
||||||
|
LOG(logDEBUG1, ("%s server: FEB Initialization done\n",
|
||||||
|
isControlServer ? "Control" : "Stop"));
|
||||||
|
Beb_SetTopVariable(top);
|
||||||
|
Beb_Beb();
|
||||||
|
LOG(logDEBUG1, ("%s server: BEB Initialization done\n",
|
||||||
|
isControlServer ? "Control" : "Stop"));
|
||||||
|
|
||||||
|
if (isControlServer) {
|
||||||
|
// Getting the feb versions after initialization
|
||||||
|
char hversion[MAX_STR_LENGTH] = {0};
|
||||||
|
memset(hversion, 0, MAX_STR_LENGTH);
|
||||||
|
getHardwareVersion(hversion);
|
||||||
|
int64_t fwversion = getFirmwareVersion();
|
||||||
|
int64_t feblfwversion = getFrontEndFirmwareVersion(FRONT_LEFT);
|
||||||
|
int64_t febrfwversion = getFrontEndFirmwareVersion(FRONT_RIGHT);
|
||||||
|
LOG(logINFOBLUE,
|
||||||
|
("\n********************************************************\n"
|
||||||
|
"Feb Versions\n"
|
||||||
|
"Hardware Version : %s\n"
|
||||||
|
"Firmware (Febl) Version : %lld\n"
|
||||||
|
"Firmware (Febr) Version : %lld\n"
|
||||||
|
"********************************************************\n",
|
||||||
|
hversion, (long long int)feblfwversion,
|
||||||
|
(long long int)febrfwversion));
|
||||||
|
|
||||||
|
// ensure febl, febr and beb fw versions are the same
|
||||||
|
if (fwversion != feblfwversion || fwversion != febrfwversion) {
|
||||||
|
sprintf(
|
||||||
|
initErrorMessage,
|
||||||
|
"Inconsistent firmware versions in feb and beb. [Beb: %lld, "
|
||||||
|
"Febl: %lld Febr: %lld]\n",
|
||||||
|
(long long int)fwversion, (long long int)feblfwversion,
|
||||||
|
(long long int)febrfwversion);
|
||||||
|
LOG(logERROR, (initErrorMessage));
|
||||||
|
initError = FAIL;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void allocateDetectorStructureMemory() {
|
void allocateDetectorStructureMemory() {
|
||||||
LOG(logINFO, ("This Server is for 1 Eiger half module (250k)\n\n"));
|
LOG(logINFO, ("This Server is for 1 Eiger half module (250k)\n\n"));
|
||||||
|
|
||||||
@ -799,8 +774,12 @@ void setupDetector() {
|
|||||||
LOG(logINFOBLUE, ("Setting Default Parameters\n"));
|
LOG(logINFOBLUE, ("Setting Default Parameters\n"));
|
||||||
resetToDefaultDacs(0);
|
resetToDefaultDacs(0);
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
if (isControlServer) {
|
||||||
sharedMemory_setStatus(IDLE);
|
sharedMemory_setStatus(IDLE);
|
||||||
setupUDPCommParameters();
|
setupUDPCommParameters();
|
||||||
|
} else {
|
||||||
|
sharedMemory_setStop(0);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// setting default measurement parameters
|
// setting default measurement parameters
|
||||||
|
Binary file not shown.
@ -403,13 +403,7 @@ void initStopServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
sharedMemory_setStop(0);
|
setupDetector();
|
||||||
setMaster(OW_MASTER);
|
|
||||||
if (readConfigFile() == FAIL ||
|
|
||||||
checkCommandLineConfiguration() == FAIL) {
|
|
||||||
initCheckDone = 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
@ -460,8 +454,14 @@ void setupDetector() {
|
|||||||
memset(vetoGainIndices, 0, sizeof(vetoGainIndices));
|
memset(vetoGainIndices, 0, sizeof(vetoGainIndices));
|
||||||
memset(adcConfiguration, 0, sizeof(adcConfiguration));
|
memset(adcConfiguration, 0, sizeof(adcConfiguration));
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
if (isControlServer) {
|
||||||
sharedMemory_setStatus(IDLE);
|
sharedMemory_setStatus(IDLE);
|
||||||
setupUDPCommParameters();
|
setupUDPCommParameters();
|
||||||
|
} else {
|
||||||
|
sharedMemory_setStop(0);
|
||||||
|
}
|
||||||
|
// ismaster from reg in stop server, so set it in virtual mode
|
||||||
|
setMaster(OW_MASTER);
|
||||||
#endif
|
#endif
|
||||||
// pll defines
|
// pll defines
|
||||||
ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL,
|
ALTERA_PLL_C10_SetDefines(REG_OFFSET, BASE_READOUT_PLL, BASE_SYSTEM_PLL,
|
||||||
@ -2159,7 +2159,6 @@ int *getDetectorPosition() { return detPos; }
|
|||||||
|
|
||||||
int checkDetectorType(char *mess) {
|
int checkDetectorType(char *mess) {
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
setMaster(OW_MASTER);
|
|
||||||
return OK;
|
return OK;
|
||||||
#endif
|
#endif
|
||||||
LOG(logINFO, ("Checking module type\n"));
|
LOG(logINFO, ("Checking module type\n"));
|
||||||
|
@ -14,7 +14,11 @@
|
|||||||
|
|
||||||
#define LINKED_SERVER_NAME "gotthard2DetectorServer"
|
#define LINKED_SERVER_NAME "gotthard2DetectorServer"
|
||||||
|
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
#define CTRL_SRVR_INIT_TIME_US (3 * 1000 * 1000)
|
||||||
|
#else
|
||||||
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Hardware Definitions */
|
/* Hardware Definitions */
|
||||||
#define NCHAN (128)
|
#define NCHAN (128)
|
||||||
|
Binary file not shown.
@ -388,14 +388,15 @@ void initStopServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
sharedMemory_setStop(0);
|
setupDetector();
|
||||||
#endif
|
#else
|
||||||
// to get master from file
|
// ismaster from variable in stop server
|
||||||
if (readConfigFile() == FAIL ||
|
if (readConfigFile() == FAIL ||
|
||||||
checkCommandLineConfiguration() == FAIL) {
|
checkCommandLineConfiguration() == FAIL) {
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
}
|
}
|
||||||
@ -406,8 +407,12 @@ void setupDetector() {
|
|||||||
LOG(logINFO, ("This Server is for 1 Gotthard module (1280 channels)\n"));
|
LOG(logINFO, ("This Server is for 1 Gotthard module (1280 channels)\n"));
|
||||||
|
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
if (isControlServer) {
|
||||||
sharedMemory_setStatus(IDLE);
|
sharedMemory_setStatus(IDLE);
|
||||||
setupUDPCommParameters();
|
setupUDPCommParameters();
|
||||||
|
} else {
|
||||||
|
sharedMemory_setStop(0);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Initialization
|
// Initialization
|
||||||
|
@ -12,7 +12,11 @@
|
|||||||
|
|
||||||
#define LINKED_SERVER_NAME "gotthardDetectorServer"
|
#define LINKED_SERVER_NAME "gotthardDetectorServer"
|
||||||
|
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
#define CTRL_SRVR_INIT_TIME_US (2 * 1000 * 1000)
|
||||||
|
#else
|
||||||
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Enums */
|
/* Enums */
|
||||||
enum ADCINDEX { TEMP_FPGA, TEMP_ADC };
|
enum ADCINDEX { TEMP_FPGA, TEMP_ADC };
|
||||||
|
Binary file not shown.
@ -439,15 +439,14 @@ void initStopServer() {
|
|||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
setupDetector();
|
||||||
|
#else
|
||||||
|
// chip version is a variable
|
||||||
if (readConfigFile() == FAIL) {
|
if (readConfigFile() == FAIL) {
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
|
||||||
sharedMemory_setStop(0);
|
|
||||||
// temp threshold and reset event (read by stop server)
|
|
||||||
setThresholdTemperature(DEFAULT_TMP_THRSHLD);
|
|
||||||
setTemperatureEvent(0);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
@ -463,8 +462,14 @@ void setupDetector() {
|
|||||||
}
|
}
|
||||||
chipConfigured = 0;
|
chipConfigured = 0;
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
if (isControlServer) {
|
||||||
sharedMemory_setStatus(IDLE);
|
sharedMemory_setStatus(IDLE);
|
||||||
setupUDPCommParameters();
|
setupUDPCommParameters();
|
||||||
|
} else {
|
||||||
|
sharedMemory_setStop(0);
|
||||||
|
}
|
||||||
|
// ismaster from reg in stop server, so set it in virtual mode
|
||||||
|
setMaster(OW_MASTER);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// altera pll
|
// altera pll
|
||||||
|
@ -17,7 +17,11 @@
|
|||||||
#define ID_FILE "detid_jungfrau.txt"
|
#define ID_FILE "detid_jungfrau.txt"
|
||||||
#define LINKED_SERVER_NAME "jungfrauDetectorServer"
|
#define LINKED_SERVER_NAME "jungfrauDetectorServer"
|
||||||
|
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
#define CTRL_SRVR_INIT_TIME_US (4 * 1000 * 1000)
|
||||||
|
#else
|
||||||
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Hardware Definitions */
|
/* Hardware Definitions */
|
||||||
#define NCHAN (256 * 256)
|
#define NCHAN (256 * 256)
|
||||||
|
Binary file not shown.
@ -420,10 +420,7 @@ void initStopServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
sharedMemory_setStop(0);
|
setupDetector();
|
||||||
// temp threshold and reset event (read by stop server)
|
|
||||||
setThresholdTemperature(DEFAULT_TMP_THRSHLD);
|
|
||||||
setTemperatureEvent(0);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
@ -438,8 +435,14 @@ void setupDetector() {
|
|||||||
clkPhase[i] = 0;
|
clkPhase[i] = 0;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
if (isControlServer) {
|
||||||
sharedMemory_setStatus(IDLE);
|
sharedMemory_setStatus(IDLE);
|
||||||
setupUDPCommParameters();
|
setupUDPCommParameters();
|
||||||
|
} else {
|
||||||
|
sharedMemory_setStop(0);
|
||||||
|
}
|
||||||
|
// ismaster from reg in stop server, so set it in virtual mode
|
||||||
|
setMaster(OW_MASTER);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// altera pll
|
// altera pll
|
||||||
|
@ -16,7 +16,11 @@
|
|||||||
#define ID_FILE ("detid_moench.txt")
|
#define ID_FILE ("detid_moench.txt")
|
||||||
#define LINKED_SERVER_NAME "moenchDetectorServer"
|
#define LINKED_SERVER_NAME "moenchDetectorServer"
|
||||||
|
|
||||||
|
#ifdef VIRTUAL
|
||||||
|
#define CTRL_SRVR_INIT_TIME_US (2 * 1000 * 1000)
|
||||||
|
#else
|
||||||
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
#define CTRL_SRVR_INIT_TIME_US (300 * 1000)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Hardware Definitions */
|
/* Hardware Definitions */
|
||||||
#define NCHAN (400 * 400)
|
#define NCHAN (400 * 400)
|
||||||
|
Binary file not shown.
@ -396,11 +396,7 @@ void initStopServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
sharedMemory_setStop(0);
|
setupDetector();
|
||||||
if (checkCommandLineConfiguration() == FAIL) {
|
|
||||||
initCheckDone = 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
initCheckDone = 1;
|
initCheckDone = 1;
|
||||||
@ -466,8 +462,12 @@ void setupDetector() {
|
|||||||
clkPhase[i] = 0;
|
clkPhase[i] = 0;
|
||||||
}
|
}
|
||||||
#ifdef VIRTUAL
|
#ifdef VIRTUAL
|
||||||
|
if (isControlServer) {
|
||||||
sharedMemory_setStatus(IDLE);
|
sharedMemory_setStatus(IDLE);
|
||||||
setupUDPCommParameters();
|
setupUDPCommParameters();
|
||||||
|
} else {
|
||||||
|
sharedMemory_setStop(0);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// pll defines
|
// pll defines
|
||||||
|
@ -136,6 +136,9 @@ void checkVirtual9MFlag();
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// set up detector
|
// set up detector
|
||||||
|
#if defined(EIGERD) && !defined(VIRTUAL)
|
||||||
|
void setupFebBeb();
|
||||||
|
#endif
|
||||||
#if defined(EIGERD) || defined(MYTHEN3D)
|
#if defined(EIGERD) || defined(MYTHEN3D)
|
||||||
void allocateDetectorStructureMemory();
|
void allocateDetectorStructureMemory();
|
||||||
#endif
|
#endif
|
||||||
|
Binary file not shown.
@ -1043,10 +1043,10 @@ TEST_CASE("CALLER::v_a", "[.cmdcall]") {
|
|||||||
auto prev_val = det.getPower(defs::V_POWER_A);
|
auto prev_val = det.getPower(defs::V_POWER_A);
|
||||||
{
|
{
|
||||||
std::ostringstream oss1, oss2;
|
std::ostringstream oss1, oss2;
|
||||||
caller.call("v_a", {"700"}, -1, PUT, oss1);
|
caller.call("v_a", {"1200"}, -1, PUT, oss1);
|
||||||
REQUIRE(oss1.str() == "v_a 700\n");
|
REQUIRE(oss1.str() == "v_a 1200\n");
|
||||||
caller.call("v_a", {}, -1, GET, oss2);
|
caller.call("v_a", {}, -1, GET, oss2);
|
||||||
REQUIRE(oss2.str() == "v_a 700\n");
|
REQUIRE(oss2.str() == "v_a 1200\n");
|
||||||
}
|
}
|
||||||
for (int i = 0; i != det.size(); ++i) {
|
for (int i = 0; i != det.size(); ++i) {
|
||||||
det.setPower(defs::V_POWER_A, prev_val[i], {i});
|
det.setPower(defs::V_POWER_A, prev_val[i], {i});
|
||||||
@ -1065,10 +1065,10 @@ TEST_CASE("CALLER::v_b", "[.cmdcall]") {
|
|||||||
auto prev_val = det.getPower(defs::V_POWER_B);
|
auto prev_val = det.getPower(defs::V_POWER_B);
|
||||||
{
|
{
|
||||||
std::ostringstream oss1, oss2;
|
std::ostringstream oss1, oss2;
|
||||||
caller.call("v_b", {"700"}, -1, PUT, oss1);
|
caller.call("v_b", {"1200"}, -1, PUT, oss1);
|
||||||
REQUIRE(oss1.str() == "v_b 700\n");
|
REQUIRE(oss1.str() == "v_b 1200\n");
|
||||||
caller.call("v_b", {}, -1, GET, oss2);
|
caller.call("v_b", {}, -1, GET, oss2);
|
||||||
REQUIRE(oss2.str() == "v_b 700\n");
|
REQUIRE(oss2.str() == "v_b 1200\n");
|
||||||
}
|
}
|
||||||
for (int i = 0; i != det.size(); ++i) {
|
for (int i = 0; i != det.size(); ++i) {
|
||||||
det.setPower(defs::V_POWER_B, prev_val[i], {i});
|
det.setPower(defs::V_POWER_B, prev_val[i], {i});
|
||||||
@ -1087,10 +1087,10 @@ TEST_CASE("CALLER::v_c", "[.cmdcall]") {
|
|||||||
auto prev_val = det.getPower(defs::V_POWER_C);
|
auto prev_val = det.getPower(defs::V_POWER_C);
|
||||||
{
|
{
|
||||||
std::ostringstream oss1, oss2;
|
std::ostringstream oss1, oss2;
|
||||||
caller.call("v_c", {"700"}, -1, PUT, oss1);
|
caller.call("v_c", {"1200"}, -1, PUT, oss1);
|
||||||
REQUIRE(oss1.str() == "v_c 700\n");
|
REQUIRE(oss1.str() == "v_c 1200\n");
|
||||||
caller.call("v_c", {}, -1, GET, oss2);
|
caller.call("v_c", {}, -1, GET, oss2);
|
||||||
REQUIRE(oss2.str() == "v_c 700\n");
|
REQUIRE(oss2.str() == "v_c 1200\n");
|
||||||
}
|
}
|
||||||
for (int i = 0; i != det.size(); ++i) {
|
for (int i = 0; i != det.size(); ++i) {
|
||||||
det.setPower(defs::V_POWER_C, prev_val[i], {i});
|
det.setPower(defs::V_POWER_C, prev_val[i], {i});
|
||||||
@ -1109,10 +1109,10 @@ TEST_CASE("CALLER::v_d", "[.cmdcall]") {
|
|||||||
auto prev_val = det.getPower(defs::V_POWER_D);
|
auto prev_val = det.getPower(defs::V_POWER_D);
|
||||||
{
|
{
|
||||||
std::ostringstream oss1, oss2;
|
std::ostringstream oss1, oss2;
|
||||||
caller.call("v_d", {"700"}, -1, PUT, oss1);
|
caller.call("v_d", {"1200"}, -1, PUT, oss1);
|
||||||
REQUIRE(oss1.str() == "v_d 700\n");
|
REQUIRE(oss1.str() == "v_d 1200\n");
|
||||||
caller.call("v_d", {}, -1, GET, oss2);
|
caller.call("v_d", {}, -1, GET, oss2);
|
||||||
REQUIRE(oss2.str() == "v_d 700\n");
|
REQUIRE(oss2.str() == "v_d 1200\n");
|
||||||
}
|
}
|
||||||
for (int i = 0; i != det.size(); ++i) {
|
for (int i = 0; i != det.size(); ++i) {
|
||||||
det.setPower(defs::V_POWER_D, prev_val[i], {i});
|
det.setPower(defs::V_POWER_D, prev_val[i], {i});
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
#define RELEASE "developer"
|
#define RELEASE "developer"
|
||||||
#define APILIB "developer 0x230224"
|
#define APILIB "developer 0x230224"
|
||||||
#define APIRECEIVER "developer 0x230224"
|
#define APIRECEIVER "developer 0x230224"
|
||||||
#define APICTB "developer 0x240820"
|
#define APICTB "developer 0x240822"
|
||||||
#define APIGOTTHARD "developer 0x240820"
|
#define APIGOTTHARD "developer 0x240822"
|
||||||
#define APIGOTTHARD2 "developer 0x240820"
|
#define APIGOTTHARD2 "developer 0x240822"
|
||||||
#define APIMYTHEN3 "developer 0x240820"
|
#define APIMYTHEN3 "developer 0x240822"
|
||||||
#define APIMOENCH "developer 0x240820"
|
#define APIMOENCH "developer 0x240822"
|
||||||
#define APIEIGER "developer 0x240820"
|
#define APIXILINXCTB "developer 0x240822"
|
||||||
#define APIXILINXCTB "developer 0x240820"
|
#define APIEIGER "developer 0x240822"
|
||||||
#define APIJUNGFRAU "developer 0x240822"
|
#define APIJUNGFRAU "developer 0x240822"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user