From 861753a5d12b928ae953440fd6ed1c6e574b5d0f Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 16 Jun 2015 11:59:07 +0200 Subject: [PATCH] formatted changes made by Martin, which inclded resolving fifo full problem, first frame problem; 32 bit mode sub frame and 16 byte ignore --- slsDetectorSoftware/eigerDetectorServer/Beb.c | 191 +++++++++--------- .../eigerDetectorServer/FebRegisterDefs.h | 19 +- .../bin/eigerDetectorServer | Bin 242151 -> 242151 bytes .../eigerDetectorServer/gitInfo.txt | 16 +- .../eigerDetectorServer/gitInfoEiger.h | 12 +- .../slsDetectorFunctionList.c | 17 -- .../eigerDetectorServer/xparameters.h | 2 +- slsDetectorSoftware/gitInfo.txt | 16 +- .../gotthardDetectorServer/gitInfo.txt | 16 +- .../gotthardDetectorServer/gitInfoGotthard.h | 12 +- .../moenchDetectorServer/gitInfo.txt | 16 +- .../moenchDetectorServer/gitInfoMoench.h | 12 +- .../mythenDetectorServer/gitInfo.txt | 16 +- .../mythenDetectorServer/gitInfoMythen.h | 12 +- slsDetectorSoftware/slsDetector/gitInfoLib.h | 12 +- 15 files changed, 178 insertions(+), 191 deletions(-) diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.c b/slsDetectorSoftware/eigerDetectorServer/Beb.c index 771dc74ce..64f78e1cc 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.c +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.c @@ -546,22 +546,22 @@ int Beb_SetUpTransferParameters(short the_bit_mode){ int Beb_StopAcquisition() { u_int32_t baseaddr; - u_int32_t valuel,valuer; + volatile u_int32_t valuel,valuer; //open file pointer - int fd = Beb_open(XPAR_STOP_ACQUISITION,&baseaddr); + int fd = Beb_open(XPAR_CMD_GENERATOR,&baseaddr); if(fd < 0){ cprintf(RED,"Beb Stop Acquisition FAIL\n"); return 0; }else{ //find value - valuel = Beb_Read32(baseaddr, STOP_ACQUISITION_LEFT_OFFSET); - valuer = Beb_Read32(baseaddr, STOP_ACQUISITION_RIGHT_OFFSET); + valuel = Beb_Read32(baseaddr, (LEFT_OFFSET+STOP_ACQ_OFFSET)); + valuer = Beb_Read32(baseaddr, (RIGHT_OFFSET+STOP_ACQ_OFFSET)); //high - Beb_Write32(baseaddr, STOP_ACQUISITION_LEFT_OFFSET,(valuel|STOP_ACQUISITION_BIT)); - Beb_Write32(baseaddr, STOP_ACQUISITION_RIGHT_OFFSET,(valuer|STOP_ACQUISITION_BIT)); + Beb_Write32(baseaddr, (LEFT_OFFSET + STOP_ACQ_OFFSET),(valuel|STOP_ACQ_BIT)); + Beb_Write32(baseaddr, (RIGHT_OFFSET + STOP_ACQ_OFFSET),(valuer|STOP_ACQ_BIT)); //low - Beb_Write32(baseaddr, STOP_ACQUISITION_LEFT_OFFSET,(valuel&(~STOP_ACQUISITION_BIT))); - Beb_Write32(baseaddr, STOP_ACQUISITION_RIGHT_OFFSET,(valuer&(~STOP_ACQUISITION_BIT))); + Beb_Write32(baseaddr, (LEFT_OFFSET + STOP_ACQ_OFFSET),(valuel&(~STOP_ACQ_BIT))); + Beb_Write32(baseaddr, (RIGHT_OFFSET + STOP_ACQ_OFFSET),(valuer&(~STOP_ACQ_BIT))); printf("Beb Stop Acquisition OK\n"); //close file pointer @@ -571,124 +571,117 @@ int Beb_StopAcquisition() } int Beb_RequestNImages(unsigned int beb_number, int ten_gig, unsigned int dst_number, unsigned int nimages, int test_just_send_out_packets_no_wait){ - if(dst_number>64) return 0; + if(dst_number>64) return 0; - unsigned int header_size = 4; //4*64 bits - unsigned int packet_size = ten_gig ? 0x200 : 0x80; // 4k or 1k packets - unsigned int npackets = ten_gig ? Beb_bit_mode*4 : Beb_bit_mode*16; - int in_two_requests = (!ten_gig&&Beb_bit_mode==32); + unsigned int header_size = 4; //4*64 bits + unsigned int packet_size = ten_gig ? 0x200 : 0x80; // 4k or 1k packets + unsigned int npackets = ten_gig ? Beb_bit_mode*4 : Beb_bit_mode*16; + int in_two_requests = (!ten_gig&&Beb_bit_mode==32); - volatile u_int32_t* ptrl; - volatile u_int32_t* ptrr; - u_int32_t send_header_command; - u_int32_t send_frame_command; + // volatile u_int32_t* ptrl; + // volatile u_int32_t* ptrr; + u_int32_t send_header_command; + u_int32_t send_frame_command; - if(in_two_requests) npackets/=2; + if(in_two_requests) npackets/=2; #ifdef MARTIN - cprintf(RED, "----Beb_RequestNImages Start----\n"); - cprintf(RED, "beb_number:%X, ten_gig:%X,dst_number:%X,npackets:%X,Beb_bit_mode:%X,header_size:%X,nimages:%d,test_just_send_out_packets_no_wait:%X\n",beb_number,ten_gig,dst_number,npackets,Beb_bit_mode,header_size,nimages,test_just_send_out_packets_no_wait); + cprintf(RED, "----Beb_RequestNImages Start----\n"); + cprintf(RED, "beb_number:%X, ten_gig:%X,dst_number:%X,npackets:%X,Beb_bit_mode:%X,header_size:%X,nimages:%d,test_just_send_out_packets_no_wait:%X\n",beb_number,ten_gig,dst_number,npackets,Beb_bit_mode,header_size,nimages,test_just_send_out_packets_no_wait); #endif - // CMD_GEN core registers - // - // base for left feb fpga + 0x000 - // base for right feb fpga + 0x100 Bytes - // - // OFFSETs given in Bytes - // base+00 0xC0DE0001 (static r/o) - // base+04 0x636D6467 (static r/o, ASCII for "CMDG") - // - // base+08 1st 32bits of 1st command - // base+0c 2nd 32bits of 1st command - // - // base+10 1st 32bits of 2nd command - // base+14 2nd 32bits of 2nd command - // - // base+1c command counter (sends n commands) - // <32 Bit mode : 2 commands for 1 frame neccessary (header + frame) (10 frames = 20 commands) - // 32 Bit mode : 3 commands for 1 frame neccessary (header + 1st halfframe + 2nd halfframe) (10 frames = 30 commands) - // if > 0 core starts operation - // - // base+20 command mode (for 32 bit mode) - // 0 for 2 command mode (send 1st command and 2nd command) (header + frame) - // 1 on bit 31 for 3 command mode (send 1st command, 2nd command, and 2nd command) (header + 1st halfframe + 2nd halfframe) - // - // - // Warning: Hard coded base address 0xc5000000 (TBD) - // + // CMD_GEN core registers + // + // base for left feb fpga + 0x000 + // base for right feb fpga + 0x100 Bytes + // + // OFFSETs given in Bytes + // base+00 0xC0DE0001 (static r/o) + // base+04 0x636D6467 (static r/o, ASCII for "CMDG") + // + // base+08 1st 32bits of 1st command + // base+0c 2nd 32bits of 1st command + // + // base+10 1st 32bits of 2nd command + // base+14 2nd 32bits of 2nd command + // + // base+18 command counter (sends n commands) + // <32 Bit mode : 2 commands for 1 frame neccessary (header + frame) (10 frames = 20 commands) + // 32 Bit mode : 3 commands for 1 frame neccessary (header + 1st halfframe + 2nd halfframe) (10 frames = 30 commands) + // if > 0 core starts operation + // + // base+1c command mode (for 32 bit mode) + // 0 for 2 command mode (send 1st command and 2nd command) (header + frame) + // 1 on bit 31 for 3 command mode (send 1st command, 2nd command, and 2nd command) (header + 1st halfframe + 2nd halfframe) + // + // + // Warning: Hard coded base address 0xc5000000 (TBD) + // - // Mapping - int fd; - fd = open("/dev/mem", O_RDWR | O_SYNC, 0); - if (fd == -1) - { - printf("\nCan't find /dev/mem!\n"); - return 0; - } - u_int32_t CSP0BASE = (u_int32_t)mmap(0, 0x1000, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, 0xC5000000 ); - if (CSP0BASE == (u_int32_t)MAP_FAILED) - { - printf("\nCan't map memmory area!!\n"); - return 0; - } - - ptrl = (u_int32_t*)(CSP0BASE); - ptrr = (u_int32_t*)(CSP0BASE+0x100); + u_int32_t right_port_value = 0x2000; + u_int32_t baseaddr; + volatile u_int32_t value; + //open file pointer + int fd = Beb_open(XPAR_CMD_GENERATOR,&baseaddr); + if(fd < 0){ + cprintf(RED,"Beb Request N Images FAIL\n"); + return 0; + }else{ #ifdef MARTIN - int i; - for (i=0; i < 10; i++) - printf("%X\n",*(ptrl+i)); + int i; + for (i=0; i < 10; i++) + printf("%X\n",Beb_Read32(baseaddr, (LEFT_OFFSET + i*4))); #endif - - // Generating commands - send_header_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | header_size << 14 | 0; - send_frame_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | packet_size << 14 | (npackets-1); + // Generating commands + send_header_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | header_size << 14 | 0; + send_frame_command = 0x62000000 | (!test_just_send_out_packets_no_wait) << 27 | (ten_gig==1) << 24 | packet_size << 14 | (npackets-1); #ifdef MARTIN - for (i=0; i < 10; i++) - printf("%X\n",*(ptrl+i)); - printf("%d\n",in_two_requests); + for (i=0; i < 10; i++) + printf("%X\n",Beb_Read32(baseaddr, (LEFT_OFFSET + i*4))); + printf("%d\n",in_two_requests); #endif - // Wait until last command was send successfully -// while (*(ptrl+6) != 0); -// while (*(ptrr+6) != 0); + //"0x20 << 8" is dst_number (0x00 for left, 0x20 for right) + //Left + Beb_Write32(baseaddr, (LEFT_OFFSET + FIRST_CMD_PART1_OFFSET),0); + Beb_Write32(baseaddr, (LEFT_OFFSET + FIRST_CMD_PART2_OFFSET),send_header_command); + Beb_Write32(baseaddr, (LEFT_OFFSET + SECOND_CMD_PART1_OFFSET),0); + Beb_Write32(baseaddr, (LEFT_OFFSET + SECOND_CMD_PART2_OFFSET),send_frame_command); + value = Beb_Read32(baseaddr,(LEFT_OFFSET + TWO_REQUESTS_OFFSET)); + if(in_two_requests) Beb_Write32(baseaddr, (LEFT_OFFSET + TWO_REQUESTS_OFFSET),(value | TWO_REQUESTS_BIT)); + else Beb_Write32(baseaddr, (LEFT_OFFSET + TWO_REQUESTS_OFFSET),(value &~(TWO_REQUESTS_BIT))); - //"0x20 << 8" is dst_number (0x00 for left, 0x20 for right) - //Left - *(ptrl+2) = 0; - *(ptrl+3) = send_header_command; - *(ptrl+4) = 0; - *(ptrl+5) = send_frame_command; - *(ptrl+7) = in_two_requests << 31; + // Right + Beb_Write32(baseaddr, (RIGHT_OFFSET + FIRST_CMD_PART1_OFFSET),0); + Beb_Write32(baseaddr, (RIGHT_OFFSET + FIRST_CMD_PART2_OFFSET),send_header_command | right_port_value); + Beb_Write32(baseaddr, (RIGHT_OFFSET + SECOND_CMD_PART1_OFFSET),0); + Beb_Write32(baseaddr, (RIGHT_OFFSET + SECOND_CMD_PART2_OFFSET),send_frame_command | right_port_value); + value = Beb_Read32(baseaddr,(RIGHT_OFFSET + TWO_REQUESTS_OFFSET)); + if(in_two_requests) Beb_Write32(baseaddr, (RIGHT_OFFSET + TWO_REQUESTS_OFFSET),(value | TWO_REQUESTS_BIT)); + else Beb_Write32(baseaddr, (RIGHT_OFFSET + TWO_REQUESTS_OFFSET),(value &~(TWO_REQUESTS_BIT))); - // Right - *(ptrr+2) = 0; - *(ptrr+3) = send_header_command | 0x2000; - *(ptrr+4) = 0; - *(ptrr+5) = send_frame_command | 0x2000; - *(ptrr+7) = in_two_requests | (in_two_requests << 31); - // Set number of frames - *(ptrl+6) = nimages*(2+in_two_requests); - *(ptrr+6) = nimages*(2+in_two_requests); + // Set number of frames + Beb_Write32(baseaddr, (LEFT_OFFSET + COMMAND_COUNTER_OFFSET), nimages*(2+in_two_requests)); + Beb_Write32(baseaddr, (RIGHT_OFFSET + COMMAND_COUNTER_OFFSET), nimages*(2+in_two_requests)); #ifdef MARTIN - for (i=0; i < 10; i++) - printf("%X\n",*(ptrl+i)); - printf("%d\n",in_two_requests); + for (i=0; i < 10; i++) + printf("%X\n",Beb_Read32(baseaddr, (LEFT_OFFSET + i*4))); //*(ptrl+i)); + printf("%d\n",in_two_requests); #endif - close(fd); + Beb_close(fd); #ifdef MARTIN - cprintf(RED, "----Beb_RequestNImages----\n"); + printf("----Beb_RequestNImages----\n"); #endif + } - return 1; + return 1; } diff --git a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h index 1d2d680d7..1f9b522c1 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h @@ -115,8 +115,19 @@ #define MASTER_BIT_MASK 0x200 // Master Slave Top Bottom Definition #define MODULE_CONFIGURATION_MASK 0x84 -//stop acquisition offsets -#define STOP_ACQUISITION_LEFT_OFFSET 0x01c -#define STOP_ACQUISITION_RIGHT_OFFSET 0x11c -#define STOP_ACQUISITION_BIT 0x40000000 + +//new memory +#define LEFT_OFFSET 0x0 +#define RIGHT_OFFSET 0x100 + +#define FIRST_CMD_PART1_OFFSET 0x8 +#define FIRST_CMD_PART2_OFFSET 0xc +#define SECOND_CMD_PART1_OFFSET 0x10 +#define SECOND_CMD_PART2_OFFSET 0x14 +#define COMMAND_COUNTER_OFFSET 0x18 +#define STOP_ACQ_OFFSET 0x1c +#define STOP_ACQ_BIT 0x40000000 +#define TWO_REQUESTS_OFFSET 0x1c +#define TWO_REQUESTS_BIT 0x80000000 + diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer index d0b7e96d96f6da5865aaf2594a8f9cc9ba1f6710..2aa58e4fad06b5e18982e46d55f6d3a1aaa25559 100755 GIT binary patch delta 13775 zcmcJ0e_T~n*7sTa-iv^M2L%QBb@`#9qFjR%6%&moFN%g{g-UrfO-xi𝔒f;)q3s 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

dYp0>J3n=YJ#=qFx#uiDkRAMZCL;-<) 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 B7)$^F delta 13626 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 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt index 22fe3ca19..41499c1aa 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer -URL: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/eigerDetectorServer -Repository Root: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git -Repsitory UUID: eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3 -Revision: 107 -Branch: gemma -Last Changed Author: Maliakal_Dhanya -Last Changed Rev: 288 -Last Changed Date: 2014-12-08 10:16:31 +0100 +URL: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/eigerDetectorServer +Repository Root: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git +Repsitory UUID: b3dc8271bc5b101e2a973f5d520934ba67ad47fe +Revision: 139 +Branch: master +Last Changed Author: Dhanya_Maliakal +Last Changed Rev: 299 +Last Changed Date: 2015-06-15 17:41:48 +0200 diff --git a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h index 2524cb5c7..a1912321b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h +++ b/slsDetectorSoftware/eigerDetectorServer/gitInfoEiger.h @@ -1,11 +1,11 @@ //#define SVNPATH "" -#define SVNURL "git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/eigerDetectorServer" +#define SVNURL "maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/eigerDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3" -//#define SVNREV 0x288 +#define SVNREPUUID "b3dc8271bc5b101e2a973f5d520934ba67ad47fe" +//#define SVNREV 0x299 //#define SVNKIND "" //#define SVNSCHED "" -#define SVNAUTH "Maliakal_Dhanya" -#define SVNREV 0x288 -#define SVNDATE 0x20141208 +#define SVNAUTH "Dhanya_Maliakal" +#define SVNREV 0x299 +#define SVNDATE 0x20150615 // diff --git a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c index 88339bf3f..5f5ccd92f 100644 --- a/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorSoftware/eigerDetectorServer/slsDetectorFunctionList.c @@ -233,23 +233,6 @@ int getDetectorNumber(){ perror("gethostname"); sscanf(hostname,"%x",&res); return res; - - - /* - char output[255]=""; - int res=0; - FILE* sysFile = popen("hostname", "r"); - fgets(output, sizeof(output), sysFile); - pclose(sysFile); - sscanf(output,"%x",&res); - return res; - */ - /* - int res=0; - char hostname[100] = "beb000"; - sscanf(hostname,"%x",&res); - return res; - */ } diff --git a/slsDetectorSoftware/eigerDetectorServer/xparameters.h b/slsDetectorSoftware/eigerDetectorServer/xparameters.h index ed044fdb6..191bd6e2f 100644 --- a/slsDetectorSoftware/eigerDetectorServer/xparameters.h +++ b/slsDetectorSoftware/eigerDetectorServer/xparameters.h @@ -50,7 +50,7 @@ XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR #define XPAR_PLB_GPIO_SYS_HIGHADDR 0xD100FFFF /** Stop Acquisition */ -#define XPAR_STOP_ACQUISITION 0xC5000000 +#define XPAR_CMD_GENERATOR 0xC5000000 /* Definitions for peripheral PLB_GPIO_TEST */ #define XPAR_PLB_GPIO_TEST_BASEADDR 0xD1010000 diff --git a/slsDetectorSoftware/gitInfo.txt b/slsDetectorSoftware/gitInfo.txt index 9735ccc14..aac149b78 100644 --- a/slsDetectorSoftware/gitInfo.txt +++ b/slsDetectorSoftware/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware -URL: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git -Repository Root: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git -Repsitory UUID: eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3 -Revision: 882 -Branch: gemma -Last Changed Author: Maliakal_Dhanya -Last Changed Rev: 882 -Last Changed Date: 2014-12-08 10:16:31 +0100 +URL: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git +Repository Root: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git +Repsitory UUID: b3dc8271bc5b101e2a973f5d520934ba67ad47fe +Revision: 943 +Branch: master +Last Changed Author: Dhanya_Maliakal +Last Changed Rev: 943 +Last Changed Date: 2015-06-15 17:41:48 +0200 diff --git a/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt b/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt index 66efcacee..32d7b3f0d 100644 --- a/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/gotthardDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/gotthardDetectorServer -URL: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/gotthardDetectorServer -Repository Root: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git -Repsitory UUID: eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3 -Revision: 177 -Branch: gemma -Last Changed Author: Maliakal_Dhanya -Last Changed Rev: 288 -Last Changed Date: 2014-12-08 10:16:31 +0100 +URL: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/gotthardDetectorServer +Repository Root: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git +Repsitory UUID: b3dc8271bc5b101e2a973f5d520934ba67ad47fe +Revision: 178 +Branch: master +Last Changed Author: Dhanya_Maliakal +Last Changed Rev: 299 +Last Changed Date: 2015-06-15 17:41:48 +0200 diff --git a/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h b/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h index 462c60eec..03d1202df 100644 --- a/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h +++ b/slsDetectorSoftware/gotthardDetectorServer/gitInfoGotthard.h @@ -1,11 +1,11 @@ //#define SVNPATH "" -#define SVNURL "git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/gotthardDetectorServer" +#define SVNURL "maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/gotthardDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3" -//#define SVNREV 0x288 +#define SVNREPUUID "b3dc8271bc5b101e2a973f5d520934ba67ad47fe" +//#define SVNREV 0x299 //#define SVNKIND "" //#define SVNSCHED "" -#define SVNAUTH "Maliakal_Dhanya" -#define SVNREV 0x288 -#define SVNDATE 0x20141208 +#define SVNAUTH "Dhanya_Maliakal" +#define SVNREV 0x299 +#define SVNDATE 0x20150615 // diff --git a/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt b/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt index fc2f21255..cb0803a19 100644 --- a/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/moenchDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/moenchDetectorServer -URL: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/moenchDetectorServer -Repository Root: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git -Repsitory UUID: eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3 -Revision: 64 -Branch: gemma -Last Changed Author: Maliakal_Dhanya -Last Changed Rev: 288 -Last Changed Date: 2014-12-08 10:16:31 +0100 +URL: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/moenchDetectorServer +Repository Root: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git +Repsitory UUID: b3dc8271bc5b101e2a973f5d520934ba67ad47fe +Revision: 65 +Branch: master +Last Changed Author: Dhanya_Maliakal +Last Changed Rev: 299 +Last Changed Date: 2015-06-15 17:41:48 +0200 diff --git a/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h b/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h index 781125be9..9e3b823f9 100644 --- a/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h +++ b/slsDetectorSoftware/moenchDetectorServer/gitInfoMoench.h @@ -1,11 +1,11 @@ //#define SVNPATH "" -#define SVNURL "git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/moenchDetectorServer" +#define SVNURL "maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/moenchDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3" -//#define SVNREV 0x288 +#define SVNREPUUID "b3dc8271bc5b101e2a973f5d520934ba67ad47fe" +//#define SVNREV 0x299 //#define SVNKIND "" //#define SVNSCHED "" -#define SVNAUTH "Maliakal_Dhanya" -#define SVNREV 0x288 -#define SVNDATE 0x20141208 +#define SVNAUTH "Dhanya_Maliakal" +#define SVNREV 0x299 +#define SVNDATE 0x20150615 // diff --git a/slsDetectorSoftware/mythenDetectorServer/gitInfo.txt b/slsDetectorSoftware/mythenDetectorServer/gitInfo.txt index 8f0dca720..ed3f7219e 100644 --- a/slsDetectorSoftware/mythenDetectorServer/gitInfo.txt +++ b/slsDetectorSoftware/mythenDetectorServer/gitInfo.txt @@ -1,9 +1,9 @@ Path: slsDetectorsPackage/slsDetectorSoftware/mythenDetectorServer -URL: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/mythenDetectorServer -Repository Root: origin git@gitorious.psi.ch:sls_det_software/sls_detector_software.git -Repsitory UUID: eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3 -Revision: 93 -Branch: gemma -Last Changed Author: Maliakal_Dhanya -Last Changed Rev: 288 -Last Changed Date: 2014-12-08 10:16:31 +0100 +URL: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/mythenDetectorServer +Repository Root: origin maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git +Repsitory UUID: b3dc8271bc5b101e2a973f5d520934ba67ad47fe +Revision: 94 +Branch: master +Last Changed Author: Dhanya_Maliakal +Last Changed Rev: 299 +Last Changed Date: 2015-06-15 17:41:48 +0200 diff --git a/slsDetectorSoftware/mythenDetectorServer/gitInfoMythen.h b/slsDetectorSoftware/mythenDetectorServer/gitInfoMythen.h index 722d27e7e..d48ea4c4b 100644 --- a/slsDetectorSoftware/mythenDetectorServer/gitInfoMythen.h +++ b/slsDetectorSoftware/mythenDetectorServer/gitInfoMythen.h @@ -1,11 +1,11 @@ //#define SVNPATH "" -#define SVNURL "git@gitorious.psi.ch:sls_det_software/sls_detector_software.git/mythenDetectorServer" +#define SVNURL "maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git/mythenDetectorServer" //#define SVNREPPATH "" -#define SVNREPUUID "eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3" -//#define SVNREV 0x288 +#define SVNREPUUID "b3dc8271bc5b101e2a973f5d520934ba67ad47fe" +//#define SVNREV 0x299 //#define SVNKIND "" //#define SVNSCHED "" -#define SVNAUTH "Maliakal_Dhanya" -#define SVNREV 0x288 -#define SVNDATE 0x20141208 +#define SVNAUTH "Dhanya_Maliakal" +#define SVNREV 0x299 +#define SVNDATE 0x20150615 // diff --git a/slsDetectorSoftware/slsDetector/gitInfoLib.h b/slsDetectorSoftware/slsDetector/gitInfoLib.h index 35e43998b..7afc9ded0 100644 --- a/slsDetectorSoftware/slsDetector/gitInfoLib.h +++ b/slsDetectorSoftware/slsDetector/gitInfoLib.h @@ -1,11 +1,11 @@ //#define SVNPATH "" -#define SVNURLLIB "git@gitorious.psi.ch:sls_det_software/sls_detector_software.git" +#define SVNURLLIB "maliakal_d@gitorious.psi.ch:sls_det_software/sls_detector_software.git" //#define SVNREPPATH "" -#define SVNREPUUIDLIB "eff6ffc4c32edd46844d2cd1670cd4d4e7d05ca3" -//#define SVNREV 0x882 +#define SVNREPUUIDLIB "b3dc8271bc5b101e2a973f5d520934ba67ad47fe" +//#define SVNREV 0x943 //#define SVNKIND "" //#define SVNSCHED "" -#define SVNAUTHLIB "Maliakal_Dhanya" -#define SVNREVLIB 0x882 -#define SVNDATELIB 0x20141208 +#define SVNAUTHLIB "Dhanya_Maliakal" +#define SVNREVLIB 0x943 +#define SVNDATELIB 0x20150615 //