mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 21:37:13 +02:00
Merge branch 'developer' into hdf5
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user