mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-13 05:17:13 +02:00
bug fixed: must wait to get data for scans
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorGui@71 af1100a4-978c-4157-bff7-07162d2ba061
This commit is contained in:
@ -590,16 +590,19 @@ int qDrawPlot::GetData(detectorData *data){
|
|||||||
if(scanArgument!=None){
|
if(scanArgument!=None){
|
||||||
//alframes
|
//alframes
|
||||||
if(scanArgument==AllFrames){
|
if(scanArgument==AllFrames){
|
||||||
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
while(1){
|
||||||
//variables
|
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
||||||
lastImageNumber= currentFrame+1;
|
//variables
|
||||||
//title
|
lastImageNumber= currentFrame+1;
|
||||||
char temp_title[2000];
|
//title
|
||||||
sprintf(temp_title,"Image Index %d",fileIOStatic::getFileIndexFromFileName(string(data->fileName)));
|
char temp_title[2000];
|
||||||
imageTitle = temp_title;
|
sprintf(temp_title,"Image Index %d",fileIOStatic::getFileIndexFromFileName(string(data->fileName)));
|
||||||
//copy data
|
imageTitle = temp_title;
|
||||||
memcpy(lastImageArray+(currentScanDivLevel*nPixelsX),data->values,nPixelsX*sizeof(double));
|
//copy data
|
||||||
pthread_mutex_unlock(&(last_image_complete_mutex));
|
memcpy(lastImageArray+(currentScanDivLevel*nPixelsX),data->values,nPixelsX*sizeof(double));
|
||||||
|
pthread_mutex_unlock(&(last_image_complete_mutex));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
currentFrame++;
|
currentFrame++;
|
||||||
currentScanDivLevel++;
|
currentScanDivLevel++;
|
||||||
@ -607,18 +610,21 @@ int qDrawPlot::GetData(detectorData *data){
|
|||||||
}
|
}
|
||||||
//file index
|
//file index
|
||||||
if(scanArgument==FileIndex){
|
if(scanArgument==FileIndex){
|
||||||
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
while(1){
|
||||||
//variables
|
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
||||||
int currentIndex = fileIOStatic::getFileIndexFromFileName(string(data->fileName));
|
//variables
|
||||||
if(currentIndex == minPixelsY) currentScanDivLevel = 0;
|
int currentIndex = fileIOStatic::getFileIndexFromFileName(string(data->fileName));
|
||||||
lastImageNumber= currentFrame+1;
|
if(currentIndex == minPixelsY) currentScanDivLevel = 0;
|
||||||
//title
|
lastImageNumber= currentFrame+1;
|
||||||
char temp_title[2000];
|
//title
|
||||||
sprintf(temp_title,"Image Index %d",currentIndex);
|
char temp_title[2000];
|
||||||
imageTitle = temp_title;
|
sprintf(temp_title,"Image Index %d",currentIndex);
|
||||||
//copy data
|
imageTitle = temp_title;
|
||||||
for(unsigned int px=0;px<nPixelsX;px++) lastImageArray[currentScanDivLevel*nPixelsX+px] += data->values[px];
|
//copy data
|
||||||
pthread_mutex_unlock(&(last_image_complete_mutex));
|
for(unsigned int px=0;px<nPixelsX;px++) lastImageArray[currentScanDivLevel*nPixelsX+px] += data->values[px];
|
||||||
|
pthread_mutex_unlock(&(last_image_complete_mutex));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
currentFrame++;
|
currentFrame++;
|
||||||
currentScanDivLevel++;
|
currentScanDivLevel++;
|
||||||
@ -626,16 +632,41 @@ int qDrawPlot::GetData(detectorData *data){
|
|||||||
}
|
}
|
||||||
//level0
|
//level0
|
||||||
if(scanArgument==Level0){
|
if(scanArgument==Level0){
|
||||||
|
while(1){
|
||||||
|
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
||||||
|
//get scanvariable0
|
||||||
|
int currentIndex = 0, p = 0; double cs0 = 0 , cs1 = 0;
|
||||||
|
fileIOStatic::getVariablesFromFileName(string(data->fileName), currentIndex, p, cs0, cs1);
|
||||||
|
int currentScanVariable0 = (int)cs0;
|
||||||
|
cout<<"currentScanValue:"<<currentScanValue<<endl;
|
||||||
|
cout<<"currentScanVariable0:"<<currentScanVariable0<<endl;
|
||||||
|
//variables
|
||||||
|
if(currentScanVariable0!=currentScanValue) currentScanDivLevel++;
|
||||||
|
currentScanValue = currentScanVariable0;
|
||||||
|
lastImageNumber= currentFrame+1;
|
||||||
|
//title
|
||||||
|
char temp_title[2000];
|
||||||
|
sprintf(temp_title,"Image Index %d",currentIndex);
|
||||||
|
imageTitle = temp_title;
|
||||||
|
//copy data
|
||||||
|
for(unsigned int px=0;px<nPixelsX;px++) lastImageArray[currentScanDivLevel*nPixelsX+px] += data->values[px];
|
||||||
|
pthread_mutex_unlock(&(last_image_complete_mutex));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
currentFrame++;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
//level1
|
||||||
|
while(1){
|
||||||
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
||||||
//get scanvariable0
|
//get scanvariable1
|
||||||
int currentIndex = 0, p = 0; double cs0 = 0 , cs1 = 0;
|
int currentIndex = 0, p = 0; double cs0 = 0 , cs1 = 0;
|
||||||
fileIOStatic::getVariablesFromFileName(string(data->fileName), currentIndex, p, cs0, cs1);
|
fileIOStatic::getVariablesFromFileName(string(data->fileName), currentIndex, p, cs0, cs1);
|
||||||
int currentScanVariable0 = (int)cs0;
|
int currentScanVariable1 = (int)cs1;
|
||||||
cout<<"currentScanValue:"<<currentScanValue<<endl;
|
|
||||||
cout<<"currentScanVariable0:"<<currentScanVariable0<<endl;
|
|
||||||
//variables
|
//variables
|
||||||
if(currentScanVariable0!=currentScanValue) currentScanDivLevel++;
|
if(currentScanVariable1!=currentScanValue) currentScanDivLevel++;
|
||||||
currentScanValue = currentScanVariable0;
|
currentScanValue = currentScanVariable1;
|
||||||
lastImageNumber= currentFrame+1;
|
lastImageNumber= currentFrame+1;
|
||||||
//title
|
//title
|
||||||
char temp_title[2000];
|
char temp_title[2000];
|
||||||
@ -644,27 +675,8 @@ int qDrawPlot::GetData(detectorData *data){
|
|||||||
//copy data
|
//copy data
|
||||||
for(unsigned int px=0;px<nPixelsX;px++) lastImageArray[currentScanDivLevel*nPixelsX+px] += data->values[px];
|
for(unsigned int px=0;px<nPixelsX;px++) lastImageArray[currentScanDivLevel*nPixelsX+px] += data->values[px];
|
||||||
pthread_mutex_unlock(&(last_image_complete_mutex));
|
pthread_mutex_unlock(&(last_image_complete_mutex));
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
currentFrame++;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
//level1
|
|
||||||
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
|
||||||
//get scanvariable1
|
|
||||||
int currentIndex = 0, p = 0; double cs0 = 0 , cs1 = 0;
|
|
||||||
fileIOStatic::getVariablesFromFileName(string(data->fileName), currentIndex, p, cs0, cs1);
|
|
||||||
int currentScanVariable1 = (int)cs1;
|
|
||||||
//variables
|
|
||||||
if(currentScanVariable1!=currentScanValue) currentScanDivLevel++;
|
|
||||||
currentScanValue = currentScanVariable1;
|
|
||||||
lastImageNumber= currentFrame+1;
|
|
||||||
//title
|
|
||||||
char temp_title[2000];
|
|
||||||
sprintf(temp_title,"Image Index %d",currentIndex);
|
|
||||||
imageTitle = temp_title;
|
|
||||||
//copy data
|
|
||||||
for(unsigned int px=0;px<nPixelsX;px++) lastImageArray[currentScanDivLevel*nPixelsX+px] += data->values[px];
|
|
||||||
pthread_mutex_unlock(&(last_image_complete_mutex));
|
|
||||||
}
|
}
|
||||||
currentFrame++;
|
currentFrame++;
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user