mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-16 22:23:22 +01:00
Adedde sturctures for moench03 10Gb data
This commit is contained in:
@@ -40,8 +40,8 @@ class slsDetectorData {
|
||||
slsDetectorData(int npx, int npy, int dsize, int **dMap=NULL, dataType **dMask=NULL, int **dROI=NULL): nx(npx), ny(npy), dataSize(dsize) {
|
||||
|
||||
|
||||
xmap=new int[nx*ny];
|
||||
ymap=new int[nx*ny];
|
||||
xmap=new int[dsize/sizeof(dataType)];
|
||||
ymap=new int[dsize/sizeof(dataType)];
|
||||
|
||||
dataMask=new dataType*[ny];
|
||||
for(int i = 0; i < ny; i++) {
|
||||
@@ -228,42 +228,44 @@ class slsDetectorData {
|
||||
virtual dataType getChannel(char *data, int ix, int iy, int dr) {
|
||||
dataType m=0;
|
||||
uint64_t t;
|
||||
int numBytes,divFactor,newix,pixelval;
|
||||
|
||||
//cout <<"ix:"<<ix<<" nx:"<<nx<<" iy:"<<ny<<" ny:"<<ny<<" datamap[iy][ix]:"<< dataMap[iy][ix] <<"datasize:"<< dataSize <<endl;
|
||||
if (ix>=0 && ix<nx && iy>=0 && iy<ny && dataMap[iy][ix]>=0 && dataMap[iy][ix]<dataSize) {
|
||||
m=dataMask[iy][ix];
|
||||
/////All this stuff should go to eiger detector!!!!!!!!!!!!!!!
|
||||
/* int numBytes,divFactor,newix,pixelval; */
|
||||
|
||||
numBytes = (nx * iy + ix);
|
||||
divFactor=2;
|
||||
if(dr == 4) divFactor = 16;
|
||||
else if (dr == 8) divFactor = 8;
|
||||
else if (dr == 16) divFactor = 4;
|
||||
/* //cout <<"ix:"<<ix<<" nx:"<<nx<<" iy:"<<ny<<" ny:"<<ny<<" datamap[iy][ix]:"<< dataMap[iy][ix] <<"datasize:"<< dataSize <<endl; */
|
||||
/* if (ix>=0 && ix<nx && iy>=0 && iy<ny && dataMap[iy][ix]>=0 && dataMap[iy][ix]<dataSize) { */
|
||||
/* m=dataMask[iy][ix]; */
|
||||
|
||||
pixelval = numBytes % divFactor;
|
||||
newix = ix - pixelval;
|
||||
/* numBytes = (nx * iy + ix); */
|
||||
/* divFactor=2; */
|
||||
/* if(dr == 4) divFactor = 16; */
|
||||
/* else if (dr == 8) divFactor = 8; */
|
||||
/* else if (dr == 16) divFactor = 4; */
|
||||
|
||||
//cout <<"pixelval:"<<pixelval<<" newix:"<<newix<<endl;
|
||||
//cout <<"64:"<< hex<<((uint64_t)(*((uint64_t*)(((char*)data)+(dataMap[iy][newix])))))<<endl;
|
||||
t = (be64toh((uint64_t)(*((uint64_t*)(((char*)data)+(dataMap[iy][newix]))))));
|
||||
//cout<<"t:"<<t<<endl;
|
||||
/* pixelval = numBytes % divFactor; */
|
||||
/* newix = ix - pixelval; */
|
||||
|
||||
}else
|
||||
cprintf(RED,"outside limits\n");
|
||||
/* //cout <<"pixelval:"<<pixelval<<" newix:"<<newix<<endl; */
|
||||
/* //cout <<"64:"<< hex<<((uint64_t)(*((uint64_t*)(((char*)data)+(dataMap[iy][newix])))))<<endl; */
|
||||
/* t = (be64toh((uint64_t)(*((uint64_t*)(((char*)data)+(dataMap[iy][newix])))))); */
|
||||
/* //cout<<"t:"<<t<<endl; */
|
||||
|
||||
if(dr == 4)
|
||||
//uint8_t value = t >> (pixelval*4); cout <<"value:"<< value << endl;
|
||||
return ((t >> (pixelval*4)) & 0xf)^m;
|
||||
else if(dr == 8)
|
||||
//uint8_t value = t >> (pixelval*8); cout <<"value:"<< value << endl;
|
||||
return ((t >> (pixelval*8)) & 0xff)^m;
|
||||
else if(dr == 16){
|
||||
//uint16_t value = t >> (pixelval*16); cout <<"value:"<< value << endl;
|
||||
return ((t >> (pixelval*16)) & 0xffff)^m;
|
||||
}else{
|
||||
//uint32_t value = t >> (pixelval*32); cout <<"value:"<< value << endl;
|
||||
return ((t >> (pixelval*32)) & 0xffffffff)^m;
|
||||
}
|
||||
/* }/\* else *\/ */
|
||||
/* /\* cprintf(RED,"outside limits\n"); *\/ */
|
||||
|
||||
/* if(dr == 4) */
|
||||
/* //uint8_t value = t >> (pixelval*4); cout <<"value:"<< value << endl; */
|
||||
/* return ((t >> (pixelval*4)) & 0xf)^m; */
|
||||
/* else if(dr == 8) */
|
||||
/* //uint8_t value = t >> (pixelval*8); cout <<"value:"<< value << endl; */
|
||||
/* return ((t >> (pixelval*8)) & 0xff)^m; */
|
||||
/* else if(dr == 16){ */
|
||||
/* //uint16_t value = t >> (pixelval*16); cout <<"value:"<< value << endl; */
|
||||
/* return ((t >> (pixelval*16)) & 0xffff)^m; */
|
||||
/* }else{ */
|
||||
/* //uint32_t value = t >> (pixelval*32); cout <<"value:"<< value << endl; */
|
||||
/* return ((t >> (pixelval*32)) & 0xffffffff)^m; */
|
||||
/* } */
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user