00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __TVMERPV130MODULE_HH
00011 #define __TVMERPV130MODULE_HH
00012
00013 #include "Tglobals.h"
00014 #include "TVmeModule.hh"
00015
00016 class TDataElement;
00017
00018 class TVmeRpv130Module
00019 : public TVmeModule
00020 {
00021
00022 private:
00023 enum
00024 {
00025 LATCH1 = 0x00,
00026 LATCH2 = 0x02,
00027 RSFF = 0x04,
00028 THROUGH = 0x06,
00029 PULSE = 0x08,
00030 LEVEL = 0x0a,
00031 CSR1 = 0x0c,
00032 CSR2 = 0x0e
00033 };
00034
00035 public:
00036 enum
00037 {
00038 tReadoutWithLatch1,
00039 tReadoutWithLatch2,
00040 tReadoutWithRSFF,
00041 tReadoutWithThrough
00042 };
00043
00044 private:
00045 Tint theReadoutMode;
00046 Tint theLevelStatus;
00047
00048 public:
00049
00050 TVmeRpv130Module( Toff_t offset, Tint mapsize = 0x1000, Tint nch = 1 );
00051 TVmeRpv130Module( const TVmeRpv130Module& right );
00052 ~TVmeRpv130Module();
00053
00054 public:
00055 Tint GetReadoutMode() const;
00056 Tvoid SetReadoutMode( Tint readmode );
00057 Tint GetLevelStatus() const;
00058 Tvoid SetLevelStatus( Tint status );
00059
00060 public:
00061 const TVmeRpv130Module& operator=( const TVmeRpv130Module& right );
00062 Tbool operator==( const TVmeRpv130Module& right ) const;
00063 Tbool operator!=( const TVmeRpv130Module& right ) const;
00064
00065 public:
00066 Tint Clear();
00067 Tint Update();
00068 Tint Initialize();
00069 Tvoid FillData( TDataElement& element, Tint channel );
00070
00071 public:
00072 Tvoid Pulse();
00073 Tvoid Pulse( Tint pattern );
00074
00075
00076
00077
00078 Tvoid Level();
00079 Tvoid Level( Tint pattern );
00080 Tvoid LevelUp();
00081 Tvoid LevelUp( Tint channel );
00082 Tvoid LevelDown();
00083 Tvoid LevelDown( Tint channel );
00084 Tvoid Enable();
00085 Tvoid Disable();
00086 TUshort Read();
00087
00088 };
00089
00090 inline Tint TVmeRpv130Module::GetReadoutMode() const
00091 {
00092 return( theReadoutMode );
00093 }
00094
00095 inline Tvoid TVmeRpv130Module::SetReadoutMode( Tint readmode )
00096 {
00097 theReadoutMode = readmode;
00098 return;
00099 }
00100
00101 inline Tint TVmeRpv130Module::GetLevelStatus() const
00102 {
00103 return( theLevelStatus );
00104 }
00105
00106 inline Tvoid TVmeRpv130Module::SetLevelStatus( Tint status )
00107 {
00108 status &= 0x00ff;
00109 theLevelStatus = status;
00110 return;
00111 }
00112
00113 #endif