missing packets 0xffff are also anded with the mask, fixed

This commit is contained in:
Dhanya Maliakal 2017-09-29 18:33:41 +02:00
parent fa79a36089
commit 63c0fe863d

View File

@ -2163,6 +2163,7 @@ void qDrawPlot::toDoublePixelData(double* dest, char* source,int size, int datab
int halfbyte=0; int halfbyte=0;
char cbyte = '\0'; char cbyte = '\0';
int mask=0x00ffffff; int mask=0x00ffffff;
bool jungfrau = (detType == slsDetectorDefs::JUNGFRAU);
switch(dr) { switch(dr) {
@ -2184,22 +2185,57 @@ void qDrawPlot::toDoublePixelData(double* dest, char* source,int size, int datab
break; break;
case 16: case 16:
for (ichan = 0; ichan < size; ++ichan) { // jungfrau
if (jungfrau) {
// show gain plot
if(gaindest!=NULL) { if(gaindest!=NULL) {
gaindest[ichan] = ((*((u_int16_t*)source))& 0xC000); for (ichan = 0; ichan < size; ++ichan) {
dest[ichan] = ((*((u_int16_t*)source))& 0x3FFF); if ( (*((u_int16_t*)source)) == 0xFFFF ) {
}else gaindest[ichan] = 0xFFFF;
dest[ichan] = *((u_int16_t*)source); dest[ichan] = 0xFFFF;
source += 2; }
else{
gaindest[ichan] = (((*((u_int16_t*)source)) & 0xC000) >> 14);
dest[ichan] = ((*((u_int16_t*)source)) & 0x3FFF);
}
source += 2;
}
}
// only data plot
else {
for (ichan = 0; ichan < size; ++ichan) {
if ( (*((u_int16_t*)source)) == 0xFFFF )
dest[ichan] = 0xFFFF;
else
dest[ichan] = ((*((u_int16_t*)source)) & 0x3FFF);
source += 2;
}
}
} }
// other detectors
else {
for (ichan = 0; ichan < size; ++ichan) {
dest[ichan] = *((u_int16_t*)source);
source += 2;
}
}
break; break;
default: default:
// mythen
for (ichan=0; ichan < size; ++ichan) { for (ichan=0; ichan < size; ++ichan) {
if (detType == slsDetectorDefs::MYTHEN) dest[ichan] = (*((u_int32_t*)source) & mask);
dest[ichan] = (*((u_int32_t*)source) & mask); source += 4;
else }
dest[ichan] = *((u_int32_t*)source);
// other detectors
for (ichan=0; ichan < size; ++ichan) {
dest[ichan] = *((u_int32_t*)source);
source += 4; source += 4;
} }
break; break;