#ifndef DESERIALIZER_H #define DESERIALIZER_H #include class deserializer : public slsDetectorData { public: deserializer( std::vector dbl, int nch=64*3,int dr=24, int off=2): slsDetectorData(nch,1,nch*dr*8+off*8,NULL,NULL,NULL), dbitlist(dbl), dynamicRange(dr), serialOffset(off), frameNumber(0), numberOfCounters(nch) {}; deserializer( std::vector dbl, int nch,int dr, int off, int ds): slsDetectorData(nch,1,ds,NULL,NULL,NULL), dbitlist(dbl), dynamicRange(dr), serialOffset(off), frameNumber(0), numberOfCounters(nch) {}; virtual void getPixel(int ip, int &x, int &y) {x=-1; y=-1;}; virtual int getChannel(char *data, int ix, int iy=0) { int ret=-1; if (ix>=0 && ix dbl, int dr=24, int nch=64*3, int off=5) { // off=0; int iarg; int64_t word, *wp; int* val=new int[nch]; int ioff=0; int idr=0; int ib=0; int iw=0; int ii=0; int ich; int nb=dbl.size(); idr=0; for (ib=0; ib dbl, int dr=24, int nch=64*3, int off=5) { // off=0; int iarg; int64_t word; int* val=new int[nch]; int ioff=0; int idr=0; int ib=0; int iw=0; int ii=0; int ich; int nb=dbl.size(); char *dval; idr=0; for (ib=0; ib=dr) { idr=0; ich++; } } ii++; ib++; }//end for return val; } virtual int setFrameNumber(int f=0) {if (f>=0) frameNumber=f; return frameNumber; }; virtual int setDynamicRange(int d=-1) {if (d>0 && d<=24) dynamicRange=d; return dynamicRange;}; virtual int setSerialOffset(int d=-1) {if (d>=0) serialOffset=d; return serialOffset;}; virtual int setNumberOfCounters(int d=-1) {if (d>=0) numberOfCounters=d; return numberOfCounters;}; virtual std::vector setDBitList(std::vector dbl) {dbitlist=dbl; return dbitlist;}; virtual std::vector getDBitList() {return dbitlist;}; private: int dynamicRange; int serialOffset; int frameNumber; int numberOfCounters; std::vector dbitlist; }; #endif