Modified waveform plots for 10Gb (to be tested)

This commit is contained in:
bergamaschi 2019-08-21 17:19:54 +02:00
parent 1b5e939748
commit 0735f890a3
3 changed files with 59 additions and 12 deletions

View File

@ -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,7 +894,17 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") {
}
} else
ndbit=dbitlist.size();
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,6 +982,10 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") {
ig=ii;
else
ig=adclist.at(ii);
// if (tenG)
// aval=data->getChannel(i);
// else
aval=data->getChannel(i);//*((uint16_t*)(data->cvalues+i*2));//
if (plotFlag[ig]) {
@ -984,6 +1002,7 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") {
i++;
}
if (tenG) i+=4;
}
@ -993,7 +1012,9 @@ sample1 (dbit0 + dbit1 +...)if (cmd == "rx_dbitlist") {
if (dbitlist.empty()) {
for (ip=0; ip<nDigitalSamples; ip++) {
for (ig=0; ig<8; ig++) {
if (tenG)
dval=*(d_data+ip*(8+32*2)+32*2+ig);
else
dval=*(d_data+ip*8+ig);
for (ib=(ig)*8; ib<(ig+1)*8; ib++) {
@ -1511,8 +1532,17 @@ void ctbAcquisition::update() {
}
}
dBitOffset=myDet->getReceiverDbitOffset();
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 " <<eMeasurements->GetNumber()<< endl;
stop=0;
try {
tenG=myDet->enableTenGigabitEthernet(-1);
} catch (...) {
cout << "Do nothing for this error" << endl;
}
for (int im=0; im<eMeasurements->GetNumber(); im++) {
try {
myDet->acquire();

View File

@ -151,6 +151,7 @@ class ctbAcquisition : public TGGroupFrame {
int globalPlot;
int adcPlot;
int dbitPlot;
int tenG;
int nAnalogSamples, nDigitalSamples;
// int iScanStep;

View File

@ -28,8 +28,19 @@ class moench04CtbZmq10GbData : public slsDetectorData<uint16_t> {
\param c crosstalk parameter for the output buffer
*/
moench04CtbZmq10GbData(int nas=5000, int nds=0): slsDetectorData<uint16_t>(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<uint16_t>(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<uint16_t>(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 };