mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 03:10:02 +02:00
jungfrau server: programming allowed only in -update or -dev mode, -dev strictly for Carlos, in update mode one can only do programming
This commit is contained in:
parent
8986b008dd
commit
23d73ae5ae
Binary file not shown.
Binary file not shown.
@ -7847,12 +7847,17 @@ int slsDetector::programFPGA(string fname){
|
|||||||
std::cout<<std::endl;
|
std::cout<<std::endl;
|
||||||
|
|
||||||
//check ending error
|
//check ending error
|
||||||
|
if ((ret == FAIL) &&
|
||||||
|
(strstr(mess,"not implemented") == NULL) &&
|
||||||
|
(strstr(mess,"locked") == NULL) &&
|
||||||
|
(strstr(mess,"-update") == NULL)) {
|
||||||
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||||
if (ret==FAIL) {
|
if (ret==FAIL) {
|
||||||
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||||
std::cout<< "Detector returned error: " << mess << std::endl;
|
std::cout<< "Detector returned error: " << mess << std::endl;
|
||||||
setErrorMask((getErrorMask())|(PROGRAMMING_ERROR));
|
setErrorMask((getErrorMask())|(PROGRAMMING_ERROR));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
disconnectControl();
|
disconnectControl();
|
||||||
if (ret==FORCE_UPDATE)
|
if (ret==FORCE_UPDATE)
|
||||||
updateDetector();
|
updateDetector();
|
||||||
@ -7860,14 +7865,24 @@ int slsDetector::programFPGA(string fname){
|
|||||||
|
|
||||||
|
|
||||||
//remapping stop server
|
//remapping stop server
|
||||||
|
if ((ret == FAIL) &&
|
||||||
|
(strstr(mess,"not implemented") == NULL) &&
|
||||||
|
(strstr(mess,"locked") == NULL) &&
|
||||||
|
(strstr(mess,"-update") == NULL)) {
|
||||||
fnum=F_RESET_FPGA;
|
fnum=F_RESET_FPGA;
|
||||||
int stopret;
|
int stopret;
|
||||||
if (connectStop() == OK){
|
if (connectStop() == OK){
|
||||||
stopSocket->SendDataOnly(&fnum,sizeof(fnum));
|
stopSocket->SendDataOnly(&fnum,sizeof(fnum));
|
||||||
stopSocket->ReceiveDataOnly(&stopret,sizeof(stopret));
|
stopSocket->ReceiveDataOnly(&stopret,sizeof(stopret));
|
||||||
|
if (stopret==FAIL) {
|
||||||
|
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||||
|
std::cout<< "Detector returned error: " << mess << std::endl;
|
||||||
|
setErrorMask((getErrorMask())|(PROGRAMMING_ERROR));
|
||||||
|
}
|
||||||
disconnectControl();
|
disconnectControl();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (ret != FAIL) {
|
if (ret != FAIL) {
|
||||||
printf("You can now restart the detector servers in normal mode.\n");
|
printf("You can now restart the detector servers in normal mode.\n");
|
||||||
}
|
}
|
||||||
|
@ -35,16 +35,16 @@ int main(int argc, char *argv[]){
|
|||||||
int i;
|
int i;
|
||||||
for (i = 1; i < argc; ++i) {
|
for (i = 1; i < argc; ++i) {
|
||||||
if(!strcasecmp(argv[i],"-stopserver")) {
|
if(!strcasecmp(argv[i],"-stopserver")) {
|
||||||
cprintf(BLUE,"detected stop server\n");
|
cprintf(BLUE,"Detected stop server\n");
|
||||||
controlserver = 0;
|
controlserver = 0;
|
||||||
}
|
}
|
||||||
else if(!strcasecmp(argv[i],"-debug")){
|
else if(!strcasecmp(argv[i],"-devel")){
|
||||||
cprintf(BLUE,"detected debug mode\n");
|
cprintf(BLUE,"Detected developer mode\n");
|
||||||
debugflag = 1;
|
debugflag = 1;
|
||||||
}
|
}
|
||||||
#ifdef JUNGFRAUD
|
#ifdef JUNGFRAUD
|
||||||
else if(!strcasecmp(argv[i],"-programming")){
|
else if(!strcasecmp(argv[i],"-update")){
|
||||||
cprintf(BLUE,"detected programming mode\n");
|
cprintf(BLUE,"Detected update mode\n");
|
||||||
debugflag = PROGRAMMING_MODE;
|
debugflag = PROGRAMMING_MODE;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -337,7 +337,7 @@ int M_nofuncMode(int file_des){
|
|||||||
while (n > 0)
|
while (n > 0)
|
||||||
n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER);
|
n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER);
|
||||||
|
|
||||||
strcat(mess, "On-board detector server in programming mode. Restart detector server in normal mode (without any arguments).\n");
|
strcat(mess, "On-board detector server in update mode. Restart detector server in normal mode (without any arguments) to continue.\n");
|
||||||
cprintf(BG_RED,"Error: %s",mess);
|
cprintf(BG_RED,"Error: %s",mess);
|
||||||
n = sendData(file_des,&ret1,sizeof(ret1),INT32);
|
n = sendData(file_des,&ret1,sizeof(ret1),INT32);
|
||||||
n = sendData(file_des,mess,sizeof(mess),OTHER); // mess is defined at function call
|
n = sendData(file_des,mess,sizeof(mess),OTHER); // mess is defined at function call
|
||||||
@ -4954,7 +4954,6 @@ int program_fpga(int file_des) {
|
|||||||
int ret=OK,ret1=OK;
|
int ret=OK,ret1=OK;
|
||||||
int n=0;
|
int n=0;
|
||||||
sprintf(mess,"program FPGA failed\n");
|
sprintf(mess,"program FPGA failed\n");
|
||||||
printf("Programming FPGA...");
|
|
||||||
|
|
||||||
#ifndef JUNGFRAUD
|
#ifndef JUNGFRAUD
|
||||||
//to receive any arguments
|
//to receive any arguments
|
||||||
@ -4964,7 +4963,18 @@ int program_fpga(int file_des) {
|
|||||||
sprintf(mess,"Function (Program FPGA) is not implemented for this detector\n");
|
sprintf(mess,"Function (Program FPGA) is not implemented for this detector\n");
|
||||||
cprintf(RED, "Warning: %s", mess);
|
cprintf(RED, "Warning: %s", mess);
|
||||||
#else
|
#else
|
||||||
|
if (!debugflag) {
|
||||||
|
//to receive any arguments
|
||||||
|
while (n > 0)
|
||||||
|
n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER);
|
||||||
|
ret=FAIL;
|
||||||
|
sprintf(mess,"FPGA cannot be programmed in this mode. "
|
||||||
|
"Restart on-board detector server with -update for update mode to continue.\n");
|
||||||
|
cprintf(RED, "Warning: %s", mess);
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
printf("Programming FPGA...");
|
||||||
size_t filesize = 0;
|
size_t filesize = 0;
|
||||||
size_t totalsize = 0;
|
size_t totalsize = 0;
|
||||||
size_t unitprogramsize = 0;
|
size_t unitprogramsize = 0;
|
||||||
@ -5075,6 +5085,7 @@ int program_fpga(int file_des) {
|
|||||||
#endif
|
#endif
|
||||||
if (ret==OK)
|
if (ret==OK)
|
||||||
ret=FORCE_UPDATE;
|
ret=FORCE_UPDATE;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// ret could be swapped during sendData
|
// ret could be swapped during sendData
|
||||||
@ -5104,8 +5115,7 @@ int reset_fpga(int file_des) {
|
|||||||
while (n > 0)
|
while (n > 0)
|
||||||
n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER);
|
n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER);
|
||||||
ret = FAIL;
|
ret = FAIL;
|
||||||
sprintf(mess,"Function (Start Readout) is not implemented for this detector\n");
|
sprintf(mess,"Function (Reset FPGA) is not implemented for this detector\n"); cprintf(RED, "%s", mess);
|
||||||
cprintf(RED, "%s", mess);
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
// execute action
|
// execute action
|
||||||
|
Loading…
x
Reference in New Issue
Block a user