#ifndef MOENCH03TCTB10GBDATA_H #define MOENCH03TCTB10GBDATA_H #include "slsReceiverData.h" class moench03TCtb10GbData : public slsReceiverData { private: int iframe; int nadc; int sc_width; int sc_height; public: /** Implements the slsReceiverData structure for the moench02 prototype read out by a module i.e. using the slsReceiver (160x160 pixels, 40 packets 1286 large etc.) \param c crosstalk parameter for the output buffer */ // moench03TCtb10GbData(int ns=5000): slsDetectorData(400, 400, 8208*40, NULL, NULL) , nadc(32), sc_width(25), sc_height(200) { moench03TCtb10GbData(int ns=5000): slsReceiverData(400, 400, 40, 8208), nadc(32), sc_width(25), sc_height(200) { int adc_nr[32]={300,325,350,375,300,325,350,375, \ 200,225,250,275,200,225,250,275,\ 100,125,150,175,100,125,150,175,\ 0,25,50,75,0,25,50,75}; int row, col; int isample; int iadc; int ix, iy; int npackets=40; int i; int adc4(0); for (int ip=0; ip=8208*40) cout << "Error: pointer " << dataMap[row][col] << " out of range "<< endl; } } } } int ipacket; int ibyte; int ii=0; for (int ipacket=0; ipacket0) { */ /* iframe++; */ /* // cout << ib << "-" << endl; */ /* return (char*)afifo_cont; */ /* } else { */ /* delete [] afifo_cont; */ /* return NULL; */ /* } */ /* } */ /* return NULL; */ /* }; */ virtual char *readNextFrame(ifstream &filebin, int& ff, int &np) { char *data=new char[packetSize*nPackets]; char *retval=0; int nd; np=0; int pn; char aa[8224]={0}; char *packet=(char *)aa; int fnum = -1; if (ff>=0) fnum=ff; if (filebin.is_open()) { cout << "+"; while(filebin.read((char*)packet, 8208)){ pn=getPacketNumber(packet); if (fnum<0) fnum= getFrameNumber(packet); if (fnum>=0) { if (getFrameNumber(packet) !=fnum) { if (np==0){ cout << "-"; delete [] data; return NULL; } else filebin.seekg(-8208,ios_base::cur); return data; } memcpy(data+(pn-1)*packetSize, packet, packetSize); np++; if (np==nPackets) break; if (pn==nPackets) break; } } } if (np==0){ cout << "?"; delete [] data; return NULL; }// else if (np