mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-25 07:40:03 +02:00
small modifications for jctb and moench03 module
This commit is contained in:
parent
c2af014dad
commit
dfb8a1f7ad
@ -2514,7 +2514,7 @@ int prepareADC(){
|
|||||||
writeADC(0x04,0xf);//all chans
|
writeADC(0x04,0xf);//all chans
|
||||||
writeADC(0x04,0x3f);//all chans
|
writeADC(0x04,0x3f);//all chans
|
||||||
|
|
||||||
writeADC(0x16,0x4);//output clock phase
|
// writeADC(0x16,0x4);//output clock phase
|
||||||
// writeADC(0x18,0x4);// vref 1V
|
// writeADC(0x18,0x4);// vref 1V
|
||||||
// writeADC(0x14,0x0);
|
// writeADC(0x14,0x0);
|
||||||
writeADC(0x14,0x40);//lvds reduced range -- offset binary
|
writeADC(0x14,0x40);//lvds reduced range -- offset binary
|
||||||
|
Binary file not shown.
@ -226,6 +226,9 @@ int function_table() {
|
|||||||
flist[F_PROGRAM_FPGA]=&program_fpga;
|
flist[F_PROGRAM_FPGA]=&program_fpga;
|
||||||
flist[F_POWER_CHIP]=&power_chip;
|
flist[F_POWER_CHIP]=&power_chip;
|
||||||
flist[F_RESET_FPGA]=&reset_fpga;
|
flist[F_RESET_FPGA]=&reset_fpga;
|
||||||
|
flist[F_ACTIVATE]=&activate;
|
||||||
|
flist[F_PREPARE_ACQUISITION]=&prepare_acquisition;
|
||||||
|
flist[F_CLEANUP_ACQUISITION]=&cleanup_acquisition;
|
||||||
return OK;
|
return OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,7 +241,7 @@ int M_nofunc(int file_des){
|
|||||||
|
|
||||||
sendDataOnly(file_des,&ret,sizeof(ret));
|
sendDataOnly(file_des,&ret,sizeof(ret));
|
||||||
sendDataOnly(file_des,mess,sizeof(mess));
|
sendDataOnly(file_des,mess,sizeof(mess));
|
||||||
return GOODBYE;
|
return FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -3212,6 +3215,7 @@ int set_ctb_pattern(int file_des){
|
|||||||
n = receiveDataOnly(file_des,&word,sizeof(word));
|
n = receiveDataOnly(file_des,&word,sizeof(word));
|
||||||
ret=OK;
|
ret=OK;
|
||||||
|
|
||||||
|
printf("pattern addr is %d %x\n",addr, word);
|
||||||
switch (addr) {
|
switch (addr) {
|
||||||
case -1:
|
case -1:
|
||||||
retval64=writePatternIOControl(word);
|
retval64=writePatternIOControl(word);
|
||||||
@ -3236,6 +3240,7 @@ int set_ctb_pattern(int file_des){
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: //pattern loop
|
case 1: //pattern loop
|
||||||
|
// printf("loop\n");
|
||||||
n = receiveDataOnly(file_des,&level,sizeof(level));
|
n = receiveDataOnly(file_des,&level,sizeof(level));
|
||||||
n = receiveDataOnly(file_des,&start,sizeof(start));
|
n = receiveDataOnly(file_des,&start,sizeof(start));
|
||||||
n = receiveDataOnly(file_des,&stop,sizeof(stop));
|
n = receiveDataOnly(file_des,&stop,sizeof(stop));
|
||||||
@ -3243,7 +3248,7 @@ int set_ctb_pattern(int file_des){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
printf("level %d start %x stop %x nl %d\n",level, start, stop, nl);
|
// printf("level %d start %x stop %x nl %d\n",level, start, stop, nl);
|
||||||
/** Sets the pattern or loop limits in the CTB
|
/** Sets the pattern or loop limits in the CTB
|
||||||
@param level -1 complete pattern, 0,1,2, loop level
|
@param level -1 complete pattern, 0,1,2, loop level
|
||||||
@param start start address if >=0
|
@param start start address if >=0
|
||||||
@ -3266,6 +3271,7 @@ int set_ctb_pattern(int file_des){
|
|||||||
|
|
||||||
|
|
||||||
case 2: //wait address
|
case 2: //wait address
|
||||||
|
printf("wait\n");
|
||||||
n = receiveDataOnly(file_des,&level,sizeof(level));
|
n = receiveDataOnly(file_des,&level,sizeof(level));
|
||||||
n = receiveDataOnly(file_des,&addr,sizeof(addr));
|
n = receiveDataOnly(file_des,&addr,sizeof(addr));
|
||||||
|
|
||||||
@ -3293,6 +3299,7 @@ int set_ctb_pattern(int file_des){
|
|||||||
|
|
||||||
|
|
||||||
case 3: //wait time
|
case 3: //wait time
|
||||||
|
printf("wait time\n");
|
||||||
n = receiveDataOnly(file_des,&level,sizeof(level));
|
n = receiveDataOnly(file_des,&level,sizeof(level));
|
||||||
n = receiveDataOnly(file_des,&t,sizeof(t));
|
n = receiveDataOnly(file_des,&t,sizeof(t));
|
||||||
|
|
||||||
@ -3618,3 +3625,79 @@ int program_fpga(int file_des) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int activate(int file_des) {
|
||||||
|
|
||||||
|
int retval=-1;
|
||||||
|
int ret=OK;
|
||||||
|
int arg=-1;
|
||||||
|
int n;
|
||||||
|
|
||||||
|
sprintf(mess,"Can't activate detector\n");
|
||||||
|
n = receiveDataOnly(file_des,&arg,sizeof(arg));
|
||||||
|
if (n < 0) {
|
||||||
|
sprintf(mess,"Error reading from socket\n");
|
||||||
|
ret=FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret==OK && differentClients==1)
|
||||||
|
ret=FORCE_UPDATE;
|
||||||
|
retval=arg;
|
||||||
|
/* send answer */
|
||||||
|
n = sendDataOnly(file_des,&ret,sizeof(ret));
|
||||||
|
if (ret==FAIL) {
|
||||||
|
n += sendDataOnly(file_des,mess,sizeof(mess));
|
||||||
|
} else
|
||||||
|
n += sendDataOnly(file_des,&retval,sizeof(retval));
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int prepare_acquisition(int file_des) {
|
||||||
|
|
||||||
|
int retval=-1;
|
||||||
|
int ret=OK;
|
||||||
|
int arg=-1;
|
||||||
|
int n;
|
||||||
|
|
||||||
|
sprintf(mess,"Can't activate detector\n");
|
||||||
|
n = receiveDataOnly(file_des,&arg,sizeof(arg));
|
||||||
|
if (n < 0) {
|
||||||
|
sprintf(mess,"Error reading from socket\n");
|
||||||
|
ret=FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret==OK && differentClients==1)
|
||||||
|
ret=FORCE_UPDATE;
|
||||||
|
|
||||||
|
/* send answer */
|
||||||
|
n = sendDataOnly(file_des,&ret,sizeof(ret));
|
||||||
|
if (ret==FAIL) {
|
||||||
|
n += sendDataOnly(file_des,mess,sizeof(mess));
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cleanup_acquisition(int file_des) {
|
||||||
|
|
||||||
|
int retval=-1;
|
||||||
|
int ret=OK;
|
||||||
|
int arg=-1;
|
||||||
|
int n;
|
||||||
|
|
||||||
|
sprintf(mess,"Can't activate detector\n");
|
||||||
|
n = receiveDataOnly(file_des,&arg,sizeof(arg));
|
||||||
|
if (n < 0) {
|
||||||
|
sprintf(mess,"Error reading from socket\n");
|
||||||
|
ret=FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret==OK && differentClients==1)
|
||||||
|
ret=FORCE_UPDATE;
|
||||||
|
|
||||||
|
/* send answer */
|
||||||
|
n = sendDataOnly(file_des,&ret,sizeof(ret));
|
||||||
|
if (ret==FAIL) {
|
||||||
|
n += sendDataOnly(file_des,mess,sizeof(mess));
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@ -99,4 +99,7 @@ int power_chip(int);
|
|||||||
int reset_fpga(int);
|
int reset_fpga(int);
|
||||||
int program_fpga(int);
|
int program_fpga(int);
|
||||||
|
|
||||||
|
int activate(int);
|
||||||
|
int prepare_acquisition(int);
|
||||||
|
int cleanup_acquisition(int);
|
||||||
#endif
|
#endif
|
||||||
|
@ -1331,7 +1331,7 @@ int slsDetector::activate(int const enable){
|
|||||||
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
controlSocket->ReceiveDataOnly(&ret,sizeof(ret));
|
||||||
if (ret==FAIL) {
|
if (ret==FAIL) {
|
||||||
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
controlSocket->ReceiveDataOnly(mess,sizeof(mess));
|
||||||
std::cout<< "Detector returned error: " << mess << std::endl;
|
std::cout<< "Detector returned activate error: " << mess << std::endl;
|
||||||
setErrorMask((getErrorMask())|(DETECTOR_ACTIVATE));
|
setErrorMask((getErrorMask())|(DETECTOR_ACTIVATE));
|
||||||
} else {
|
} else {
|
||||||
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
controlSocket->ReceiveDataOnly(&retval,sizeof(retval));
|
||||||
@ -1724,6 +1724,7 @@ int slsDetector::getTotalNumberOfChannels() {
|
|||||||
}
|
}
|
||||||
thisDetector->nChans=thisDetector->nChan[X];
|
thisDetector->nChans=thisDetector->nChan[X];
|
||||||
thisDetector->dataBytes=thisDetector->nChans*thisDetector->nChips*thisDetector->nMods*2*thisDetector->timerValue[SAMPLES_JCTB];
|
thisDetector->dataBytes=thisDetector->nChans*thisDetector->nChips*thisDetector->nMods*2*thisDetector->timerValue[SAMPLES_JCTB];
|
||||||
|
cout << "Total number of channels is "<< thisDetector->nChans*thisDetector->nChips*thisDetector->nMods << " data bytes is " << thisDetector->dataBytes << endl;
|
||||||
} else {
|
} else {
|
||||||
#ifdef VERBOSE
|
#ifdef VERBOSE
|
||||||
cout << "det type is "<< thisDetector->myDetectorType << endl;
|
cout << "det type is "<< thisDetector->myDetectorType << endl;
|
||||||
@ -7756,7 +7757,7 @@ int slsDetector::startReceiver(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
//let detector prepare anyway even if receiver didnt work (for those not using the receiver)
|
//let detector prepare anyway even if receiver didnt work (for those not using the receiver)
|
||||||
if((thisDetector->myDetectorType != JUNGFRAU)) {
|
if((thisDetector->myDetectorType != JUNGFRAU) ) {
|
||||||
int ret1 = detectorSendToReceiver(true);
|
int ret1 = detectorSendToReceiver(true);
|
||||||
if (ret != FAIL)
|
if (ret != FAIL)
|
||||||
ret = ret1;
|
ret = ret1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user