#ifndef MOENCH03CTB10GBDATA_H #define MOENCH03CTB10GBDATA_H #include "slsReceiverData.h" class moench03Ctb10GbData : public slsReceiverData { protected: 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 */ // moench03Ctb10GbData(int ns=5000): slsDetectorData(400, 400, 8208*40, NULL, NULL) , nadc(32), sc_width(25), sc_height(200) { moench03Ctb10GbData(int ns=5000): slsReceiverData(400, 400, 40, 8208), nadc(32), sc_width(25), sc_height(200) { int adc_nr[32]={200,225,250,275,300,325,350,375,\ 0,25,50,75,100,125,150,175,\ 175,150,125,100,75,50,25,0,\ 375,350,325,300,275,250,225,200}; int row, col; int isample; int iadc; int ix, iy; int npackets=40; int i; 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& fnum, char *data=NULL) { int dd=0; if (data==NULL) { data=new char[packetSize*nPackets]; dd=1; } char *retval=0; int np=0, nd; fnum = -1; int pn; char aa[8224]; char *packet=(char *)aa; int place; if (filebin.is_open()) { place=filebin.tellg(); while(filebin.read((char*)packet, 8208) && np=0) { if (getFrameNumber(packet) !=fnum) { cout << "-"<=0) { */ /* if (getFrameNumber(packet) !=fnum) { */ /* if (np==0){ */ /* delete [] data; */ /* return NULL; */ /* } else */ /* return data; */ /* } */ /* memcpy(data+(pn-1)*packetSize, packet, packetSize); */ /* np++; */ /* } */ /* } */ /* } */ /* if (np==0){ */ /* delete [] data; */ /* return NULL; */ /* } */ /* }; */ int getPacketNumber(int x, int y) {return dataMap[y][x]/8208;}; }; #endif