mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
removed ndac from sls_detector_module and from the servers (not used), fixed setting module by eiger bug in sending number of channels
This commit is contained in:
@ -356,8 +356,6 @@ int sendModule(int file_des, sls_detector_module *myMod) {
|
||||
if (!n) return -1; ts += n;
|
||||
n = sendData(file_des,&(myMod->ndac), sizeof(myMod->ndac), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
n = sendData(file_des,&(myMod->nadc), sizeof(myMod->nadc), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
n = sendData(file_des,&(myMod->reg), sizeof(myMod->reg), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
n = sendData(file_des,&(myMod->iodelay), sizeof(myMod->iodelay), INT32);
|
||||
@ -369,9 +367,6 @@ int sendModule(int file_des, sls_detector_module *myMod) {
|
||||
// dacs
|
||||
n = sendData(file_des,myMod->dacs, sizeof(int)*(myMod->ndac), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
// adcs
|
||||
n = sendData(file_des,myMod->adcs, sizeof(int)*(myMod->nadc), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
// channels
|
||||
#ifdef EIGERD
|
||||
n = sendData(file_des,myMod->chanregs, sizeof(int) * (myMod->nchan), INT32);
|
||||
@ -384,58 +379,60 @@ int sendModule(int file_des, sls_detector_module *myMod) {
|
||||
|
||||
|
||||
int receiveModule(int file_des, sls_detector_module* myMod) {
|
||||
TLogLevel level = logDEBUG1;
|
||||
FILE_LOG(level, ("Receiving Module\n"));
|
||||
int ts = 0, n = 0;
|
||||
int nDacs = myMod->ndac;
|
||||
int nAdcs = myMod->nadc;
|
||||
#ifdef EIGERD
|
||||
int nChans = myMod->nchan; // can be zero for no trimbits
|
||||
FILE_LOG(level, ("nChans: %d\n",nChans));
|
||||
#endif
|
||||
n = receiveData(file_des,&(myMod->serialnumber), sizeof(myMod->serialnumber), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("serialno received. %d bytes. serialno: %d\n", n, myMod->serialnumber));
|
||||
n = receiveData(file_des,&(myMod->nchan), sizeof(myMod->nchan), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("nchan received. %d bytes. nchan: %d\n", n, myMod->nchan));
|
||||
n = receiveData(file_des,&(myMod->nchip), sizeof(myMod->nchip), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("nchip received. %d bytes. nchip: %d\n", n, myMod->nchip));
|
||||
n = receiveData(file_des,&(myMod->ndac), sizeof(myMod->ndac), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
n = receiveData(file_des,&(myMod->nadc), sizeof(myMod->nadc), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("ndac received. %d bytes. ndac: %d\n", n, myMod->ndac));
|
||||
n = receiveData(file_des,&(myMod->reg), sizeof(myMod->reg), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("reg received. %d bytes. reg: %d\n", n, myMod->reg));
|
||||
n = receiveData(file_des,&(myMod->iodelay), sizeof(myMod->iodelay), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("iodelay received. %d bytes. iodelay: %d\n", n, myMod->iodelay));
|
||||
n = receiveData(file_des,&(myMod->tau), sizeof(myMod->tau), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("tau received. %d bytes. tau: %d\n", n, myMod->tau));
|
||||
n = receiveData(file_des,&(myMod->eV), sizeof(myMod->eV), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("eV received. %d bytes. eV: %d\n", n, myMod->eV));
|
||||
// dacs
|
||||
if (nDacs != (myMod->ndac)) {
|
||||
FILE_LOG(logERROR, ("received wrong number of dacs. "
|
||||
"Expected %d, got %d\n", nDacs, myMod->ndac));
|
||||
"Expected %d, got %d\n", nDacs, myMod->ndac));
|
||||
return 0;
|
||||
}
|
||||
n = receiveData(file_des,&(myMod->dacs), sizeof(int) * (myMod->ndac), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
// adcs
|
||||
if (nAdcs != (myMod->nadc)) {
|
||||
FILE_LOG(logERROR, ("received wrong number of adcs. "
|
||||
"Expected %d, got %d\n", nAdcs, myMod->nadc));
|
||||
return 0;
|
||||
}
|
||||
n = receiveData(file_des,&(myMod->adcs), sizeof(int) * (myMod->nadc), INT32);
|
||||
n = receiveData(file_des, myMod->dacs, sizeof(int) * (myMod->ndac), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
FILE_LOG(level, ("dacs received. %d bytes.\n", n));
|
||||
// channels
|
||||
#ifdef EIGERD
|
||||
if (((myMod->nchan) != 0 ) || // no trimbits
|
||||
if (((myMod->nchan) != 0 ) && // no trimbits
|
||||
(nChans != (myMod->nchan))) { // with trimbits
|
||||
FILE_LOG(logERROR, ("received wrong number of channels. "
|
||||
"Expected %d, got %d\n", nChans, (myMod->nchan)));
|
||||
return 0;
|
||||
}
|
||||
n = receiveData(file_des,&(myMod->chanregs), sizeof(int) * (myMod->nchan), INT32);
|
||||
if (!n) return -1; ts += n;
|
||||
n = receiveData(file_des, myMod->chanregs, sizeof(int) * (myMod->nchan), INT32);
|
||||
FILE_LOG(level, ("chanregs received. %d bytes.\n", n));
|
||||
if (!n) return -1; ts += n;
|
||||
#endif
|
||||
FILE_LOG(logDEBUG1, ("received module of size %d register %x\n",ts,myMod->reg));
|
||||
FILE_LOG(level, ("received module of size %d register %x\n",ts,myMod->reg));
|
||||
return ts;
|
||||
}
|
||||
|
||||
|
@ -225,7 +225,6 @@ int calculateDataBytes();
|
||||
int getTotalNumberOfChannels();
|
||||
int getNumberOfChips();
|
||||
int getNumberOfDACs();
|
||||
int getNumberOfADCs();
|
||||
int getNumberOfChannelsPerChip();
|
||||
|
||||
|
||||
|
@ -839,10 +839,8 @@ int set_module(int file_des) {
|
||||
|
||||
sls_detector_module module;
|
||||
int *myDac = NULL;
|
||||
int *myAdc = NULL;
|
||||
int *myChan = NULL;
|
||||
module.dacs = NULL;
|
||||
module.adcs = NULL;
|
||||
module.chanregs = NULL;
|
||||
|
||||
// allocate to receive arguments
|
||||
@ -856,18 +854,6 @@ int set_module(int file_des) {
|
||||
} else
|
||||
module.dacs = myDac;
|
||||
|
||||
// allocate adcs
|
||||
if (ret == OK) {
|
||||
myAdc = (int*)malloc(getNumberOfADCs() * sizeof(int));
|
||||
// error
|
||||
if (getNumberOfADCs() > 0 && myAdc == NULL) {
|
||||
ret = FAIL;
|
||||
sprintf(mess,"Could not allocate adcs\n");
|
||||
FILE_LOG(logERROR,(mess));
|
||||
} else
|
||||
module.adcs = myAdc;
|
||||
}
|
||||
|
||||
// allocate chans
|
||||
#ifdef EIGERD
|
||||
if (ret == OK) {
|
||||
@ -885,22 +871,20 @@ int set_module(int file_des) {
|
||||
module.nchip = getNumberOfChips();
|
||||
module.nchan = getTotalNumberOfChannels();
|
||||
module.ndac = getNumberOfDACs();
|
||||
module.nadc = getNumberOfADCs();
|
||||
int ts = receiveModule(file_des, &module);
|
||||
if (ts < 0) {
|
||||
if (myChan != NULL) free(myChan);
|
||||
if (myDac != NULL) free(myDac);
|
||||
if (myAdc != NULL) free(myAdc);
|
||||
return printSocketReadError();
|
||||
}
|
||||
FILE_LOG(logDEBUG1, ("module register is %d, nchan %d, nchip %d, "
|
||||
"ndac %d, nadc %d, iodelay %d, tau %d, eV %d\n",
|
||||
"ndac %d, iodelay %d, tau %d, eV %d\n",
|
||||
module.reg, module.nchan, module.nchip,
|
||||
module.ndac, module.nadc, module.iodelay, module.tau, module.eV));
|
||||
module.ndac, module.iodelay, module.tau, module.eV));
|
||||
// should at least have a dac
|
||||
if (ts <= sizeof(sls_detector_module)) {
|
||||
ret = FAIL;
|
||||
sprintf(mess, "Cannot set module. Received incorrect number of dacs or adcs or channels\n");
|
||||
sprintf(mess, "Cannot set module. Received incorrect number of dacs or channels\n");
|
||||
FILE_LOG(logERROR,(mess));
|
||||
}
|
||||
}
|
||||
@ -923,6 +907,7 @@ int set_module(int file_des) {
|
||||
case VERYHIGHGAIN:
|
||||
case VERYLOWGAIN:
|
||||
#elif JUNGFRAUD
|
||||
case GET_SETTINGS:
|
||||
case DYNAMICGAIN:
|
||||
case DYNAMICHG0:
|
||||
case FIXGAIN1:
|
||||
@ -949,7 +934,6 @@ int set_module(int file_des) {
|
||||
}
|
||||
if (myChan != NULL) free(myChan);
|
||||
if (myDac != NULL) free(myDac);
|
||||
if (myAdc != NULL) free(myAdc);
|
||||
return Server_SendResult(file_des, INT32, 1, &retval, sizeof(retval));
|
||||
}
|
||||
|
||||
@ -961,10 +945,8 @@ int get_module(int file_des) {
|
||||
memset(mess, 0, sizeof(mess));
|
||||
sls_detector_module module;
|
||||
int *myDac = NULL;
|
||||
int *myAdc = NULL;
|
||||
int *myChan = NULL;
|
||||
module.dacs = NULL;
|
||||
module.adcs = NULL;
|
||||
module.chanregs = NULL;
|
||||
|
||||
// allocate to send arguments
|
||||
@ -978,18 +960,6 @@ int get_module(int file_des) {
|
||||
} else
|
||||
module.dacs = myDac;
|
||||
|
||||
// allocate adcs
|
||||
if (ret == OK) {
|
||||
myAdc = (int*)malloc(getNumberOfADCs() * sizeof(int));
|
||||
// error
|
||||
if (getNumberOfADCs() > 0 && myAdc == NULL) {
|
||||
ret = FAIL;
|
||||
sprintf(mess,"Could not allocate adcs\n");
|
||||
FILE_LOG(logERROR,(mess));
|
||||
} else
|
||||
module.adcs=myAdc;
|
||||
}
|
||||
|
||||
// allocate chans
|
||||
#ifdef EIGERD
|
||||
if (ret == OK) {
|
||||
@ -1008,7 +978,6 @@ int get_module(int file_des) {
|
||||
module.nchip = getNumberOfChips();
|
||||
module.nchan = getTotalNumberOfChannels();
|
||||
module.ndac = getNumberOfDACs();
|
||||
module.nadc = getNumberOfADCs();
|
||||
|
||||
// only get
|
||||
FILE_LOG(logDEBUG1, ("Getting module\n"));
|
||||
@ -1024,7 +993,6 @@ int get_module(int file_des) {
|
||||
}
|
||||
if (myChan != NULL) free(myChan);
|
||||
if (myDac != NULL) free(myDac);
|
||||
if (myAdc != NULL) free(myAdc);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user