fdhwlib
2.0.25
|
00001 /*************************************************************************** 00002 SltTimeBase.h - description 00003 00004 begin : Fri Jul 3 2009 00005 copyright : (C) 2000 by Andreas Kopmann 00006 email : kopmann@hpe.fzk.de 00007 ***************************************************************************/ 00008 00009 00010 #ifndef SLTTIMEBASE_H 00011 #define SLTTIMEBASE_H 00012 00013 #include <ctime> // time_t 00014 00015 // --- forward declaration(s) 00016 00017 namespace hw4 { 00018 class SltAuger; 00019 class SltKatrin; 00020 class SltCmds; 00021 00022 class TsBackground; 00023 } 00024 00032 class SltTimeBase { 00033 // those bad guys want to access my data ... 00034 friend class SimPageController; 00035 friend class Slt; 00036 friend class EventLoop; 00037 00038 friend class hw4::SltAuger; 00039 friend class hw4::SltKatrin; 00040 00041 friend class KaSubrack; 00042 00043 friend class CursesEvent; 00044 friend class TsEvent; 00045 friend class TsBackground; 00046 friend class hw4::TsBackground; 00047 00048 friend class SubrackCmds; 00049 friend class SltCmds; 00050 friend class hw4::SltCmds; 00051 00052 public: 00053 00055 SltTimeBase(); 00057 virtual ~SltTimeBase(); 00058 00060 void setSec(unsigned long gps_time) { 00061 sec = gps_time; // 32bit !!! 00062 } 00063 00065 unsigned long getSec() { 00066 return sec; 00067 } 00068 00073 virtual void setSecFromUTC(time_t t_utc); 00074 00076 virtual time_t getUTCSec(); 00077 00081 virtual void setSubSec(unsigned long) { 00082 isNotImplemented("setSubSec(unsigned long)"); 00083 } 00084 00085 #if 1 00086 00087 void setSubSec(int subSec1, int subSec2) { 00088 printf("%d %d\n", subsec1, subsec2); 00089 subsec1 = subSec1; subsec2 = subSec2; 00090 } 00091 #endif 00092 00093 void setSubSec1(int subSec1) { 00094 subsec1 = subSec1; 00095 } 00096 void setSubSec2(int subSec2) { 00097 subsec2 = subSec2; 00098 } 00099 00101 virtual unsigned long getSubSec() { 00102 isNotImplemented("getSubSec()"); 00103 return 0; 00104 } 00105 00106 #if 1 00107 00108 void getSubSec(int& subSec1, int& subSec2) { 00109 subSec1 = subsec1; subSec2 = subsec2; 00110 } 00111 #endif 00112 00113 virtual int getSubSec1() { 00114 return subsec1; 00115 } 00116 virtual int getSubSec2() { 00117 return subsec2; 00118 } 00119 00125 virtual void setSubSecFromNanoSec(unsigned long time); 00126 00128 virtual void setNanoSec(unsigned long time); 00129 00131 virtual unsigned long getNanoSec(); 00132 00139 virtual void setLastTrigger(unsigned long) { 00140 isNotImplemented("setLastTrigger(unsigned long)"); 00141 } 00142 00144 virtual unsigned long getLastTrigger() { 00145 isNotImplemented("getLastTrigger()"); 00146 return 0; 00147 } 00148 00150 void setTriggerSource(int source) { 00151 triggerSource = source; 00152 } 00153 00155 int getTriggerSource() { 00156 return triggerSource; 00157 } 00158 00160 virtual const char * getTriggerSourceBrief() { 00161 isNotImplemented("getTriggerSourceBrief()"); 00162 return ""; 00163 } 00164 00170 virtual void setAllActiveTriggerSources(int sources) { 00171 triggerAllActive = sources; 00172 } 00173 00177 virtual int getAllActiveTriggerSources() { 00178 return triggerAllActive; 00179 } 00180 00187 virtual int getLastEventPage() { 00188 return lastEventPage; 00189 } 00190 00192 virtual int getFltOffset() { 00193 isNotImplemented("getFltOffset()"); 00194 return 0; 00195 } 00196 00198 virtual int getSltOffset() { 00199 isNotImplemented("getSltOffset()"); 00200 return 0; 00201 } 00202 00204 virtual int getVersion() { 00205 return sltVersion; 00206 } 00207 00212 virtual void setVersion(int version) { 00213 sltVersion = version; 00214 } 00215 00217 virtual SltTimeBase& operator=(const SltTimeBase&); 00218 00220 virtual SltTimeBase& operator=(const unsigned long&); 00221 00226 virtual SltTimeBase& minus(const SltTimeBase &t1, const SltTimeBase &t2); 00227 00228 virtual void minus(SltTimeBase& time) { 00229 minus( *this, time ); 00230 } 00231 00232 #if 1 00233 00234 virtual void add(SltTimeBase& time); 00235 #endif 00236 00238 virtual void addNanoSec(unsigned long nanosec); 00239 00240 #if 1 00241 00242 virtual SltTimeBase mean(const SltTimeBase& t1, const SltTimeBase& t2); 00243 #endif 00244 00246 void displayTime(FILE *fout); 00247 00249 const char *cDate(); 00250 00252 const char *cTime(); 00253 00254 protected: 00255 00257 void isNotImplemented(const char *what); 00258 00260 unsigned long sec; 00261 00263 int subsec1; 00264 00266 int subsec2; 00267 00269 int lastTrigger; 00270 00287 int triggerSource; 00288 00292 int triggerAllActive; 00293 00299 int lastEventPage; 00300 00305 int sltVersion; 00306 }; 00307 00308 #endif // SLTTIMEBASE_H