Merge branch 'release' into jungfrauv1.0

This commit is contained in:
Dhanya Maliakal 2016-02-03 15:05:50 +01:00
commit 6cc22a350d
9 changed files with 56 additions and 29 deletions

View File

@ -1,4 +1,4 @@
This subversion repository contains
This subversion repository contains
Common directories
Please inform Anna, Beat and Ian if you make modifications to these directories
@ -18,4 +18,4 @@ Please inform Beat and Ian if you make modifications to these directories
- eigerDetector : eiger specific funcs (mainly files I/O and ..)
- eigerDetectorServer : eiger server
make doc
make doc

View File

@ -51,9 +51,24 @@ unsigned int nimages_per_request=1;
int on_dst=0;
int dst_requested[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//char Module_dac_names[16][10]= {"SvP","Vtr","Vrf","Vrs","SvN","Vtgstv","Vcmp_ll","Vcmp_lr","cal","Vcmp_rl","rxb_rb","rxb_lb","Vcmp_rr","Vcp","Vcn","Vis"};;
int default_dac_values[16] = {0,2480,3300,1400,4000,2556,1000,1000,4000,1000,1000,1000,1000,200,2000,1550};
int default_dac_values[16] = {
0, //SvP
2480, //Vtr
3300, //Vrf
1400, //Vrs
4000, //SvN
2556, //Vtgstv
1000, //Vcmp_ll
1000, //Vcmp_lr
4000, //cal
1000, //Vcmp_rl
1100, //rxb_rb
1100, //rxb_lb
1000, //Vcmp_rr
200, //Vcp
2000, //Vcn
1550 //Vis
};
int default_gain_values[3] = {517000,517000,517000};
int default_offset_values[3] = {3851000,3851000,3851000};
@ -145,7 +160,7 @@ int initDetector(){
setReadOutFlags(NONPARALLEL);
setSpeed(0,1);//clk_devider,half speed
setHighVolage(0,0);
setIODelay(675,0);
setIODelay(650,0);
setTiming(AUTO_TIMING);
//SetPhotonEnergyCalibrationParameters(-5.8381e-5,1.838515,5.09948e-7,-4.32390e-11,1.32527e-15);
//SetRateCorrection(0); //deactivate rate correction
@ -279,6 +294,9 @@ u_int64_t getDetectorMAC() {
pch = strtok (NULL, ":");
}
sscanf(mac,"%llx",&res);
//increment by 1 for 10g
if(send_to_ten_gig)
res++;
//printf("mac:%llx\n",res);
return res;
@ -911,15 +929,15 @@ int executeTrimming(enum trimMode mode, int par1, int par2, int imod){
int configureMAC(int ipad, long long int macad, long long int detectormacadd, int detipad, int udpport, int udpport2, int ival){
if (detectormacadd != getDetectorMAC()){
printf("*************************************************\n");
printf("WARNING: actual detector mac address %llx does not match the one from client %llx\n",getDetectorMAC(),detectormacadd);
detectormacadd = getDetectorMAC();
printf("WARNING: Matched detectormac to the hardware mac now\n");
printf("*************************************************\n");
}
//only for 1Gbe
if(!send_to_ten_gig){
if (detectormacadd != getDetectorMAC()){
printf("*************************************************\n");
printf("WARNING: actual detector mac address %llx does not match the one from client %llx\n",getDetectorMAC(),detectormacadd);
detectormacadd = getDetectorMAC();
printf("WARNING: Matched detectormac to the hardware mac now\n");
printf("*************************************************\n");
}
if (detipad != getDetectorIP()){
printf("*************************************************\n");
printf("WARNING: actual detector ip address %x does not match the one from client %x\n",getDetectorIP(),detipad);

View File

@ -234,7 +234,11 @@ class slsDetectorBase : public virtual slsDetectorDefs, public virtual errorDef
\returns total number of channels
*/
virtual int getTotalNumberOfChannels()=0;
/**
\returns total number of channels for each dimension
*/
virtual int getTotalNumberOfChannels(dimension d)=0;
/** generates file name without extension */
virtual string createFileName()=0;

View File

@ -1113,7 +1113,7 @@ string slsDetectorCommand::helpLine(int narg, char *args[], int action) {
if (narg==0) {
os << "Command can be: " << endl;
for(int i=0; i<numberOfCommands; ++i) {
os << descrToFuncMap[i].m_pFuncName << "\t" ;
os << descrToFuncMap[i].m_pFuncName << "\n" ;
}
os << endl;
return os.str();

View File

@ -110,22 +110,24 @@ int slsDetectorUsers::getPositions(double *pos){
}
int slsDetectorUsers::setDetectorSize(int x0, int y0, int nx, int ny){
if(myDetector->getTotalNumberOfChannels(slsDetectorDefs::Y)>1)
return 1;
int nmod=nx/(myDetector->getChansPerMod(0));
cout << myDetector->getChansPerMod(0) << " " << nx << " " << nmod << endl;
return myDetector->setNumberOfModules(nmod)*myDetector->getChansPerMod(0);}
int slsDetectorUsers::getDetectorSize(int &x0, int &y0, int &nx, int &ny){
y0=0;
ny=1;
x0=0;
nx=myDetector->setNumberOfModules()*myDetector->getChansPerMod(0);
return nx;
nx=myDetector->getTotalNumberOfChannels(slsDetectorDefs::X);
ny=myDetector->getTotalNumberOfChannels(slsDetectorDefs::Y);
return nx*ny;
}
int slsDetectorUsers::getMaximumDetectorSize(int &nx, int &ny){
ny=1;
nx=myDetector->getMaxNumberOfModules()*myDetector->getChansPerMod(0);
return nx;
nx=myDetector->getMaxNumberOfChannelsPerDetector(slsDetectorDefs::X);
ny=myDetector->getMaxNumberOfChannelsPerDetector(slsDetectorDefs::Y);
return nx*ny;
}
int slsDetectorUsers::setBitDepth(int i){

View File

@ -155,10 +155,6 @@ int slsDetectorUtils::acquire(int delflag){
*stoppedFlag=1;
}
//resets frames caught in receiver
resetFramesCaught();
if(setReceiverOnline()==OFFLINE_FLAG)
*stoppedFlag=1;
}
@ -181,6 +177,11 @@ int slsDetectorUtils::acquire(int delflag){
cout << " starting measurement "<< im << " of " << nm << endl;
#endif
//resets frames caught in receiver
if(receiver){
resetFramesCaught();
}
//cout << "data thread started " << endl;

View File

@ -421,6 +421,7 @@ class slsDetectorUtils : public slsDetectorActions, public postProcessing {
virtual int* startAndReadAll()=0;
virtual int getTotalNumberOfChannels()=0;
virtual int getTotalNumberOfChannels(dimension d)=0;
virtual int getMaxNumberOfChannels()=0;
virtual int getMaxNumberOfChannels(dimension d)=0;

View File

@ -137,7 +137,7 @@ void postProcessing::processFrame(int *myData, int delflag, int jctb) {
// cout << "callback arg "<< getCurrentProgress()<< " " << (fname+string(".raw")).c_str() << " " << getTotalNumberOfChannels() << endl;
// cout << "DATAREADY 1" <<endl;
thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),(fname+string(".raw")).c_str(),getTotalNumberOfChannels());
thisData=new detectorData(fdata,NULL,NULL,getCurrentProgress(),(fname+string(".raw")).c_str(),getTotalNumberOfChannels()); //only 1d detectors
dataReady(thisData, currentFrameIndex, -1, pCallbackArg);
delete thisData;
fdata=NULL;
@ -280,7 +280,7 @@ data queue size unlock
if (dataReady) {
// cout << "callback arg "<< getCurrentProgress()<< " " << (fname+ext).c_str() << " " << np << endl;
//cout << "ADATREADY 2 " << endl;
thisData=new detectorData(val,err,ang,getCurrentProgress(),(fname+ext).c_str(),np);
thisData=new detectorData(val,err,ang,getCurrentProgress(),(fname+ext).c_str(),np);//only 1d detectors
dataReady(thisData, currentFrameIndex, -1, pCallbackArg);
delete thisData;
ang=NULL;
@ -493,7 +493,8 @@ void* postProcessing::processData(int delflag) {
int currentSubFrameIndex = -1;
bool newData = false;
int nthframe = setReadReceiverFrequency(0);
int nx =getTotalNumberOfChannels(slsDetectorDefs::X);
int ny =getTotalNumberOfChannels(slsDetectorDefs::Y);
#ifdef VERBOSE
std::cout << "receiver read freq:" << nthframe << std::endl;
@ -640,7 +641,7 @@ void* postProcessing::processData(int delflag) {
delete [] receiverData;
if ((fdata) && (dataReady)){
// cout << "DATAREADY 3" << endl;
thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentfName,getTotalNumberOfChannels());
thisData = new detectorData(fdata,NULL,NULL,getCurrentProgress(),currentfName,nx,ny);
dataReady(thisData, currentFrameIndex, currentSubFrameIndex, pCallbackArg);
delete thisData;
fdata = NULL;