00001 // ===================================================================== 00031 // ===================================================================== 00032 #ifndef CLDAQ__TVMEDAUGHTERBOARDMEMORYMODULE_HH 00033 #define CLDAQ__TVMEDAUGHTERBOARDMEMORYMODULE_HH 00034 00035 #include "Tglobals.h" 00036 #include "TVmeModule.hh" 00037 00038 class TDataElement; 00039 class TVmeMpx201aModule; 00040 00041 00061 class TVmeDaughterBoardMemoryModule 00062 : public TVmeModule 00063 { 00064 00065 public: 00066 enum { tDataUnderflow = SHRT_MIN, tDataOverflow = SHRT_MAX }; 00067 00068 private: 00069 Tint theNumberOfSampling; 00070 00071 public: 00072 TVmeDaughterBoardMemoryModule( Toff_t offset, Tint mapsize, Tint nblock, Tint nch = 1 ); 00073 TVmeDaughterBoardMemoryModule( const TVmeMpx201aModule* mpx201a, Tint nch = 1 ); 00074 TVmeDaughterBoardMemoryModule( const TVmeDaughterBoardMemoryModule& right ); 00075 ~TVmeDaughterBoardMemoryModule(); 00076 00077 public: 00078 const TVmeDaughterBoardMemoryModule& operator=( const TVmeDaughterBoardMemoryModule& right ); 00079 Tbool operator==( const TVmeDaughterBoardMemoryModule& right ) const; 00080 Tbool operator!=( const TVmeDaughterBoardMemoryModule& right ) const; 00081 00082 public: 00083 Tint GetNumberOfSampling() const; 00084 Tvoid SetNumberOfSampling( Tint nsamples ); 00085 00086 public: 00087 Tint Clear(); 00088 Tint Update(); 00089 Tint Initialize(); 00090 Tvoid FillData( TDataElement& element, Tint channel ); 00091 00092 private: 00093 Tshort modifyData( Tlong databuf ) const; 00094 00095 #ifdef __CLDAQ_ROOT_DLL 00096 ClassDef(TVmeDaughterBoardMemoryModule,0) 00097 #endif 00098 00099 }; 00100 00101 inline Tint TVmeDaughterBoardMemoryModule::GetNumberOfSampling() const 00102 { 00103 return theNumberOfSampling; 00104 } 00105 00106 inline Tvoid TVmeDaughterBoardMemoryModule::SetNumberOfSampling( Tint nsamples ) 00107 { 00108 theNumberOfSampling = nsamples; 00109 return; 00110 } 00111 00112 #endif