fdhwlib
2.0.25
|
00001 /*************************************************************************** 00002 febaseevent.h - description 00003 00004 begin : Mon Jul 3 2000 00005 copyright : (C) 2000 by Andreas Kopmann 00006 email : kopmann@hpe.fzk.de 00007 ***************************************************************************/ 00008 00009 00010 #ifndef FEBASEEVENT_H 00011 #define FEBASEEVENT_H 00012 00013 #include <cstdio> 00014 00015 #include <FE/FEdef.h> 00016 00017 00018 #if 0 //-tb- avoid linking with libHw.a AND libhw4.a; TODO: need to check feshell -tb- 00019 class FEtimeStamp; 00020 #endif 00021 00022 00053 class FEbaseEvent { 00054 public: 00055 FEbaseEvent(); 00056 virtual ~FEbaseEvent(); 00057 00079 virtual void read(int page, unsigned long *data); 00080 00087 virtual void read(int page, int start, unsigned long *data); 00088 00094 virtual void readMultiplicity(int page, unsigned char *data); 00095 00102 virtual void readMultiplicity(int page,int start,unsigned char *data); 00103 00105 virtual void readSltPage(int start,unsigned long *data); 00106 00108 virtual void readMultiplicityPage(int start,unsigned long *data); 00109 00114 virtual int getActualPage(); 00115 00121 virtual int getNextPage(); 00122 00124 virtual int getNumFreePages(); 00125 00127 virtual int getOldestPage(); 00128 00133 virtual bool isInUse(int page); 00134 00135 #if 0 00136 00140 virtual void isInUse(FEpageStatus &status); 00141 #endif 00142 00154 virtual void isInUse(unsigned long *status); 00155 00156 #if defined (SLT_VER) && (SLT_VER >= 300) 00157 #else 00158 virtual unsigned long isInUse(); 00159 #endif 00160 00162 virtual bool isPageFull(); 00163 00165 virtual bool isPageReady(); 00166 00168 virtual void resetPages(); 00169 00171 virtual void setPageFree(int page); 00172 00180 virtual void setPageInUse(int page); 00181 00183 virtual unsigned long getTimeStampHigh(int page); 00184 00186 virtual unsigned long getTimeStampLow(int page); 00187 00206 virtual void getTimeStamp(int page, unsigned long *sec, 00207 int *subSec1, int *subSec2, int *imgAddr, 00208 int *evtAddr, int *trigger=0); 00209 00210 #if 0 //-tb- avoid linking with libHw.a AND libhw4.a; TODO: need to check feshell -tb- 00211 00215 virtual void getTimeStamp(int page, FEtimeStamp *timeStamp); 00216 #endif 00217 00222 virtual unsigned long getLastTriggerTimeStampHigh(int page); 00223 00227 virtual unsigned long getLastTriggerTimeStampLow(int page); 00228 00251 virtual int getTriggerSource(); 00252 00254 virtual void setTriggerSource(int source); 00255 00261 virtual void enableNeighborTrig(); 00262 00268 virtual void disableNeighborTrig(); 00269 00275 virtual bool isEnabledNeighborTrig(); 00276 00282 virtual void forceTrigger(); 00283 00284 #if defined (SLT_VER) && (SLT_VER >= 110) 00285 virtual void enableLeftNeighborTrig(); 00286 virtual void enableRightNeighborTrig(); 00287 virtual void disableLeftNeigborTrig(); 00288 virtual void disableRightNeighborTrig(); 00289 virtual bool isEnabledLeftNeigborTrig(); 00290 virtual bool isEnabledRightNeighborTrig(); 00291 #endif 00292 00300 virtual int getNextPageDelay(); 00301 00305 virtual void setNextPageDelay(int delay); 00306 00313 virtual int getCoincidenceTime(); 00314 00316 virtual void setCoincidenceTime(int time); 00317 00322 virtual int getLengthOfBoxcar(int col=0, int fpga=1); 00323 00329 virtual int waitForNextPage(); 00330 00331 virtual void disableNextPage(); 00332 00333 virtual void enableNextPage(); 00334 00335 virtual bool isEnabledNextPage(); 00336 00343 virtual void waitForPageErr(); 00344 00345 virtual void disablePageErr(); 00346 00347 virtual void enablePageErr(); 00348 00349 virtual bool isEnabledPageErr(); 00350 }; 00351 00352 #endif // FEBASEEVENT_H 00353 00354