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