00001 #ifndef TMODULEDCS_h 00002 #define TMODULEDCS_h 00003 00004 // 00005 // TModuleDCS.h 00006 // 00007 // Version 0.3 PWP 13.12.00 00008 // 00009 00010 #if _MSC_VER >= 1000 00011 #pragma once 00012 #endif 00013 00014 #include "TObject.h" 00015 #include "TDatime.h" 00016 #include "TStopwatch.h" 00017 00018 #define DCS_LOCAL 1 00019 #define DCS_TCP 2 00020 00021 class TModuleDCS : public TObject { 00022 00023 public: 00024 00025 TModuleDCS(); 00026 ~TModuleDCS(); 00027 00028 // Constructor must have no arguments if 00029 // we are to use this class with ROOT I/O 00030 00031 void TModuleDCS::SetID(Short_t new_id); 00032 00033 void TModuleDCS::HVon(); 00034 void TModuleDCS::HVoff(); 00035 void TModuleDCS::LVon(); 00036 void TModuleDCS::LVoff(); 00037 00038 void TModuleDCS::Action(); 00039 void TModuleDCS::Action(Short_t query); 00040 00041 void TModuleDCS::Query(); 00042 00043 void TModuleDCS::Print(); 00044 void TModuleDCS::Print(Short_t now); 00045 00046 // 00047 // Data members 00048 // 00049 00050 Short_t id; 00051 00052 Short_t hv_source; // source of HV data 00053 Short_t lv_source; // source of LV data 00054 Short_t t_source; // source of temperature data 00055 00056 // 00057 // Times of updates and power on Timers 00058 // 00059 00060 Int_t date; 00061 Int_t time; 00062 00063 Int_t t_HVupdate; 00064 Int_t t_LVupdate; 00065 Int_t t_MTupdate; 00066 Int_t t_ETupdate; 00067 00068 TStopwatch* HVStopwatch; // time for which HV on 00069 TStopwatch* LVStopwatch; // time for which LV on 00070 Double_t HVStopwatchTime; 00071 Double_t LVStopwatchTime; 00072 Short_t HVStopwatchRunning; 00073 Short_t LVStopwatchRunning; 00074 00075 // 00076 // Control Information 00077 // 00078 00079 Short_t suspended; // Module suspended due to too many trips 00080 00081 Short_t HVtrip; // Trip Status 00082 Short_t LVtrip; 00083 Short_t MTtrip; 00084 Short_t ETtrip; 00085 00086 Short_t nHVtrips; // Number of trips encountered 00087 Short_t nLVtrips; 00088 Short_t nMTtrips; 00089 Short_t nETtrips; 00090 00091 Short_t maxHVtrips; // Maximum number of trips allowed 00092 Short_t maxLVtrips; // before giving up on this module 00093 Short_t maxMTtrips; // (-1 means never give up) 00094 Short_t maxETtrips; 00095 00096 // 00097 // 00098 // Requested State 00099 // 1. The module itself 00100 // 00101 00102 Float_t vdet_set; // voltage targets 00103 Float_t vcc_set; 00104 Float_t vi1_set; 00105 Float_t vdd_set; 00106 Float_t vpin_set; 00107 Float_t vld0_set; 00108 Float_t vld1_set; 00109 00110 Short_t select; // state of SELECT line 00111 Short_t ramp; // HV ramp rate 00112 00113 Float_t idet_lim; // current limits 00114 Float_t icc_lim; 00115 Float_t ivi1_lim; 00116 Float_t idd_lim; 00117 Float_t ipin_lim; 00118 Float_t ild0_lim; 00119 Float_t ild1_lim; 00120 00121 // 00122 // Requested State 00123 // 2. Environmental limits 00124 // 00125 00126 Float_t T1_maximum; 00127 Float_t T2_maximum; 00128 Float_t T1_minimum; 00129 Float_t T2_minimum; 00130 00131 Float_t ET1_maximum; 00132 Float_t ET2_maximum; 00133 Float_t ET1_minimum; 00134 Float_t ET2_minimum; 00135 00136 Float_t hum1_maximum; 00137 Float_t hum2_maximum; 00138 Float_t hum1_minimum; 00139 Float_t hum2_minimum; 00140 00141 // Monitored State 00142 // 1. The module itself 00143 // 00144 00145 Float_t vdet; 00146 Float_t vcc; 00147 Float_t vi1; 00148 Float_t vdd; 00149 Float_t vpin; 00150 Float_t vld0; 00151 Float_t vld1; 00152 00153 Float_t idet; 00154 Float_t icc; 00155 Float_t ivi1; 00156 Float_t idd; 00157 Float_t ipin; 00158 Float_t ild0; 00159 Float_t ild1; 00160 00161 Float_t T1; 00162 Float_t T2; 00163 00164 Short_t HVstatus; 00165 Short_t LVstatus; 00166 Short_t LVtemp; 00167 00168 // 00169 // Monitored State 00170 // 2. The module environment 00171 // 00172 00173 Float_t ET1; // external temp, eg. Environmental target 00174 Float_t ET2; // external temp, eg. Environmental measurement 00175 Float_t hum1; // Environmental humidity 00176 Float_t hum2; // Environmental humidity 00177 00178 00179 private: 00180 00181 ClassDef(TModuleDCS,1) 00182 }; 00183 00184 #endif