diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.c b/slsDetectorSoftware/eigerDetectorServer/Beb.c index b106339ca..af8888f9b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.c +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.c @@ -510,9 +510,15 @@ int Beb_SendMultiReadRequest(unsigned int beb_number, unsigned int left_right, i Beb_send_data[1] = 0x62000000 | (!stop_read_when_fifo_empty) << 27 | (ten_gig==1) << 24 | packet_size << 14 | dst_number << 8 | npackets; +#ifdef MARTIN + cprintf(GREEN, "Beb_send_data[1]:%X\n",Beb_send_data[1]); +#endif Beb_send_data[2] = 0; Beb_SwapDataFun(0,2,&(Beb_send_data[1])); +#ifdef MARTIN + cprintf(GREEN, "Beb_send_data[1] Swapped:%X\n",Beb_send_data[1]); +#endif if(!Beb_WriteTo(i)) return 0; @@ -559,7 +565,10 @@ int Beb_RequestNImages(unsigned int beb_number, unsigned int left_right, int ten */ - +#ifdef MARTIN + cprintf(RED, "----Beb_RequestNImages Start----\n"); + cprintf(RED, "beb_number:%X, left_right:%X,ten_gig:%X,dst_number:%X,npackets:%X,Beb_bit_mode:%X,header_size:%X,test_just_send_out_packets_no_wait:%X\n",beb_number,left_right,ten_gig,dst_number,npackets,Beb_bit_mode,header_size,test_just_send_out_packets_no_wait); +#endif unsigned int i; for(i=0;i0xfff) return 0; #ifdef MARTIN - printf("FIW ch %d\n", ch); + cprintf(YELLOW, "FIW ch %d\n", ch); #endif Feb_Interface_send_data_raw[0] = 0x8fff0000; diff --git a/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.c b/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.c index ac59d43a9..9e6522764 100644 --- a/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.c +++ b/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.c @@ -6,8 +6,6 @@ #include #include //#include -#include -#include #include "HardwareMMappingDefs.h" @@ -127,9 +125,9 @@ int Local_Write(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buf word_ptr = (unsigned int *)buffer; #ifdef MARTIN - printf("LL Write - Len: %2d - If: %X - Data: ",buffer_len, ll->ll_fifo_base); + cprintf(BLUE, "LL Write - Len: %2d - If: %X - Data: ",buffer_len, ll->ll_fifo_base); for (i=0; i < buffer_len/4; i++) - printf("%.8X ",*(((unsigned *) buffer)+i)); + cprintf(BLUE, "%.8X ",*(((unsigned *) buffer)+i)); printf("\n"); #endif @@ -173,7 +171,7 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff int sof = 0; #ifdef MARTIN - printf("LL Read - If: %X - Data: ",ll->ll_fifo_base); + cprintf(CYAN, "LL Read - If: %X - Data: ",ll->ll_fifo_base); #endif word_ptr = (unsigned int *)buffer; @@ -202,7 +200,7 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff if ( (buffer_len >> 2) > buffer_ptr) { #ifdef MARTIN - printf("%.8X ", fifo_val); + cprintf(CYAN, "%.8X ", fifo_val); #endif word_ptr[buffer_ptr++] = fifo_val; //write to buffer } @@ -216,7 +214,7 @@ int Local_Read(struct LocalLinkInterface* ll,unsigned int buffer_len, void *buff { len = (buffer_ptr << 2) -3 + ( (status & PLB_LL_FIFO_STATUS_LL_REM)>>PLB_LL_FIFO_STATUS_LL_REM_SHIFT ); #ifdef MARTIN - printf("Len: %d\n",len); + cprintf(CYAN, "Len: %d\n",len); #endif // printf(">>>>status=0x%08x EOF len = %d \n\r\n\r",status, len); buffer_ptr = 0; diff --git a/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.cxx b/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.cxx index ce67842e6..a8b3311ac 100644 --- a/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.cxx +++ b/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.cxx @@ -6,8 +6,6 @@ #include #include //#include -#include -#include #include "HardwareMMappingDefs.h" diff --git a/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.h b/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.h index 5a2ca8efe..725f12125 100644 --- a/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.h +++ b/slsDetectorSoftware/eigerDetectorServer/LocalLinkInterface.h @@ -8,6 +8,10 @@ #include "HardwareIO.h" #include +#include "ansi.h" +#include +#include + /*class LocalLinkInterface: public HardwareIO{ //*/ diff --git a/slsDetectorSoftware/eigerDetectorServer/Makefile b/slsDetectorSoftware/eigerDetectorServer/Makefile index 8b15d7a2e..c38c8c455 100755 --- a/slsDetectorSoftware/eigerDetectorServer/Makefile +++ b/slsDetectorSoftware/eigerDetectorServer/Makefile @@ -1,6 +1,6 @@ CC = powerpc-4xx-softfloat-gcc CCX = powerpc-4xx-softfloat-g++ -CFLAGS += -Wall -DDACS_INT -DEIGERD -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSE #-DVIRTUAL -DPCCOMPILE -DMARTIN +CFLAGS += -Wall -DDACS_INT -DEIGERD -DSLS_DETECTOR_FUNCTION_LIST -DDACS_INT -DSTOP_SERVER #-DVERBOSE #-DVIRTUAL -DPCCOMPILE -DMARTIN LDLIBS += -lm -lstdc++ PROGS = eigerDetectorServer diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 4615d2e5c..3deed66e0 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -495,7 +495,7 @@ enum detectorSettings setSettings(enum detectorSettings sett, int imod){ int startReceiver(int d){ - if(master) + //if(master) Feb_Control_PrepareForAcquisition(); return OK; } @@ -503,10 +503,10 @@ int startReceiver(int d){ int startStateMachine(){ int ret; - if(master){ + //if(master){ printf("Going to start acquisition\n"); Feb_Control_StartAcquisition(); - } + //} //do not read status here, cannot get images then @@ -517,7 +517,7 @@ int startStateMachine(){ //if(trialMasterMode == IS_MASTER){ - if(master){ + //if(master){ /* * int i=0; if(getRunStatus() == IDLE){ @@ -535,9 +535,11 @@ int startStateMachine(){ */ - while(getRunStatus() == IDLE); + while(getRunStatus() == IDLE){ + printf("waiting for being not idle anymore\n"); + } printf("*****Acquiring...\n"); - } + //} /*else usleep(1000000); printf("****Returning\n");*/ @@ -1007,4 +1009,9 @@ int getAllTrimbits(){ return *((detectorModules->chanregs)); } +int getBebFPGATemp() +{ + return Beb_GetBebFPGATemp(); +} + #endif diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index 995b431c3..14a0dc2ea 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -131,6 +131,7 @@ int startReceiver(int d); void setExternalGating(int enable[]); void setAllTrimbits(int val); int getAllTrimbits(); +int getBebFPGATemp(); #endif diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index f65df5587..8cfa80dd0 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -1244,7 +1244,7 @@ int set_dac(int file_des) { int get_adc(int file_des) { - int retval; + int retval=-1; int ret=OK,ret1=OK; int arg[2]; enum dacIndex ind; @@ -1271,6 +1271,12 @@ int get_adc(int file_des) { #endif switch (ind) { +#ifdef EIGERD + case TEMPERATURE_FPGA: //dac = TEMP_FPGA; + retval=getBebFPGATemp(); + printf("Temperature: %d°C\n",retval); + break; +#endif #ifdef GOTTHARDD case TEMPERATURE_FPGA: //dac = TEMP_FPGA; break; @@ -1284,7 +1290,7 @@ int get_adc(int file_des) { break; } #ifdef SLS_DETECTOR_FUNCTION_LIST - if (ret==OK) { + if ((ret==OK) && (retval==-1)) { retval=getADC(idac,imod); } #endif