included setroi for multidet

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@463 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d
2013-02-21 15:53:07 +00:00
parent 6adeca51ed
commit bc61fd4883
8 changed files with 198 additions and 76 deletions

View File

@ -41,6 +41,8 @@ int *detectorDacs=NULL;
int *detectorAdcs=NULL;
//int numberOfProbes;
ROI rois[MAX_ROIS];
int nROI=0;
int initDetector() {
@ -2577,4 +2579,71 @@ int calibration_chip(int num, int *v, int *dacs) {
return OK;
}
ROI* setROI(int n, ROI arg[], int *retvalsize, int *ret){
int i,adc;
ROI temp;
if(n>=0){
//clear rois
for(i=0;i<MAX_ROIS;i++)
rois[i]=temp;
/*ideal way to set roi
for(i=0;i<n;i++)
rois[i]=arg[i];
nROI = n;
*/
if(n==0)
adc=-1;
else{
//if its for 1 adc or general
if ((arg[0].xmin==0) && (arg[0].xmax==NCHIP*NCHAN))
adc=-1;
else{
//adc = mid value/numchans also for only 1 roi
adc = ((((arg[0].xmax)+(arg[0].xmin))/2)/(NCHAN*NCHIPS_PER_ADC));
if((adc>=0) && (adc<=4));
else {
printf("warning:adc value greater than 5. deleting roi\n");
adc=-1;
}
}
}
//set rois for just 1 adc - take only 1st roi
if(adc!=-1){
rois[0].xmin=adc*(NCHAN*NCHIPS_PER_ADC);
rois[0].xmax=(adc+1)*(NCHAN*NCHIPS_PER_ADC);
rois[0].ymin=-1;
rois[0].ymax=-1;
nROI = 1;
}else
nROI = 0;
if((arg[0].xmin!=rois[0].xmin)||(arg[0].xmax!=rois[0].xmax)||(arg[0].ymin!=rois[0].ymin)||(arg[0].ymax!=rois[0].ymax))
*ret=FAIL;
if(n!=nROI)
*ret=FAIL;
//set adc of interest
setADC(adc);
}
//#ifdef VERBOSE
printf("Rois:\n");
for( i=0;i<nROI;i++)
printf("%d\t%d\t%d\t%d\n",rois[i].xmin,rois[i].xmax,rois[i].ymin,rois[i].ymax);
//#endif
*retvalsize = nROI;
return rois;
}
#endif