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;
|
||||
|
||||
//check ending error
|
||||
if ((ret == FAIL) &&
|
||||
(strstr(mess,"not implemented") == NULL) &&
|
||||
(strstr(mess,"locked") == NULL) &&
|
||||
(strstr(mess,"-update") == NULL)) {
|
||||
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||
if (ret==FAIL) {
|
||||
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||
std::cout<< "Detector returned error: " << mess << std::endl;
|
||||
setErrorMask((getErrorMask())|(PROGRAMMING_ERROR));
|
||||
}
|
||||
}
|
||||
disconnectControl();
|
||||
if (ret==FORCE_UPDATE)
|
||||
updateDetector();
|
||||
@ -7860,14 +7865,24 @@ int slsDetector::programFPGA(string fname){
|
||||
|
||||
|
||||
//remapping stop server
|
||||
if ((ret == FAIL) &&
|
||||
(strstr(mess,"not implemented") == NULL) &&
|
||||
(strstr(mess,"locked") == NULL) &&
|
||||
(strstr(mess,"-update") == NULL)) {
|
||||
fnum=F_RESET_FPGA;
|
||||
int stopret;
|
||||
if (connectStop() == OK){
|
||||
stopSocket->SendDataOnly(&fnum,sizeof(fnum));
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (ret != FAIL) {
|
||||
printf("You can now restart the detector servers in normal mode.\n");
|
||||
}
|
||||
|
@ -35,16 +35,16 @@ int main(int argc, char *argv[]){
|
||||
int i;
|
||||
for (i = 1; i < argc; ++i) {
|
||||
if(!strcasecmp(argv[i],"-stopserver")) {
|
||||
cprintf(BLUE,"detected stop server\n");
|
||||
cprintf(BLUE,"Detected stop server\n");
|
||||
controlserver = 0;
|
||||
}
|
||||
else if(!strcasecmp(argv[i],"-debug")){
|
||||
cprintf(BLUE,"detected debug mode\n");
|
||||
else if(!strcasecmp(argv[i],"-devel")){
|
||||
cprintf(BLUE,"Detected developer mode\n");
|
||||
debugflag = 1;
|
||||
}
|
||||
#ifdef JUNGFRAUD
|
||||
else if(!strcasecmp(argv[i],"-programming")){
|
||||
cprintf(BLUE,"detected programming mode\n");
|
||||
else if(!strcasecmp(argv[i],"-update")){
|
||||
cprintf(BLUE,"Detected update mode\n");
|
||||
debugflag = PROGRAMMING_MODE;
|
||||
}
|
||||
#endif
|
||||
|
@ -337,7 +337,7 @@ int M_nofuncMode(int file_des){
|
||||
while (n > 0)
|
||||
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);
|
||||
n = sendData(file_des,&ret1,sizeof(ret1),INT32);
|
||||
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 n=0;
|
||||
sprintf(mess,"program FPGA failed\n");
|
||||
printf("Programming FPGA...");
|
||||
|
||||
#ifndef JUNGFRAUD
|
||||
//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");
|
||||
cprintf(RED, "Warning: %s", mess);
|
||||
#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 totalsize = 0;
|
||||
size_t unitprogramsize = 0;
|
||||
@ -5075,6 +5085,7 @@ int program_fpga(int file_des) {
|
||||
#endif
|
||||
if (ret==OK)
|
||||
ret=FORCE_UPDATE;
|
||||
}
|
||||
#endif
|
||||
|
||||
// ret could be swapped during sendData
|
||||
@ -5104,8 +5115,7 @@ int reset_fpga(int file_des) {
|
||||
while (n > 0)
|
||||
n = receiveData(file_des,mess,MAX_STR_LENGTH,OTHER);
|
||||
ret = FAIL;
|
||||
sprintf(mess,"Function (Start Readout) is not implemented for this detector\n");
|
||||
cprintf(RED, "%s", mess);
|
||||
sprintf(mess,"Function (Reset FPGA) is not implemented for this detector\n"); cprintf(RED, "%s", mess);
|
||||
#else
|
||||
|
||||
// execute action
|
||||
|
Loading…
x
Reference in New Issue
Block a user