00001 // ===================================================================== 00028 // ===================================================================== 00029 #ifndef CLDAQ__TSOFTWAREINTERRUPTREGISTERMODULE_HH 00030 #define CLDAQ__TSOFTWAREINTERRUPTREGISTERMODULE_HH 00031 00032 #include "Tglobals.h" 00033 #include "TSoftwareModule.hh" 00034 00035 class TDataSegment; 00036 class TDataElement; 00037 00038 00058 class TSoftwareInterruptRegisterModule 00059 : public TSoftwareModule 00060 { 00061 00062 private: 00063 Tint theInterruptRegister; 00064 Tint theInterruptMaskRegister; 00065 Tint theFrequency; 00066 00067 public: 00068 TSoftwareInterruptRegisterModule( Tint nch = 2, Tint frequency = 1 ); 00069 TSoftwareInterruptRegisterModule( const TSoftwareInterruptRegisterModule& right ); 00070 ~TSoftwareInterruptRegisterModule(); 00071 00072 public: 00073 const TSoftwareInterruptRegisterModule& operator=( const TSoftwareInterruptRegisterModule& right ); 00074 Tbool operator==( const TSoftwareInterruptRegisterModule& right ) const; 00075 Tbool operator!=( const TSoftwareInterruptRegisterModule& right ) const; 00076 00077 public: 00078 Tint Clear(); 00079 Tint Update(); 00080 Tint Initialize(); 00081 Tint ReadInterruptRegister(); 00082 Tvoid FillData( TDataElement& element, Tint channel ); 00083 00084 public: 00085 Tint GetInterruptRegister() const; 00086 Tint GetInterruptMaskRegister() const; 00087 Tint GetFrequency() const; 00088 Tvoid SetInterruptRegister( Tint val ); 00089 Tvoid SetInterruptMaskRegister( Tint val ); 00090 Tvoid SetFrequency( Tint frequency ); 00091 00092 #ifdef __CLDAQ_ROOT_DLL 00093 ClassDef(TSoftwareInterruptRegisterModule,0) 00094 #endif 00095 00096 }; 00097 00098 inline Tint TSoftwareInterruptRegisterModule::GetInterruptRegister() const 00099 { 00100 return theInterruptRegister; 00101 } 00102 00103 inline Tint TSoftwareInterruptRegisterModule::GetInterruptMaskRegister() const 00104 { 00105 return theInterruptMaskRegister; 00106 } 00107 00108 inline Tint TSoftwareInterruptRegisterModule::GetFrequency() const 00109 { 00110 return theFrequency; 00111 } 00112 00113 inline Tvoid TSoftwareInterruptRegisterModule::SetInterruptRegister( Tint val ) 00114 { 00115 theInterruptRegister = val; 00116 return; 00117 } 00118 00119 inline Tvoid TSoftwareInterruptRegisterModule::SetInterruptMaskRegister( Tint val ) 00120 { 00121 theInterruptMaskRegister = val; 00122 return; 00123 } 00124 00125 inline Tvoid TSoftwareInterruptRegisterModule::SetFrequency( Tint frequency ) 00126 { 00127 theFrequency = frequency; 00128 return; 00129 } 00130 00131 #endif