00001
00028
00029 #ifndef CLDAQ__TVMERPV130MODULE_HH
00030 #define CLDAQ__TVMERPV130MODULE_HH
00031
00032 #include "Tglobals.h"
00033 #include "TVmeModule.hh"
00034
00035 class TDataElement;
00036
00037
00057 class TVmeRpv130Module
00058 : public TVmeModule
00059 {
00060
00061 private:
00062 enum
00063 {
00064 LATCH1 = 0x00,
00065 LATCH2 = 0x02,
00066 RSFF = 0x04,
00067 THROUGH = 0x06,
00068 PULSE = 0x08,
00069 LEVEL = 0x0a,
00070 CSR1 = 0x0c,
00071 CSR2 = 0x0e
00072 };
00073
00074 public:
00075 enum
00076 {
00077 tReadoutWithLatch1,
00078 tReadoutWithLatch2,
00079 tReadoutWithRSFF,
00080 tReadoutWithThrough
00081 };
00082
00083 private:
00084 Tint theReadoutMode;
00085 Tint theLevelStatus;
00086
00087 public:
00088
00089 TVmeRpv130Module( Toff_t offset, Tint mapsize = 0x1000, Tint nch = 1 );
00090 TVmeRpv130Module( const TVmeRpv130Module& right );
00091 ~TVmeRpv130Module();
00092
00093 public:
00094 Tint GetReadoutMode() const;
00095 Tvoid SetReadoutMode( Tint readmode );
00096 Tint GetLevelStatus() const;
00097 Tvoid SetLevelStatus( Tint status );
00098
00099 public:
00100 const TVmeRpv130Module& operator=( const TVmeRpv130Module& right );
00101 Tbool operator==( const TVmeRpv130Module& right ) const;
00102 Tbool operator!=( const TVmeRpv130Module& right ) const;
00103
00104 public:
00105 Tint Clear();
00106 Tint Update();
00107 Tint Initialize();
00108 Tvoid FillData( TDataElement& element, Tint channel );
00109
00110 public:
00111 Tvoid Pulse();
00112 Tvoid Pulse( Tint pattern );
00113
00114
00115
00116
00117 Tvoid Level();
00118 Tvoid Level( Tint pattern );
00119 Tvoid LevelUp();
00120 Tvoid LevelUp( Tint channel );
00121 Tvoid LevelDown();
00122 Tvoid LevelDown( Tint channel );
00123 Tvoid Enable();
00124 Tvoid Disable();
00125 TUshort Read();
00126
00127 #ifdef __CLDAQ_ROOT_DLL
00128 ClassDef(TVmeRpv130Module,0)
00129 #endif
00130
00131 };
00132
00133 inline Tint TVmeRpv130Module::GetReadoutMode() const
00134 {
00135 return theReadoutMode;
00136 }
00137
00138 inline Tvoid TVmeRpv130Module::SetReadoutMode( Tint readmode )
00139 {
00140 theReadoutMode = readmode;
00141 return;
00142 }
00143
00144 inline Tint TVmeRpv130Module::GetLevelStatus() const
00145 {
00146 return theLevelStatus;
00147 }
00148
00149 inline Tvoid TVmeRpv130Module::SetLevelStatus( Tint status )
00150 {
00151 status &= 0x00ff;
00152 theLevelStatus = status;
00153 return;
00154 }
00155
00156 #endif