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