fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/FE/febaseevent.h
Go to the documentation of this file.
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