From 8aea36b4ef51e75e436feb0ffd90c3aa38481953 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 8 Nov 2016 09:35:34 +0100 Subject: [PATCH] fixed jungfrau configure bug by getting rid of gb10reset at configure --- .../jungfrauDetectorServer/firmware_funcs.c | 6 ++- .../jungfrauDetectorServerv2.2.0 | Bin 126920 -> 126888 bytes .../jungfrauDetectorServer/registers_m.h | 2 +- .../jungfrauDetectorServer/server_funcs.c | 5 +-- .../slsDetector/slsDetectorCommand.cpp | 41 ++++++++++++++++++ .../slsDetector/slsDetectorCommand.h | 2 + 6 files changed, 50 insertions(+), 6 deletions(-) diff --git a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c index 46532b854..4d9ea38c1 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/firmware_funcs.c @@ -167,11 +167,13 @@ void resetFPGA(){ cprintf(BLUE,"\n*** Reseting FPGA ***\n"); FPGAdontTouchFlash(); FPGATouchFlash(); + usleep(250*1000); } void FPGAdontTouchFlash(){ //tell FPGA to not touch flash system("echo 0 > /sys/class/gpio/gpio9/value"); + //usleep(100*1000); } void FPGATouchFlash(){ @@ -1645,7 +1647,7 @@ int configureInterface(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int #endif - bus_w(CONTROL_REG,GB10_RESET_BIT); + //bus_w(CONTROL_REG,GB10_RESET_BIT); //usleep(50 * 1000); bus_w(CONTROL_REG,0); //usleep(500* 1000); @@ -1691,7 +1693,7 @@ int configureMAC(uint32_t destip,uint64_t destmac,uint64_t sourcemac,int source - + /*volatile u_int32_t conf= bus_r(CONFIG_REG);*/ uint32_t sourceport = 0x7e9a; // 0xE185; int interface=0; int ngb; diff --git a/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 b/slsDetectorSoftware/jungfrauDetectorServer/jungfrauDetectorServerv2.2.0 index f39d3b28b0be310b9ca0cda59b407ca45172b88b..787bef067d9ba7e7c876d11a491cb10cbc81aee9 100755 GIT binary patch delta 53805 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 delta 54411 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 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h index 1fd30a8e2..9e4889e53 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h +++ b/slsDetectorSoftware/jungfrauDetectorServer/registers_m.h @@ -312,7 +312,7 @@ #define RUNSTATE_0_BIT 0x00001000 #define RUNSTATE_1_BIT 0x00002000 #define RUNSTATE_2_BIT 0x00004000 -#define STOPPED_BIT 0x00008000 // error! +#define STOPPED_BIT 0x00008000 // stopped! #define ALL_FIFO_EMPTY_BIT 0x00010000 // data ready #define RUNMACHINE_BUSY_BIT 0x00020000 #define READMACHINE_BUSY_BIT 0x00040000 diff --git a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c index 9eb31029a..1aa941a7b 100755 --- a/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jungfrauDetectorServer/server_funcs.c @@ -58,8 +58,8 @@ int init_detector(int b) { if(b){ defineGPIOpins(); resetFPGA(); - usleep(250*1000); - } + }else + usleep(300*1000); if (mapCSP0()==FAIL) { printf("Could not map memory\n"); @@ -3180,7 +3180,6 @@ int reset_fpga(int file_des) { sprintf(mess,"Reset FPGA unsuccessful\n"); resetFPGA(); - usleep(250*1000); initializeDetector(); ret = FORCE_UPDATE; diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp index ddfd8fa43..e57fc2c48 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.cpp @@ -37,6 +37,9 @@ slsDetectorCommand::slsDetectorCommand(slsDetectorUtils *det) { descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdStatus; i++; + descrToFuncMap[i].m_pFuncName="datastream"; // + descrToFuncMap[i].m_pFuncPtr=&slsDetectorCommand::cmdDataStream; + i++; /* Detector structure configuration and debugging commands */ @@ -1361,6 +1364,44 @@ string slsDetectorCommand::helpStatus(int narg, char *args[], int action) { } + +string slsDetectorCommand::cmdDataStream(int narg, char *args[], int action) { + +#ifdef VERBOSE + cout << string("Executing command ")+string(args[0])+string(" ( ")+cmd+string(" )\n"); +#endif + int ival=-1; + char ans[100]=""; + + myDet->setOnline(ONLINE_FLAG); + myDet->setReceiverOnline(ONLINE_FLAG); + + if (action==HELP_ACTION) + return helpStatus(narg,args,HELP_ACTION); + + if (action==PUT_ACTION) { + if (!sscanf(args[1],"%d",&ival)) + return string ("cannot scan datastream mode"); + + myDet->enableDataStreamingFromReceiver(ival); + } + sprintf(ans,"%d",myDet->enableDataStreamingFromReceiver()); + return string(ans); +} + + +string slsDetectorCommand::helpDataStream(int narg, char *args[], int action) { + + ostringstream os; + if (action==GET_ACTION || action==HELP_ACTION) + os << string("datastream \t gets if zmq data stream from receiver is enabled. \n"); + if (action==PUT_ACTION || action==HELP_ACTION) + os << string("datastream i\t enables/disables the zmq data stream from receiver. \n"); + return os.str(); +} + + + string slsDetectorCommand::cmdFree(int narg, char *args[], int action) { #ifdef VERBOSE diff --git a/slsDetectorSoftware/slsDetector/slsDetectorCommand.h b/slsDetectorSoftware/slsDetector/slsDetectorCommand.h index 454e01f9f..dd8b4c73c 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorCommand.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorCommand.h @@ -38,6 +38,7 @@ class slsDetectorCommand : public virtual slsDetectorDefs { static string helpData(int narg, char *args[], int action); static string helpFrame(int narg, char *args[], int action); static string helpStatus(int narg, char *args[], int action); + static string helpDataStream(int narg, char *args[], int action); static string helpFree(int narg, char *args[], int action); static string helpAdd(int narg, char *args[], int action); static string helpRemove(int narg, char *args[], int action); @@ -109,6 +110,7 @@ class slsDetectorCommand : public virtual slsDetectorDefs { string cmdData(int narg, char *args[], int action); string cmdFrame(int narg, char *args[], int action); string cmdStatus(int narg, char *args[], int action); + string cmdDataStream(int narg, char *args[], int action); string cmdFree(int narg, char *args[], int action); string cmdAdd(int narg, char *args[], int action); string cmdRemove(int narg, char *args[], int action);