From dfb8a1f7aded0d02947ab0fd740ffc709e02a1be Mon Sep 17 00:00:00 2001 From: Anna Bergamaschi Date: Mon, 26 Jun 2017 13:03:01 +0200 Subject: [PATCH] small modifications for jctb and moench03 module --- .../jctbDetectorServer/firmware_funcs.c | 2 +- .../jungfrauDetectorServerTest | Bin 114652 -> 115572 bytes .../jctbDetectorServer/server_funcs.c | 87 +++++++++++++++++- .../jctbDetectorServer/server_funcs.h | 3 + .../slsDetector/slsDetector.cpp | 5 +- 5 files changed, 92 insertions(+), 5 deletions(-) diff --git a/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c b/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c index 2fd223172..528515fa6 100755 --- a/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c +++ b/slsDetectorSoftware/jctbDetectorServer/firmware_funcs.c @@ -2514,7 +2514,7 @@ int prepareADC(){ writeADC(0x04,0xf);//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(0x14,0x0); writeADC(0x14,0x40);//lvds reduced range -- offset binary diff --git a/slsDetectorSoftware/jctbDetectorServer/jungfrauDetectorServerTest b/slsDetectorSoftware/jctbDetectorServer/jungfrauDetectorServerTest index 18fe7d5cbdaba7d6376a067cf563cc996fbec8e7..d9e295c0d0c3c0d8e67ac3c5c84591e17746638f 100755 GIT binary patch delta 50947 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 delta 49803 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 Y*@pw9gAZ@SW37y|7SJm4x7LCG5AG_lWB>pF diff --git a/slsDetectorSoftware/jctbDetectorServer/server_funcs.c b/slsDetectorSoftware/jctbDetectorServer/server_funcs.c index 0ce72143c..675dc2b4b 100755 --- a/slsDetectorSoftware/jctbDetectorServer/server_funcs.c +++ b/slsDetectorSoftware/jctbDetectorServer/server_funcs.c @@ -226,6 +226,9 @@ int function_table() { flist[F_PROGRAM_FPGA]=&program_fpga; flist[F_POWER_CHIP]=&power_chip; flist[F_RESET_FPGA]=&reset_fpga; + flist[F_ACTIVATE]=&activate; + flist[F_PREPARE_ACQUISITION]=&prepare_acquisition; + flist[F_CLEANUP_ACQUISITION]=&cleanup_acquisition; return OK; } @@ -238,7 +241,7 @@ int M_nofunc(int file_des){ sendDataOnly(file_des,&ret,sizeof(ret)); 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)); ret=OK; + printf("pattern addr is %d %x\n",addr, word); switch (addr) { case -1: retval64=writePatternIOControl(word); @@ -3236,6 +3240,7 @@ int set_ctb_pattern(int file_des){ break; case 1: //pattern loop + // printf("loop\n"); n = receiveDataOnly(file_des,&level,sizeof(level)); n = receiveDataOnly(file_des,&start,sizeof(start)); 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 @param level -1 complete pattern, 0,1,2, loop level @param start start address if >=0 @@ -3266,6 +3271,7 @@ int set_ctb_pattern(int file_des){ case 2: //wait address + printf("wait\n"); n = receiveDataOnly(file_des,&level,sizeof(level)); n = receiveDataOnly(file_des,&addr,sizeof(addr)); @@ -3293,6 +3299,7 @@ int set_ctb_pattern(int file_des){ case 3: //wait time + printf("wait time\n"); n = receiveDataOnly(file_des,&level,sizeof(level)); 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; +} diff --git a/slsDetectorSoftware/jctbDetectorServer/server_funcs.h b/slsDetectorSoftware/jctbDetectorServer/server_funcs.h index eac4fedfa..dfa0cd4fd 100755 --- a/slsDetectorSoftware/jctbDetectorServer/server_funcs.h +++ b/slsDetectorSoftware/jctbDetectorServer/server_funcs.h @@ -99,4 +99,7 @@ int power_chip(int); int reset_fpga(int); int program_fpga(int); +int activate(int); +int prepare_acquisition(int); +int cleanup_acquisition(int); #endif diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 09e8eb514..a28f023d4 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -1331,7 +1331,7 @@ int slsDetector::activate(int const enable){ controlSocket->ReceiveDataOnly(&ret,sizeof(ret)); if (ret==FAIL) { 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)); } else { controlSocket->ReceiveDataOnly(&retval,sizeof(retval)); @@ -1724,6 +1724,7 @@ int slsDetector::getTotalNumberOfChannels() { } thisDetector->nChans=thisDetector->nChan[X]; 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 { #ifdef VERBOSE 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) - if((thisDetector->myDetectorType != JUNGFRAU)) { + if((thisDetector->myDetectorType != JUNGFRAU) ) { int ret1 = detectorSendToReceiver(true); if (ret != FAIL) ret = ret1;