mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-15 06:17:12 +02:00
some more changes for eiger mapping
This commit is contained in:
@ -19,8 +19,8 @@ public:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
eigerHalfModuleData(int np, int dr, int t, int bsize, int dsize, double c=0): slsReceiverData<uint32_t>(xpixels, ypixels, nPackets, bsize),
|
eigerHalfModuleData(int dr, int np, int bsize, int dsize, double c=0): slsReceiverData<uint32_t>(xpixels, ypixels, np, bsize),
|
||||||
xtalk(c), nPackets(np), dynamicRange(dr), bufferSize(bsize), dataSize(dsize){
|
xtalk(c), dynamicRange(dr), bufferSize(bsize), dataSize(dsize){
|
||||||
|
|
||||||
|
|
||||||
int **dMap;
|
int **dMap;
|
||||||
@ -146,7 +146,6 @@ private:
|
|||||||
const static int ypixels = 256;
|
const static int ypixels = 256;
|
||||||
const int bufferSize;
|
const int bufferSize;
|
||||||
const int dataSize;
|
const int dataSize;
|
||||||
const int nPackets;
|
|
||||||
const int dynamicRange;
|
const int dynamicRange;
|
||||||
|
|
||||||
|
|
||||||
|
@ -93,13 +93,15 @@ class slsDetectorData {
|
|||||||
dataMap[iy][ix]=(iy*nx+ix)*sizeof(dataType);
|
dataMap[iy][ix]=(iy*nx+ix)*sizeof(dataType);
|
||||||
} else {
|
} else {
|
||||||
cout << "set dmap "<< dataMap << " " << dMap << endl;
|
cout << "set dmap "<< dataMap << " " << dMap << endl;
|
||||||
for (int iy=0; iy<ny; iy++)
|
for (int iy=0; iy<ny; iy++){
|
||||||
|
// cout << iy << endl;
|
||||||
for (int ix=0; ix<nx; ix++) {
|
for (int ix=0; ix<nx; ix++) {
|
||||||
dataMap[iy][ix]=dMap[iy][ix];
|
dataMap[iy][ix]=dMap[iy][ix];
|
||||||
cout << ix << " " << iy << endl;
|
// cout << ix << " " << iy << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
cout << "nx:" <<nx << " ny:" << ny << endl;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -210,17 +212,33 @@ class slsDetectorData {
|
|||||||
*/
|
*/
|
||||||
virtual dataType getChannel(char *data, int ix, int iy, int dr) {
|
virtual dataType getChannel(char *data, int ix, int iy, int dr) {
|
||||||
dataType m=0, d=0;
|
dataType m=0, d=0;
|
||||||
|
uint8_t d1=0;
|
||||||
|
uint8_t d2=0;
|
||||||
|
uint16_t d3=0;
|
||||||
|
uint32_t d4=0;
|
||||||
|
uint64_t t;
|
||||||
uint64_t* s;
|
uint64_t* s;
|
||||||
|
s= &t;
|
||||||
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];
|
||||||
|
/*
|
||||||
int k = (((ix * iy + iy) * (dr / 8)) % 8);//which byte (1 to 8)
|
int k = (((ix * iy + iy) * (dr / 8)) % 8);//which byte (1 to 8)
|
||||||
int index = (8 - k) * 8;
|
int index = (8 - k) * 8;
|
||||||
s = be64toh(((uint64_t)(*(((uint64_t*)data)+(dataMap[iy][ix]-index)))));
|
t = be64toh(((uint64_t)(*(((uint64_t*)data)+(dataMap[iy][ix]-index)))));
|
||||||
|
|
||||||
d=*((dataType*)(s+(k*8)));
|
d=*((dataType*)(s+(k*8)));
|
||||||
|
*/
|
||||||
|
d=*((dataType*)(data+dataMap[iy][ix]));
|
||||||
}
|
}
|
||||||
return d^m;
|
if(dr == 4)
|
||||||
|
return d^0xf0;
|
||||||
|
else if(dr == 8)
|
||||||
|
return d^d2;
|
||||||
|
else if(dr == 16)
|
||||||
|
return d^d3;
|
||||||
|
else
|
||||||
|
return d^d4;
|
||||||
|
//return d^m;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -90,7 +90,7 @@ public:
|
|||||||
dd+=packetSize;
|
dd+=packetSize;
|
||||||
np++;
|
np++;
|
||||||
// cout << pnum << " " << fn << " " << np << " " << dd << " " << dsize << endl;
|
// cout << pnum << " " << fn << " " << np << " " << dd << " " << dsize << endl;
|
||||||
if (np==nPackets)
|
if (np==nPackets){
|
||||||
if (pnum==nPackets) {
|
if (pnum==nPackets) {
|
||||||
// cout << "Frame found!" << endl;
|
// cout << "Frame found!" << endl;
|
||||||
break;
|
break;
|
||||||
@ -99,6 +99,7 @@ public:
|
|||||||
retval=NULL;
|
retval=NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (np<nPackets) {
|
if (np<nPackets) {
|
||||||
if (np>0)
|
if (np>0)
|
||||||
cout << "Too few packets for this frame! "<< fnum << " " << pnum << endl;
|
cout << "Too few packets for this frame! "<< fnum << " " << pnum << endl;
|
||||||
|
Reference in New Issue
Block a user