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