From 2176620ca41bbebbca188c668d7492a13e7cf405 Mon Sep 17 00:00:00 2001 From: l_maliakal_d Date: Wed, 30 Jan 2013 14:33:03 +0000 Subject: [PATCH] server should be up to date git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@442 951219d9-93cf-4727-9268-0efd64621fa3 --- .../gotthardDetectorServer/firmware_funcs.c | 29 ++-- .../gotthardDetectorServer/firmware_funcs.h | 1 + .../gotthardDetectorServer/server_funcs.c | 138 +++++++++--------- 3 files changed, 90 insertions(+), 78 deletions(-) diff --git a/slsDetectorSoftware/gotthardDetectorServer/firmware_funcs.c b/slsDetectorSoftware/gotthardDetectorServer/firmware_funcs.c index a87246b01..c838719ac 100755 --- a/slsDetectorSoftware/gotthardDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/gotthardDetectorServer/firmware_funcs.c @@ -30,6 +30,7 @@ int dynamicRange=16;//32; int dataBytes=NMAXMOD*NCHIP*NCHAN*2; int storeInRAM=0; int ROI_flag=0; +int adcConfigured=-1; u_int32_t *ram_values=NULL; volatile char *now_ptr=NULL; volatile u_int16_t *values; @@ -261,9 +262,9 @@ int cleanFifo(){ } reg=bus_r(addr); -#ifdef DDEBUG - printf("\nADC SYNC reg:%x\n",reg); -#endif +//#ifdef DDEBUG + printf("\n***ADC SYNC reg:%x****\n",reg); +//#endif return OK; } @@ -1178,11 +1179,10 @@ int initConfGain(int isettings,int val,int imod){ int configureMAC(int ipad,long long int macad,long long int detectormacad, int detipad, int ival, int adc,int udpport){ - if(runBusy()) - if(stopStateMachine()==FAIL) - return FAIL; - + //update adc configured + adcConfigured = adc; + printf("configuring with adc:%d\n",adc); //setting adc mask int reg; int udpPacketSize=0x050E; @@ -1194,6 +1194,8 @@ int configureMAC(int ipad,long long int macad,long long int detectormacad, int d case 3: case 4: ROI_flag=1; + //setting daqregister + setDAQRegister(adc); reg = (NCHAN*2)<>24)&0xff,(ipad>>16)&0xff,(ipad>>8)&0xff,(ipad)&0xff,ipad); - printf("macad:%llx\n",imacadd); - for (i=0;i<6;i++) - printf("mac adress %d is 0x%x \n",6-i,(unsigned int)(((imacadd>>(8*i))&0xFF))); - printf("udp port:0x%x\n",udpport); - printf("detector macad:%llx\n",idetectormacadd); - for (i=0;i<6;i++) - printf("detector mac adress %d is 0x%x \n",6-i,(unsigned int)(((idetectormacadd>>(8*i))&0xFF))); - printf("detipad %x\n",detipad); - printf("\n"); + int i; + printf("\ndigital_test_bit in server %d\t",digitalTestBit); + printf("\nipadd %x\t",ipad); + printf("destination ip is %d.%d.%d.%d = 0x%x \n",(ipad>>24)&0xff,(ipad>>16)&0xff,(ipad>>8)&0xff,(ipad)&0xff,ipad); + printf("macad:%llx\n",imacadd); + for (i=0;i<6;i++) + printf("mac adress %d is 0x%x \n",6-i,(unsigned int)(((imacadd>>(8*i))&0xFF))); + printf("udp port:0x%x\n",udpport); + printf("detector macad:%llx\n",idetectormacadd); + for (i=0;i<6;i++) + printf("detector mac adress %d is 0x%x \n",6-i,(unsigned int)(((idetectormacadd>>(8*i))&0xFF))); + printf("detipad %x\n",detipad); + printf("\n"); #endif - n = receiveDataOnly(file_des,&adc,sizeof(adc)); - if (n < 0) { - sprintf(mess,"Error reading from socket\n"); - ret=FAIL; - } + n = receiveDataOnly(file_des,&adc,sizeof(adc)); + if (n < 0) { + sprintf(mess,"Error reading from socket\n"); + ret=FAIL; + } - if (imod>=getNModBoard()) - ret=FAIL; - if (imod<0) - imod=ALLMOD; + if (imod>=getNModBoard()) + ret=FAIL; + if (imod<0) + imod=ALLMOD; -//#ifdef VERBOSE - printf("Configuring MAC of module %d and adc %d at port %x\n", imod, adc,udpport); -//#endif + //#ifdef VERBOSE + printf("Configuring MAC of module %d and adc %d at port %x\n", imod, adc,udpport); + //#endif #ifdef MCB_FUNCS - if (ret==OK){ - ret=configureMAC(ipad,imacadd,idetectormacadd,detipad,digitalTestBit,adc,udpport); - if(ret==FAIL) - strcpy(mess,"could not stop detector acquisition to configure mac"); - } + if (ret==OK){ + if(runBusy()){ + ret=stopStateMachine(); + strcpy(mess,"could not stop detector acquisition to configure mac"); + } + + if(ret==OK) + configureMAC(ipad,imacadd,idetectormacadd,detipad,digitalTestBit,adc,udpport); + retval=getAdcConfigured(); + } #endif - if (ret==FAIL) - printf("configuring MAC of mod %d failed\n", imod); + if (ret==FAIL) + printf("configuring MAC of mod %d failed\n", imod); + if (differentClients) + ret=FORCE_UPDATE; - - if (differentClients) - ret=FORCE_UPDATE; - - /* send answer */ - /* send OK/failed */ - n = sendDataOnly(file_des,&ret,sizeof(ret)); - if (ret==FAIL) { - n += sendDataOnly(file_des,mess,sizeof(mess)); - } - - /*return ok/fail*/ - return ret; + /* send answer */ + /* send OK/failed */ + n = sendDataOnly(file_des,&ret,sizeof(ret)); + if (ret==FAIL) + n += sendDataOnly(file_des,mess,sizeof(mess)); + else + n += sendDataOnly(file_des,&retval,sizeof(retval)); + /*return ok/fail*/ + return ret; }