flip bytes incorporated

This commit is contained in:
Dhanya Maliakal 2015-06-29 16:52:52 +02:00
parent 47d51674b4
commit 51bd146178
2 changed files with 22 additions and 17 deletions

View File

@ -256,11 +256,11 @@ public:
*/ */
virtual uint32_t getChannel(char *data, int ix, int iy, int dr) { virtual uint32_t getChannel(char *data, int ix, int iy, int dr) {
uint32_t m=0; uint32_t m=0, n = 0;
uint64_t t; uint64_t t;
int numBytes,divFactor,pixelval; int numBytes,divFactor,pixelval;
//cout <<"ix:"<<ix<<" nx:"<<nx<<" iy:"<<ny<<" ny:"<<ny<<" datamap[iy][ix]:"<< dataMap[iy][ix] <<"datasize:"<< dataSize <<endl; //cout <<"ix:"<<ix<<" nx:"<<nx<<" iy:"<<iy<<" 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) { if (ix>=0 && ix<nx && iy>=0 && iy<ny && dataMap[iy][ix]>=0 && dataMap[iy][ix]<dataSize) {
m=dataMask[iy][ix]; m=dataMask[iy][ix];
@ -271,24 +271,29 @@ public:
else if (dr == 16) divFactor = 4; else if (dr == 16) divFactor = 4;
pixelval = numBytes % divFactor; pixelval = numBytes % divFactor;
/*//big endian
newix = ix - pixelval;
*/
}else }else
cprintf(RED,"outside limits\n"); cprintf(RED,"outside limits\n");
if(dr == 4) /*//big endian
//uint8_t value = t >> (pixelval*4); cout <<"value:"<< value << endl; t = ((uint64_t)(*((uint64_t*)(((char*)data)+(dataMap[iy][newix])))));
return ((t >> (pixelval*4)) & 0xf)^m; if(dr == 4) return ((t >> (pixelval*4)) & 0xf)^m;
else if(dr == 8) else if(dr == 8) return ((t >> (pixelval*8)) & 0xff)^m;
//uint8_t value = t >> (pixelval*8); cout <<"value:"<< value << endl; else if(dr == 16) return ((t >> (pixelval*16)) & 0xffff)^m;
return ((t >> (pixelval*8)) & 0xff)^m; else return ((t >> (pixelval*32)) & 0xffffffff)^m;
else if(dr == 16){ */
//uint16_t value = t >> (pixelval*16); cout <<"value:"<< value << endl;
return ((t >> (pixelval*16)) & 0xffff)^m; //little endian
}else{ n = ((uint32_t)(*((uint32_t*)(((char*)data)+(dataMap[iy][ix])))));
//uint32_t value = t >> (pixelval*32); cout <<"value:"<< value << endl; if(dr == 4) return (n & 0xf)^m;
return ((t >> (pixelval*32)) & 0xffffffff)^m; else if(dr == 8) return (n & 0xff)^m;
} else if(dr == 16) return (n & 0xffff)^m;
else return (n & 0xffffffff)^m;
}; };

View File

@ -93,7 +93,7 @@ class slsDetectorData {
void setDataMap(int **dMap=NULL) { void setDataMap(int **dMap=NULL) {
int ip; /* int ip;*/
if (dMap==NULL) { if (dMap==NULL) {
for (int iy=0; iy<ny; iy++) for (int iy=0; iy<ny; iy++)