mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
2d pedestal implemented
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorGui@192 af1100a4-978c-4157-bff7-07162d2ba061
This commit is contained in:
@ -892,7 +892,51 @@ int qDrawPlot::GetData(detectorData *data,int fIndex){
|
||||
lastImageArray[py*nPixelsX+px] = sqrt(pow(currentFrame+1,2)*pow(double(px)-nPixelsX/2,2)/pow(nPixelsX/2,2)/pow(number_of_exposures+1,2) + pow(double(py)-nPixelsY/2,2)/pow(nPixelsY/2,2))/sqrt(2);
|
||||
*/
|
||||
// copy data
|
||||
memcpy(lastImageArray,data->values,nPixelsX*nPixelsY*sizeof(double));
|
||||
/*memcpy(lastImageArray,data->values,nPixelsX*nPixelsY*sizeof(double));*/
|
||||
|
||||
|
||||
|
||||
//normal data
|
||||
if(resetPedestal){
|
||||
memcpy(lastImageArray,data->values,nPixelsX*nPixelsY*sizeof(double));
|
||||
}else{
|
||||
//start adding frames to get to the pedestal value
|
||||
if(pedestalCount<NUM_PEDESTAL_FRAMES){
|
||||
for(unsigned int px=0;px<(nPixelsX*nPixelsY);px++)
|
||||
pedestalVals[px] += data->values[px];
|
||||
memcpy(lastImageArray,data->values,nPixelsX*nPixelsY*sizeof(double));
|
||||
}
|
||||
//calculate the pedestal value
|
||||
else if(pedestalCount==NUM_PEDESTAL_FRAMES){
|
||||
cout << "Pedestal Calculated" << endl;
|
||||
for(unsigned int px=0;px<(nPixelsX*nPixelsY);px++)
|
||||
pedestalVals[px] = pedestalVals[px]/(double)NUM_PEDESTAL_FRAMES;
|
||||
memcpy(lastImageArray,data->values,nPixelsX*nPixelsY*sizeof(double));
|
||||
}
|
||||
//use this pedestal value henceforth
|
||||
else{
|
||||
for(unsigned int px=0;px<(nPixelsX*nPixelsY);px++)
|
||||
lastImageArray[px] = data->values[px] - (pedestalVals[px]);
|
||||
}
|
||||
pedestalCount++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
pthread_mutex_unlock(&(last_image_complete_mutex));
|
||||
}
|
||||
@ -1578,9 +1622,9 @@ void qDrawPlot::CalculatePedestal(){
|
||||
while(1){
|
||||
if(!pthread_mutex_trylock(&(last_image_complete_mutex))){
|
||||
//create array
|
||||
if(pedestalVals) delete [] pedestalVals; pedestalVals = new double[nPixelsX];
|
||||
if(pedestalVals) delete [] pedestalVals; pedestalVals = new double[nPixelsX*nPixelsY];
|
||||
//reset all values
|
||||
for(unsigned int px=0;px<nPixelsX;px++)
|
||||
for(unsigned int px=0;px<(nPixelsX*nPixelsY);px++)
|
||||
pedestalVals[px] = 0;
|
||||
|
||||
pedestalCount = 0;
|
||||
|
@ -159,11 +159,15 @@ void qTabPlot::SetupWidgetWindow(){
|
||||
EnableScanBox();
|
||||
|
||||
stackedWidget->setCurrentIndex(0);
|
||||
|
||||
stackedWidget_2->setCurrentIndex(0);
|
||||
if(myDet->getDetectorsType()!=slsDetectorDefs::GOTTHARD){
|
||||
btnCalPedestal->setEnabled(false);
|
||||
btnResetPedestal->setEnabled(false);
|
||||
}
|
||||
if(myDet->getDetectorsType()!=slsDetectorDefs::MOENCH){
|
||||
btnCalPedestal_2->setEnabled(false);
|
||||
btnResetPedestal_2->setEnabled(false);
|
||||
}
|
||||
|
||||
qDefs::checkErrorMessage(myDet);
|
||||
}
|
||||
@ -172,8 +176,24 @@ void qTabPlot::SetupWidgetWindow(){
|
||||
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
void qTabPlot::Set2DPage(){
|
||||
//QPushButton *clickedButton = qobject_cast<QPushButton *>(sender());
|
||||
if(stackedWidget_2->currentIndex()==0){
|
||||
stackedWidget_2->setCurrentIndex(1);
|
||||
box2D->setTitle("2D Plot Options 2");
|
||||
}
|
||||
else{
|
||||
stackedWidget_2->setCurrentIndex(0);
|
||||
box2D->setTitle("2D Plot Options 1");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
void qTabPlot::Set1DPage(){
|
||||
QPushButton *clickedButton = qobject_cast<QPushButton *>(sender());
|
||||
//QPushButton *clickedButton = qobject_cast<QPushButton *>(sender());
|
||||
if(stackedWidget->currentIndex()==0){
|
||||
//if(clickedButton->icon().pixmap(QSize(16,16)).toImage()==btnLeft->icon().pixmap(QSize(16,16)).toImage())
|
||||
stackedWidget->setCurrentIndex(1);
|
||||
@ -240,6 +260,9 @@ void qTabPlot::Initialization(){
|
||||
connect(chkInterpolate, SIGNAL(toggled(bool)),myPlot, SIGNAL(InterpolateSignal(bool)));
|
||||
connect(chkContour, SIGNAL(toggled(bool)),myPlot, SIGNAL(ContourSignal(bool)));
|
||||
connect(chkLogz, SIGNAL(toggled(bool)),myPlot, SIGNAL(LogzSignal(bool)));
|
||||
//to change pages
|
||||
connect(btn2DRight, SIGNAL(clicked()), this, SLOT(Set2DPage()));
|
||||
connect(btn2DRight2, SIGNAL(clicked()), this, SLOT(Set2DPage()));
|
||||
// Plotting frequency box
|
||||
connect(comboFrequency, SIGNAL(currentIndexChanged(int)), this, SLOT(SetFrequency()));
|
||||
connect(comboTimeGapUnit,SIGNAL(currentIndexChanged(int)), this, SLOT(SetFrequency()));
|
||||
@ -278,7 +301,8 @@ void qTabPlot::Initialization(){
|
||||
//pedstal
|
||||
connect(btnResetPedestal, SIGNAL(clicked()),myPlot, SLOT(ResetPedestal()));
|
||||
connect(btnCalPedestal, SIGNAL(clicked()),myPlot, SLOT(CalculatePedestal()));
|
||||
|
||||
connect(btnResetPedestal_2, SIGNAL(clicked()),myPlot, SLOT(ResetPedestal()));
|
||||
connect(btnCalPedestal_2, SIGNAL(clicked()),myPlot, SLOT(CalculatePedestal()));
|
||||
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user