basic moench receiver runs with gui

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@521 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d
2013-04-25 09:36:00 +00:00
parent 82ce92e990
commit 6ca969e08f
3 changed files with 28 additions and 25 deletions

View File

@ -80,7 +80,7 @@ int init_detector( int b) {
prepareADC(); prepareADC();
setADC(-1); //already does setdaqreg and clean fifo setADC(-1); //already does setdaqreg and clean fifo
printf("in chip of interes reg:%d\n",bus_r(CHIP_OF_INTRST_REG)); printf("in chip of interes reg:%d\n",bus_r(CHIP_OF_INTRST_REG));
int reg = (GOTTHARDNCHAN*GOTTHARDNCHIP)<<CHANNEL_OFFSET; int reg = /*NCHAN*40;*/(GOTTHARDNCHAN*GOTTHARDNCHIP)<<CHANNEL_OFFSET;
reg&=CHANNEL_MASK; reg&=CHANNEL_MASK;
reg|=ACTIVE_ADC_MASK; reg|=ACTIVE_ADC_MASK;
bus_w(CHIP_OF_INTRST_REG,reg); bus_w(CHIP_OF_INTRST_REG,reg);

View File

@ -14,8 +14,8 @@
#define GOTTHARD_ALIGNED_FRAME_SIZE 4096 #define GOTTHARD_ALIGNED_FRAME_SIZE 4096
#define GOTTHARD_PACKETS_PER_FRAME 2 #define GOTTHARD_PACKETS_PER_FRAME 2
#define GOTTHARD_BUFFER_SIZE 1286*GOTTHARD_PACKETS_PER_FRAME #define GOTTHARD_BUFFER_SIZE (1286*GOTTHARD_PACKETS_PER_FRAME)
#define GOTTHARD_DATA_BYTES 1280*GOTTHARD_PACKETS_PER_FRAME #define GOTTHARD_DATA_BYTES (1280*GOTTHARD_PACKETS_PER_FRAME)
#define GOTTHARD_SHORT_PACKETS_PER_FRAME 1 #define GOTTHARD_SHORT_PACKETS_PER_FRAME 1
#define GOTTHARD_SHORT_BUFFER_SIZE 518 #define GOTTHARD_SHORT_BUFFER_SIZE 518
@ -25,12 +25,12 @@
#define MOENCH_ALIGNED_FRAME_SIZE 65536 #define MOENCH_ALIGNED_FRAME_SIZE 65536
#define MOENCH_PACKETS_PER_FRAME 40 #define MOENCH_PACKETS_PER_FRAME 40
#define MOENCH_BUFFER_SIZE 1286*MOENCH_PACKETS_PER_FRAME #define MOENCH_BUFFER_SIZE (1286*MOENCH_PACKETS_PER_FRAME)
#define MOENCH_DATA_BYTES 1280*MOENCH_PACKETS_PER_FRAME #define MOENCH_DATA_BYTES (1280*MOENCH_PACKETS_PER_FRAME)
#define MOENCH_BYTES_PER_ADC 40*2 #define MOENCH_BYTES_PER_ADC (40*2)
#define MOENCH_PIXELS_IN_ONE_DIMENSION 160 #define MOENCH_PIXELS_IN_ONE_DIMENSION 160
#define MOENCH_BYTES_IN_ONE_DIMENSION MOENCH_PIXELS_IN_ONE_DIMENSION*2 #define MOENCH_BYTES_IN_ONE_DIMENSION (MOENCH_PIXELS_IN_ONE_DIMENSION*2)

View File

@ -888,15 +888,14 @@ int slsReceiverFuncs::moench_read_frame(){
for(i=0;i<rnel;i++) retval[i]=0; for(i=0;i<rnel;i++) retval[i]=0;
for(i=0;i<rnel;i++) origVal[i]=0; for(i=0;i<rnel;i++) origVal[i]=0;
int onebuffersize = bufferSize/MOENCH_PACKETS_PER_FRAME; /*int onebuffersize = bufferSize/MOENCH_PACKETS_PER_FRAME;
int onedatasize = MOENCH_DATA_BYTES/MOENCH_PACKETS_PER_FRAME; int onedatasize = MOENCH_DATA_BYTES/MOENCH_PACKETS_PER_FRAME;*/
int index=-1;//,index2=-1; int index=-1;
int startIndex=-1; int startIndex=-1;
int count=0; int count=0;
int offset=0; int offset=0;
int partsPerFrame;
strcpy(mess,"Could not read frame\n"); strcpy(mess,"Could not read frame\n");
@ -930,31 +929,35 @@ int slsReceiverFuncs::moench_read_frame(){
raw=NULL; raw=NULL;
} }
/* offset = 4;
offset = 4;j=0; j=0;
partsPerFrame = onedatasize/MOENCH_BYTES_PER_ADC;
//filling up in y direction and then in x direcction //filling up in y direction and then in x direcction
for(x=0;x<MOENCH_BYTES_IN_ONE_DIMENSION/MOENCH_BYTES_PER_ADC;x++){ for(x=0;x<(MOENCH_BYTES_IN_ONE_DIMENSION/MOENCH_BYTES_PER_ADC);x++){
for(y=0;j<MOENCH_PIXELS_IN_ONE_DIMENSION;j++){ for(y=0;y<MOENCH_PIXELS_IN_ONE_DIMENSION;y++){
memcpy((((char*)retval) + y*MOENCH_BYTES_IN_ONE_DIMENSION + x*MOENCH_BYTES_PER_ADC), memcpy((((char*)retval) +
(((char*) origVal) + offset + j*MOENCH_BYTES_PER_ADC) , y * MOENCH_BYTES_IN_ONE_DIMENSION +
x * MOENCH_BYTES_PER_ADC),
(((char*) origVal) +
offset +
j * MOENCH_BYTES_PER_ADC) ,
MOENCH_BYTES_PER_ADC); MOENCH_BYTES_PER_ADC);
j++; j++;
//after 1280 bytes(16 parts of 80 bytes), add 6 bytes to offset count++;
if (!(j%partsPerFrame)) if(count==15){
count=0;
offset+=6; offset+=6;
}
} }
} }
*/ /*
for(i=0;i<MOENCH_PACKETS_PER_FRAME;i=i+2){ for(i=0;i<MOENCH_PACKETS_PER_FRAME;i=i+2){
memcpy((((char*)retval)+ onedatasize*i), (((char*) origVal)+4+ onebuffersize*i) , onedatasize); memcpy((((char*)retval)+ onedatasize*i), (((char*) origVal)+4+ onebuffersize*i) , onedatasize);
memcpy((((char*)retval)+ onedatasize*(i+1)), (((char*) origVal)+10+onedatasize+ onebuffersize*i),onedatasize); memcpy((((char*)retval)+ onedatasize*(i+1)), (((char*) origVal)+10+onedatasize+ onebuffersize*i),onedatasize);
} }
*/
arg=((index - startIndex)/MOENCH_PACKETS_PER_FRAME)-1; arg=((index - startIndex)/MOENCH_PACKETS_PER_FRAME)-1;
#ifdef VERBOSE #ifdef VERBOSE
cout << "\nstartIndex:" << startIndex << endl; cout << "\nstartIndex:" << startIndex << endl;