changes for setting threshold without trimbits for eiger

This commit is contained in:
Dhanya Maliakal
2017-06-28 10:24:07 +02:00
parent ca358e4d17
commit c2980b3c44
17 changed files with 152 additions and 80 deletions

View File

@@ -12,7 +12,7 @@ SRC_CLNT = communication_funcs.c slsDetectorServer.c slsDetectorServer_funcs.c
OBJS = $(SRC_CLNT:.c=.o)
all: clean $(PROGS) #hv9m_blackfin_server
all: clean updateVersion $(PROGS) #hv9m_blackfin_server
boot: $(OBJS)
@@ -32,3 +32,6 @@ hv9m_blackfin_server:9mhvserial_bf.c
clean:
rm -rf $(DESTDIR)/$(PROGS) *.o $(DESTDIR)/hv9m_blackfin_server
updateVersion:
./updateGitVersion.sh

View File

@@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/eigerDetectorServer
URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer
Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git
Repsitory UUID: d0aea299e999e12df143e036c0cf9c644125d45d
Revision: 289
Repsitory UUID: 0cb2b925263b128c0e4e3d30e546f1bd564a5272
Revision: 290
Branch: developer
Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 1423
Last Changed Date: 2017-06-27 10:22:55 +0200
Last Changed Rev: 1424
Last Changed Date: 2017-06-27 17:46:32 +0200

View File

@@ -1,11 +1,11 @@
//#define SVNPATH ""
#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git/eigerDetectorServer"
//#define SVNREPPATH ""
#define SVNREPUUID "d0aea299e999e12df143e036c0cf9c644125d45d"
//#define SVNREV 0x1423
#define SVNREPUUID "0cb2b925263b128c0e4e3d30e546f1bd564a5272"
//#define SVNREV 0x1424
//#define SVNKIND ""
//#define SVNSCHED ""
#define SVNAUTH "Dhanya_Maliakal"
#define SVNREV 0x1423
#define SVNREV 0x1424
#define SVNDATE 0x20170627
//

View File

@@ -542,25 +542,31 @@ int setModule(sls_detector_module myMod, int delay){
for(i=0;i<myMod.ndac;i++)
setDAC((enum DACINDEX)i,myMod.dacs[i],myMod.module,0,retval);
//includ gap pixels
unsigned int tt[263680];
int iy,ichip,ix,ip=0,ich=0;
for(iy=0;iy<256;iy++) {
for (ichip=0; ichip<4; ichip++) {
for(ix=0;ix<256;ix++) {
tt[ip++]=myMod.chanregs[ich++];
}
if (ichip<3) {
tt[ip++]=0;
tt[ip++]=0;
if(myMod.nchan==0 && myMod.nchip == 0)
cprintf(BLUE,"Setting module without trimbits\n");
else{
cprintf(GREEN,"Setting module with trimbits\n");
//includ gap pixels
unsigned int tt[263680];
int iy,ichip,ix,ip=0,ich=0;
for(iy=0;iy<256;iy++) {
for (ichip=0; ichip<4; ichip++) {
for(ix=0;ix<256;ix++) {
tt[ip++]=myMod.chanregs[ich++];
}
if (ichip<3) {
tt[ip++]=0;
tt[ip++]=0;
}
}
}
}
//set trimbits
if(!Feb_Control_SetTrimbits(Feb_Control_GetModuleNumber(),tt)){
cprintf(BG_RED,"Could not set trimbits\n");
return FAIL;
//set trimbits
if(!Feb_Control_SetTrimbits(Feb_Control_GetModuleNumber(),tt)){
cprintf(BG_RED,"Could not set trimbits\n");
return FAIL;
}
}
return thisSettings;
@@ -1211,11 +1217,13 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod){
destMod->serialnumber=srcMod->serialnumber;
}
if ((srcMod->nchip)>(destMod->nchip)) {
//no trimbit feature
if (destMod->nchip && ((srcMod->nchip)>(destMod->nchip))) {
printf("Number of chip of source is larger than number of chips of destination\n");
return FAIL;
}
if ((srcMod->nchan)>(destMod->nchan)) {
//no trimbit feature
if (destMod->nchan && ((srcMod->nchan)>(destMod->nchan))) {
printf("Number of channels of source is larger than number of channels of destination\n");
return FAIL;
}
@@ -1249,14 +1257,19 @@ int copyModule(sls_detector_module *destMod, sls_detector_module *srcMod){
if (srcMod->offset>=0)
destMod->offset=srcMod->offset;
for (ichip=0; ichip<(srcMod->nchip); ichip++) {
if (*((srcMod->chipregs)+ichip)>=0)
*((destMod->chipregs)+ichip)=*((srcMod->chipregs)+ichip);
}
for (ichan=0; ichan<(srcMod->nchan); ichan++) {
if (*((srcMod->chanregs)+ichan)>=0)
*((destMod->chanregs)+ichan)=*((srcMod->chanregs)+ichan);
if((destMod->nchip!=0) || (destMod->nchan!=0)) {
for (ichip=0; ichip<(srcMod->nchip); ichip++) {
if (*((srcMod->chipregs)+ichip)>=0)
*((destMod->chipregs)+ichip)=*((srcMod->chipregs)+ichip);
}
for (ichan=0; ichan<(srcMod->nchan); ichan++) {
if (*((srcMod->chanregs)+ichan)>=0)
*((destMod->chanregs)+ichan)=*((srcMod->chanregs)+ichan);
}
}
#ifdef VERBOSE
else printf("Not Copying trimbits\n");
#endif
for (idac=0; idac<(srcMod->ndac); idac++) {
if (*((srcMod->dacs)+idac)>=0)
*((destMod->dacs)+idac)=*((srcMod->dacs)+idac);