Merge branch 'developer' into hdf5

This commit is contained in:
Dhanya Maliakal
2017-03-03 10:06:34 +01:00
31 changed files with 2639 additions and 1773 deletions

View File

@ -1463,7 +1463,8 @@ int* multiSlsDetector::getDataFromDetector() {
if(!nodatadetectortype)
retval=new int[nel];
p=retval;
// cout << "multi: " << thisMultiDetector->dataBytes << endl;
for (int id=0; id<thisMultiDetector->numberOfDetectors; id++) {
if (detectors[id]) {
@ -1807,6 +1808,8 @@ int64_t multiSlsDetector::setTimer(timerIndex index, int64_t t){
}
}
if (index==SAMPLES_JCTB)
setDynamicRange();
// check return values!!!
thisMultiDetector->timerValue[index]=ret1;
@ -2272,30 +2275,41 @@ slsDetectorDefs::ROI* multiSlsDetector::getROI(int &n){
double* multiSlsDetector::decodeData(int *datain, double *fdata) {
double* multiSlsDetector::decodeData(int *datain, int &nn, double *fdata) {
double *dataout;
if (fdata)
dataout=fdata;
else
dataout=new double[thisMultiDetector->numberOfChannels];
else {
if (detectors[0]->getDetectorsType()==JUNGFRAUCTB) {
nn=thisMultiDetector->dataBytes/2;
dataout=new double[nn];
} else {
nn=thisMultiDetector->numberOfChannels;
dataout=new double[nn];
}
}
// int ich=0;
int n;
double *detp=dataout;
int *datap=datain;
for (int i=0; i<thisMultiDetector->numberOfDetectors; i++) {
if (detectors[i]) {
detectors[i]->decodeData(datap, detp);
detectors[i]->decodeData(datap, n, detp);
if(detectors[i]->getErrorMask())
setErrorMask(getErrorMask()|(1<<i));
#ifdef VERBOSE
cout << "increment pointers " << endl;
#endif
#endif
datap+=detectors[i]->getDataBytes()/sizeof(int);
detp+=detectors[i]->getTotalNumberOfChannels();
detp+=n;
// if (detectors[0]->getDetectorsType()==JUNGFRAUCTB) {
// detp+=detectors[i]->getDataBytes()/2;
// } else {
// detp+=detectors[i]->getTotalNumberOfChannels();
// }
#ifdef VERBOSE
cout << "done " << endl;
#endif
@ -3731,6 +3745,7 @@ int multiSlsDetector::setDynamicRange(int p) {
if(detectors[idet]->getErrorMask())
setErrorMask(getErrorMask()|(1<<idet));
thisMultiDetector->dataBytes+=detectors[idet]->getDataBytes();
// cout << "db " << idet << " " << detectors[idet]->getDataBytes() << endl;
thisMultiDetector->numberOfChannels+=detectors[idet]->getTotalNumberOfChannels();
if (ret==-100)
ret=ret1;
@ -5196,6 +5211,7 @@ int multiSlsDetector::getData(const int isocket, const bool masking, int* image,
void multiSlsDetector::readFrameFromReceiver(){
//determine number of half readouts and maxX and maxY
@ -5259,7 +5275,7 @@ void multiSlsDetector::readFrameFromReceiver(){
return;
}
int* multiframe=new int[nel]();
int nch;
volatile uint64_t dataThreadMask = 0x0;
@ -5335,7 +5351,7 @@ void multiSlsDetector::readFrameFromReceiver(){
//send data to callback
if(running){
fdata = decodeData(multiframe);
fdata = decodeData(multiframe,nch);
if ((fdata) && (dataReady)){
thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentFileName.c_str(),nx,ny);
dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg);
@ -5356,8 +5372,6 @@ void multiSlsDetector::readFrameFromReceiver(){
}
int multiSlsDetector::lockReceiver(int lock) {
int ret=-100, ret1;