diff --git a/ctbGui/ctbAcquisition.cpp b/ctbGui/ctbAcquisition.cpp index 5dff7f769..d621dc7aa 100755 --- a/ctbGui/ctbAcquisition.cpp +++ b/ctbGui/ctbAcquisition.cpp @@ -48,7 +48,7 @@ using namespace std; -ctbAcquisition::ctbAcquisition(TGVerticalFrame *page, multiSlsDetector *det) : TGGroupFrame(page,"Acquisition",kVerticalFrame), myDet(det), myCanvas(NULL), globalPlot(0), nAnalogSamples(1), nDigitalSamples(1), dataStructure(NULL), photonFinder(NULL), cmSub(0), dBitMask(0xffffffffffffffff), deserializer(0) { +ctbAcquisition::ctbAcquisition(TGVerticalFrame *page, multiSlsDetector *det) : TGGroupFrame(page,"Acquisition",kVerticalFrame), myDet(det), myCanvas(NULL), globalPlot(0), nAnalogSamples(1), nDigitalSamples(1), dataStructure(NULL), photonFinder(NULL), cmSub(0), tenG(0), dBitMask(0xffffffffffffffff), deserializer(0) { adcFit=NULL; bitPlot=NULL; @@ -894,8 +894,18 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") { } } else ndbit=dbitlist.size(); - - dsize=nadc*2*nAnalogSamples+ndbit*(nDigitalSamples-dBitOffset/8)/8; + if (tenG){ + + if (nDigitalSamples && nAnalogSamples){ + if (nDigitalSamples>nAnalogSamples) + dsize=nDigitalSamples*(32*2+8); + else + dsize=nAnalogSamples*(32*2+8); + } else + dsize=32*2*nAnalogSamples+8*nDigitalSamples; + + } else + dsize=nadc*2*nAnalogSamples+ndbit*(nDigitalSamples-dBitOffset/8)/8; cout << "dataBytes is " << data->databytes << " expected " << dsize << endl; @@ -906,7 +916,11 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") { i=0; - char *d_data= data->data+2*nadc*nAnalogSamples; + char *d_data; + if (tenG) + d_data= data->data; + else + d_data = data->data+2*nadc*nAnalogSamples; char dval; @@ -968,7 +982,11 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") { ig=ii; else ig=adclist.at(ii); - aval=data->getChannel(i);//*((uint16_t*)(data->cvalues+i*2));// + + // if (tenG) + // aval=data->getChannel(i); + // else + aval=data->getChannel(i);//*((uint16_t*)(data->cvalues+i*2));// if (plotFlag[ig]) { @@ -980,10 +998,11 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") { // cout << data->getChannel(i) << endl; h->SetBinContent(ip+1,aval); h1->Fill(aval); - } + } i++; - } + } + if (tenG) i+=4; } @@ -993,8 +1012,10 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") { if (dbitlist.empty()) { for (ip=0; ipgetReceiverDbitOffset(); + try{ + dBitOffset=myDet->getReceiverDbitOffset(); + } catch (...) { + cout << "Do nothing for this error" << endl; + } + try{ + tenG=myDet->enableTenGigabitEthernet(-1); + } catch (...) { + cout << "Do nothing for this error" << endl; + } // char aargs[10][100]; // char *args[10]; // for (int i=0; i<10; i++) @@ -1666,6 +1696,11 @@ void ctbAcquisition::acquisitionFinished() { void ctbAcquisition::startAcquisition(){ cout << "Detector started " <GetNumber()<< endl; stop=0; + try { + tenG=myDet->enableTenGigabitEthernet(-1); + } catch (...) { + cout << "Do nothing for this error" << endl; + } for (int im=0; imGetNumber(); im++) { try { myDet->acquire(); diff --git a/ctbGui/ctbAcquisition.h b/ctbGui/ctbAcquisition.h index 12abd313e..5daee0e34 100755 --- a/ctbGui/ctbAcquisition.h +++ b/ctbGui/ctbAcquisition.h @@ -151,6 +151,7 @@ class ctbAcquisition : public TGGroupFrame { int globalPlot; int adcPlot; int dbitPlot; + int tenG; int nAnalogSamples, nDigitalSamples; // int iScanStep; diff --git a/slsDetectorCalibration/dataStructures/moench04CtbZmq10GbData.h b/slsDetectorCalibration/dataStructures/moench04CtbZmq10GbData.h index 3c4386f5b..c62d483b5 100644 --- a/slsDetectorCalibration/dataStructures/moench04CtbZmq10GbData.h +++ b/slsDetectorCalibration/dataStructures/moench04CtbZmq10GbData.h @@ -28,8 +28,19 @@ class moench04CtbZmq10GbData : public slsDetectorData { \param c crosstalk parameter for the output buffer */ - moench04CtbZmq10GbData(int nas=5000, int nds=0): slsDetectorData(400, 400, nas*2*32+nds*8), aSamples(nas), dSamples(nds), nadc(32), sc_width(25), sc_height(200) { - + //moench04CtbZmq10GbData(int nas=5000, int nds=0): slsDetectorData(400, 400, nas*2*32+nds*8), aSamples(nas), dSamples(nds), nadc(32), sc_width(25), sc_height(200) { + moench04CtbZmq10GbData(int nas=5000, int nds=0): aSamples(nas), dSamples(nds), nadc(32), sc_width(25), sc_height(200) { + + int ds; + if (nas && nds) + if (nds>nas) + ds=nds*(32*2+8); + else + ds=nas*(32*2+8); + else + ds=nas*32*2+nds*8; + + slsDetectorData(400, 400, ds); int adc_nr[32]={9, 8,11,10,13,12,15,14,1,0,3,2,5,4,7,6,23,22,21,20,19,18,17,16,31,30,29,28,27,26,25,24 };