fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/Hw/FltPixRegister.h
Go to the documentation of this file.
00001 /***************************************************************************
00002     FltPixRegister.h  -  description
00003 
00004     begin                : Mon Jul 3 2000
00005     copyright            : (C) 2000 by Andreas Kopmann
00006     email                : kopmann@hpe.fzk.de
00007  ***************************************************************************/
00008 
00009 
00010 #if defined (_MSC_VER) && (_MSC_VER >= 1000)
00011 #pragma once
00012 #endif
00013 #ifndef _INC_FLTPIXREGISTER_391835B7018A_INCLUDED
00014 #define _INC_FLTPIXREGISTER_391835B7018A_INCLUDED
00015 
00016 #include <Pbus/Pbus.h>
00017 
00018 #include <Hw/FltDef.h>
00019 
00020 class FEunitData;
00021 
00041 //##ModelId=3991220D012A
00042 class FltPixRegister : public Pbus {
00043 public:
00045         //##ModelId=3991220D0162
00046         FltPixRegister(const char * name, int slotID, int regID, int r, int w, int len);
00047 
00048   virtual ~FltPixRegister();
00049 
00051         //##ModelId=3991220D015E
00052         unsigned long read(int ch);
00053 
00055         //##ModelId=3991220D0159
00056         void write(int ch, unsigned long data);
00057 
00058 
00067   virtual int writeBitsByName(int ch, char *name, unsigned long data);
00068 
00073         //##ModelId=3991220D0154
00074   void writeBits(int ch, unsigned long data, unsigned long mask, int shift);
00075 
00080         //Write to all registers at the same time:
00081         //mode=0  in the same slot
00082         //mode=1 in all slots
00083         //##ModelId=3991220D014C
00084         void broadcast(unsigned long data, int mode);
00085 
00094         //##ModelId=3991220D0160
00095         void read(unsigned long *data, int allPixel=0);
00096 
00097 
00101         //##ModelId=3991220D015C
00102         void write(unsigned long *data);
00103 
00105         //##ModelId=3991220D014B
00106   int getLength();
00107 
00108   const char *getName();
00109 
00110   bool isReadable();
00111 
00112   bool isWriteable();
00113 
00115   void get(FEunitData **data);
00116 
00118   unsigned long getAddr(int ch = 0);
00119 
00120 private:
00122         //##ModelId=3991220D014A
00123         unsigned long addr;
00124 
00126         //##ModelId=3991220D0149
00127   const char * name;
00128 
00130         //##ModelId=3991220D0148
00131   bool readable;
00132 
00134         //##ModelId=3991220D0140
00135   bool writeable;
00136 
00138         //##ModelId=3991220D013F
00139   int len;
00140 
00141 };
00142 
00143 #endif /* _INC_FLTPIXREGISTER_391835B7018A_INCLUDED */
00144